Software Development Life Cycle
Software Development Life Cycle
Interactive study map covering software development models, verification and validation, test types, confirmation and regression testing, maintenance testing, migration, conversion testing and impact analysis.
Software Development Models
A software development life cycle moves from customer needs through specification, coding, testing and release. The chapter contrasts sequential and iterative approaches.
Waterfall Model
A linear or sequential model. Requirements are progressively refined through functional, technical and program specifications before coding. Each activity is completed before the next. Testing occurs after the code has been fully developed.
V-Model
A sequential extension of waterfall that associates development work-products with corresponding test activities. Test planning starts early, alongside specification work.
Iterative–Incremental
Requirements do not need to be fully defined before coding starts. Working versions are built through repeated cycles, each containing requirements, design, code and test.
Finding problems close to the point where a work-product is created can make correction cheaper than discovering them late in the life cycle.
Verification, Validation & V-Model
The V-model introduces early work-product evaluation and links specifications to corresponding test levels.
V-Model Mapping
Requirement specification ↔ Acceptance testing
Functional specification ↔ System testing
Technical specification ↔ Integration testing
Program specification ↔ Unit testing
Acceptance testing can be planned when the requirement specification is created. The same principle applies to the other specification/test-level pairs.
Iterative–Incremental Development
Iterative development produces working software in repeated cycles or time-boxes and involves user representatives throughout.
Test Types
The chapter groups testing into functional, non-functional, structural, and testing related to changes.
Functional
Tests specific functionality against a specification: what the system does. Examples include flight search and payroll calculation. Security and interoperability are treated as functional in this syllabus.
Non-functional
Tests behavioural qualities: how the system performs in use. Examples include usability, performance, load, stress, portability, recovery and reliability.
Structural
Focuses on the implemented structure, such as code or architecture, and the thoroughness of testing. Code coverage is a common measure. It can be applied at any test level.
Related to Changes
Confirmation testing checks the specific fix. Regression testing checks whether the change or environment change caused unintended defects elsewhere.
Confirmation, Regression & Debugging
These concepts are closely related but answer different questions.
Change-testing workflow
Defect detected → Debugging fixes it → Confirmation testing checks the fix → Regression testing checks for side effects
Confirmation / Retesting
Retest the changed software to confirm that the original problem has been successfully removed.
Regression Testing
Retest unchanged or potentially affected software to ensure the change has not introduced additional defects. Repeated execution makes regression testing suitable for automation.
Testing finds defects; debugging fixes defects. Debugging is not a testing activity.
Maintenance Testing
Maintenance testing is testing performed on a system that is already operating in the live environment.
Interactive Explorer
Switch between the major development models and change-related testing concepts.
Key Takeaways
High-yield revision points from both parts of the Chapter 2 notes.
Waterfall = sequential and late testing. V-model = sequential with early test planning and specification-to-test-level pairing. Iterative = repeated cycles producing working versions with user involvement.
Functional = what it does. Non-functional = how it behaves. Structural = how thoroughly its structure is exercised. Confirmation = check the fix. Regression = check unintended effects.
Operational changes require testing. Migration may require new-environment testing and data transfer may require conversion testing. Impact analysis identifies areas potentially affected by change.
Knowledge Check
Twenty questions covering development models, test types and maintenance testing.