Software Development and Software Testing

Profile picture for user devraj

The tester must be familiar with the standard software development lifecycle models so that appropriate test activities can take place. According to the ISTQB syllabus, the Software Development Lifecycle Models categories are as follows:

  1. Sequential Development Models
  2. Iterative and incremental development models

SDLC Models and Test Activities

Let's see when and how Test Activities started in different SDLC models:

1. Waterfall Model

waterfall model

Waterfall Model is a sequential development model which describes the software development process as linear. In this model, one development phase begins when the previous phase is complete. In this model, testing will start once requirement analysis, design, and coding activities are done. In theory, there is no overlap of phases, but this model does not follow the early testing principle. 

2. V-Model


V-model integrates the test process throughout the development process, implementing the principle of early testing. Also, the V-model includes test levels associated with each corresponding development phase. The activities on the left-hand side of the V-model focus on work-product creation to elaborate on the initial requirements and provide more technical detail for the development.

In V-Model, planning for testing is started as soon as the work products for a particular development phase are ready. Work products are verified using static testing techniques like reviews. Verification helps to ensure that the product is built in the right way. The right-hand side of the V- model validates the requirement using dynamic testing techniques. Validation ensures that requirements, as stated, have been met. 

3. Iterative Development Models

Iterative development occurs when groups of features are specified, designed, built, and tested in a series of cycles, often of a fixed duration. Examples of iterative development models are Rational Unified Process, Spiral, Scrum, and Kanban. Iterative models like Scrum and Kanban are widely adopted today. Continuous delivery or continuous deployment with significant automation of multiple test levels is often part of delivery pipelines in iterative development.

iterative model

Once a particular iteration has been completed, the testing of the new elements of software must be tested with the existing unchanged software. Thus it is necessary to perform regression testing after every single iteration.

iterative model

Components or systems developed using these methods often involve overlapping and iterating test levels throughout development. Ideally, each feature is tested at several test levels as it moves towards delivery. Verification and validation can be carried out on each increment. 

No matter which software development lifecycle model is chosen, test activities should start in the early stages of the lifecycle, adhering to the testing principle of early testing.

Characteristics of Good Testing

There are several characteristics of good testing which apply to every Software Development Life Cycle Model:

  • There is corresponding test activity for every development activity. Example: V-Model.
  • Each test level, like component, integration, system, or acceptance level, has test objectives specific to that level. 
  • Test analysis and design for a given test level begin during the related development activity.
  • Testers participate in discussions to define and refine requirements and design. They are involved in reviewing work products like requirements, design, user stories, etc., as soon as drafts are available for these work products.