Software Testing challenges in the Spiral Lifecycle model

Having looked at the Sequential and Iterative models in the previous posts, let us now look at testing in the Spiral Lifecycle model. The spiral model is generally used in large, complex and expensive projects. Development activity proceeds via a sequence of prototypes that are designed, prototyped and tested. Learnings from earlier versions of prototypes are used as inputs in subsequent prototyping efforts. Spiral model may be considered as an incremental & evolutionary prototyping model. Like the agile models, software is produced early in the life cycle.

Some of the common challenges that the software testing group will encounter with this model are listed here. Firstly, by its very nature, the spiral model is based on the premise of change being constant. Similar to the agile models but more so in the spiral model, changes to the design, technologies or tools used to produce the software can occur widely. The testing team needs to adopt flexible practices in every aspect of its functioning to be both open and adaptable to changes. Testing cannot assume that a particular tool, technique or system will be used throughout the lifecycle. Spiral models are suited in situations where there are a lot of unknowns and risks are being analyzed. In such cases, an early prototype may employ a particular set of technologies or architecture. On evaluation, the decision may be to discard the existing design in favor of a newer design or a radically changed version. Testing needs to be flexible and able to move in step with the changes in development.

Secondly, testing in the spiral model needs to be exploratory in nature, at least in the initial stages. The purpose of the early prototype is to understand risks and explore unknowns. Testing needs to be flexible as well as be able to go deeper to explore specific problem areas as needed. In subsequent stages testing goals may change to more formal & standard testing including regression and related test types. The testing group needs to be able to handle the requirements of non-formal and formal standard testing requirements at different stages of the lifecycle.

Finally, due to the very nature of the spiral model, involving repeated prototyping and dealing with unknowns, accurate test planning and estimating can be a challenge. Given the complexity and degree of experimenting involved, working with predictable time-lines is not usually possible.

Over the course of the past three posts, we have covered some of the common challenges faced in Software Testing with each of the three Lifecycle models - sequential, iterative and spiral.