What is meant by Software Test Life Cycle?
Software Test Life Cycle is the sequence of test activities that needs to be completed in order to test software. All related test activities are grouped called phases and each phase in a testing life cycle should be completed successfully.
Test Activities in Test Life Cycle:
Test Activities in Test Life Cycle are as follows:
- Test Planning
- Test Design
- Test Data Preparation
- Test Environment Setup
- Test Execution
- Evaluate Exit Criteria
- Test Signoff
Integrating Software Test Life Cycle into Software Development Life Cycle:
The sequence of Software Test Life Cycle activities differs from each SDLC model to SDLC model.
- Software Test Life Cycle activities inWaterfall Model:
Software development activities are performed in sequence to build software. The most important characteristic of a waterfall model is that entire system is built at once i.e all identified functions of software are released into production at once.
The different phases of waterfall model are as follows:
- Requirement Analysis
- System Design
- Software Development
- Software Testing
The output of each phase is an input to subsequent phases as below:
- System design phase activities should start only when requirements are identified and freezed in Requirements Analysis phase.
- Software development phase activities should start only when system design activities are completed and signed off.
- Software testing phase activities should start only when software development activities are completed and signed off.
- Implementation phase activities should start only when software testing activities are completed and signed off.
- Maintenance phase activities will occur only when Implementation is completed.
Challenges in waterfall model:
- High probability of requirement changes while development is in progress
- Frequent requirement changes causes to rework and delay in implementation
- Cost overhead due to frequent requirement changes and rework
How to overcome waterfall software development life cycle model challenges?
Waterfall software development life cycle model challenges can be handled by integrating software test life cycle process into this waterfall model. Please note that software test life cycle integration is not a complete solution to overcome waterfall software development life cycle model challenges. The software test life cycle process integration into waterfall software development life cycle model helps to resolve challenges as follows:
Requirement changes and rework can occur due to
- Defect Injection from one phase to the subsequent phases
Example: Requirement defects injected at requirement analysis phase can creep into subsequent phases and causes to build incorrect software
- Technical challenges encountered while coding the software and this can leads to requirement change
To prevent above challenges we need to find as many defects as possible at beginning of the life cycle i.e at requirement analysis phase. This can be achieved by incorporating software test life cycle activities as early as possible.
Given the challenges and nature of the activities in waterfall model we can use V-Model as a software test life cycle model. The testing activities in V-Model progress in parallel with development activities. Test activities in V-Model are as follows:
Requirement Analysis ———- User Acceptance Testing
Design ——————-System Testing
Coding- ————Unit Testing
As shown in above figure for every development activity there is a corresponding testing activity so the V-Model aids in finding defects and technical challenges as early as possible in the life cycle to reduce rework, cost overhead and frequent requirement changes.
- 2. Software Test Life Cycle activities in Iterative or Incremental Life cycle model:
As opposed to waterfall model, software developed is chunks in this model. Functions are grouped called chunks and each chunk is implemented or released into live on incremental basis. Example of this model is Agile where each chunk is called sprint. The objective of each sprint is to develop a chunk of software and released accordingly in live environment.
The phases of Iterative or Incremental model looks like as below
- Chunk 1 Requirement Analysis
- Chunk 1 Design
- Chunk 1 Coding
- Chunk 1 Testing
- Chunk 1 Implementation
- Chunk 2 Requirement Analysis
- Chunk 2 Design
- Chunk 2 Coding
- Chunk 2 Testing
- Chunk 2 Implementation
Likewise Iterative n
- Chunk n Requirement Analysis
- Chunk n Design
- Chunk n Coding
- Chunk n Testing
- Chunk n Implementation
The complete product with all features will be in live after Iterative n.
The objective of testing in this model is to test each chunk before implementation. The sequences of test activities are as below.
- Chunk 1 Test Planning
- Chunk 1 Test Design
- Chunk 1 Test Data Setup
- Chunk 1 Environment Setup
- Chunk 1 Test Execution
- Chunk 1 Exit Criteria
- Chunk 1 Test signoff
- Chunk 2 Test Planning
- Chunk 2 Test Design
- Chunk 2 Test Data Setup
- Chunk 2 Environment Setup
- Chunk 2 Test Execution
- Chunk 2 Exit Criteria
- Chunk 2 Test signoff
Likewise Iterative n
- Chunk n Test Planning
- Chunk n Test Design
- Chunk n Test Data Setup
- Chunk n Environment Setup
- Chunk n Test Execution
- Chunk n Exit Criteria
- Chunk n Test signoff
Regression testing plays a key role in addition to functional testing in this model. As software is developed and implemented in chunks so testing team should ensure that each chunk’s functionality should not be broken while development of each chunk is in progress.
Regression testing is quite challenging in this model as duration of each Iteration is small. Automation tools can be used to overcome this challenge.