Software Test Life Cycle
Software Test Life Cycle is the sequence of test activities that needs to be completed 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 are as follows:
Test Planning
Test Design
Test Data Preparation
Test Environment Setup
Test Execution
Evaluate Exit Criteria
Test Signoff
The sequence of Software Test Life Cycle activities differs from each SDLC model to SDLC model.
Software Test Life Cycle activities in Waterfall 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
Implementation
Maintenance
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 services 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
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:
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 lead 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.
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
Iterative 1
Chunk 1 Requirement Analysis
Chunk 1 Design
Chunk 1 Coding
Chunk 1 Testing
Chunk 1 Implementation
Iterative 2
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.
Iterative 1
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 sign off
Iterative 2
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 sign off
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 sign off
Regression testing plays a key role in addition to functional testing in this model. As software is developed and implemented in chunks so Software 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 testing tools can be used to overcome this challenge.
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 in Waterfall 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
Implementation
Maintenance
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 services 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 lead 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
Iterative 1
Chunk 1 Requirement Analysis
Chunk 1 Design
Chunk 1 Coding
Chunk 1 Testing
Chunk 1 Implementation
Iterative 2
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.
Iterative 1
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 sign off
Iterative 2
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 sign off
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 sign off
Regression testing plays a key role in addition to functional testing in this model. As software is developed and implemented in chunks so Software 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 testing tools can be used to overcome this challenge.
Hey there,
ReplyDeleteNice blog
check out our blogs
Mobile App Promotion Company