Software Testing in the Product Lifecycle

In this and subsequent posts, we look at Software Testing and how it fits in with the various Software Lifecycle models.

Software Testing is an integral part of the Software Lifecycle, irrespective of the type of lifecycle followed – sequential, iterative, spiral or incremental. How testing aligns itself will vary depending on the type of lifecycle selected. For example, in the case of a sequential model such as the waterfall or v model wherein the assumption is that the requirements are firmed up at the start of the lifecycle and  changes managed, the test team can adopt a requirements-based test strategy. With such a strategy, the test team is aligned at the outset in the lifecycle and begins test planning and development early.  Such alignment can enable early detection of issues / clarification of the requirements facilitating testing to play a preventive role. 

In the case of iterative / incremental lifecycle models such as agile methodologies, the test team receives requirements in increments at the start of a sprint or iteration. Here, the testing team can adopt a risk based test strategy to identify and prioritize risk areas. Test design & development happens just before execution. Here too, defect detection begins early and proceeds in short iterations through the project. However, the scope of testing to play a preventive role is reduced in such a lifecycle model. Test activities tend to occur in parallel with other activities  in the software lifecycle.

In upcoming posts, we look at each of the lifecycle models and how testing fits in.