ISTQB Foundation Level - Chapter 2: Testing Throughout the Software Development Life Cycle

Jul 15, 2024

ISTQB Foundation Level Certifications - Chapter 2: Testing Throughout the Software Development Life Cycle

Introduction to SDLC

  • SDLC (Software Development Life Cycle): The entire life cycle that establishes and builds the product.
  • Major Phases:
    • Requirement Gathering: Business Analyst/Product Owner gathers information required for implementing the product.
    • Design: Architecture and back-end design of the product.
    • Development: Writing the code for the product.
    • Testing: Independent testing team tests the system.
    • Maintenance/Release: Updating, upgrading, migration, and retirement of the product.

How SDLC Impacts Testing

  • Influences Test Process: The SDLC chosen influences scope, timing, detail of documentation, choice of test techniques, extent of test automation, and roles/responsibilities of testers.
  • Waterfall Model: Testing happens once implementation is complete.
  • Agile Methodology: Continuous testing with frequent regression tests due to daily code changes.
  • Key Impacts on Testing:
    • Scope and Timing: Different in Waterfall (sequential) vs. Agile (parallel activity).
    • Detail of Test Documentation: Comprehensive in Waterfall, brief in Agile.
    • Test Techniques and Approaches: Constraints in Agile, more flexible in Waterfall.
    • Extent of Test Automation: Limited in Waterfall, extensive in Agile.
    • Roles and Responsibilities: More diverse and cross-functional in Agile.

Sequential Development Models (Waterfall & V-Model)

  • Initial Phases: Testers involved in requirement reviews, test analysis, and design.
  • Later Phases: Dynamic testing occurs after code development.
  • Sequential Models: Long wait for testing to begin until code is complete.

Iterative and Incremental Models

  • Deliveries: Each iteration delivers a working prototype/product increment.
  • Testing: Both static and dynamic testing performed at all levels.
  • Frequent Deliveries: Requires fast feedback and extensive regression testing.

Agile Development

  • Assumes Continuous Change: Lightweight documentation, extensive automation for regression testing.
  • Testing Techniques: Experience-based techniques like exploratory testing.
  • Dynamic Testing: Test cases written and executed within the same sprint.

Good Testing Practices

  • Independent of SDLC Model: Practices should be followed regardless of the development model.
  • Key Practices:
    • Corresponding Testing Activity: For every development activity, a corresponding testing activity.
    • Unique Test Levels: Different levels should have specific test objectives.
    • Early Test Analysis and Design: Begins during the development phase.
    • Early Involvement of Testers: Review work products as soon as drafts are available.

Summary

  • Different SDLC models have different impacts on the testing process.
  • Good testing practices can be applied across different development models.
  • Early involvement, comprehensive documentation, and effective testing techniques are key.