Agile Software Testing
Agile Testing is a type of software testing that follows the principles of agile software development to test the software application.
All members of the project team along with the special experts and testers are involved in agile testing. Agile testing is not a separate phase and it carried out with all the development phases i.e. requirements, design and coding and test case generation. Agile testing takes place simultaneously through the Development Life Cycle.
Agile testers participate in the entire development life cycle along with development team members and the testers help in building the software according to the customer requirements and with better design and thus code becomes possible.
Agile testing team works as a single team towards the single objective of achieving quality. Agile Testing has shorter time frames called iterations or loops. This methodology is also called delivery driven approach because it provides a better prediction on the workable products in less duration of time.
Agile Testing Principles:
- Shortening feedback iteration:
In Agile Testing, testing team get to know the product development and its quality for each and every iteration. Thus continuous feedback minimizes the feedback response time and the fixing cost is also reduced.
- Testing is performed alongside:
Agile testing is not a different phase. It is performed alongside the development phase. It ensures that the features implemented during that iteration are actually done. Testing is not kept in pending for a later phase.
- Involvement of all members:
Agile testing involves the each and every member of the development team and the testing team. It include various developers and experts.
- Documentation is weightless:
In place of global test documentation, agile testers use reusable checklists to suggest tests and focus on the essence of the test rather than the incidental details. Lightweight documentation tools are used.
- Clean code:
The defects that are detected are fixed within the same iteration. This ensures clean code at any stage of the development.
Agile Testing Life Cycle:
- Iteration 0:
It is the first stage of the testing process and initial setup are performed in this stage. Testing environment is set in this iteration.
- Construction Iteration:
It is the second phase of the testing process. It is the major phase of the testing and most of the works are performed in this phase. It is a set of iterations to build an increment of the solution.
This phase includes the full system testing and the acceptance testing. To finish the testing stage, the product is tested more relentless while it is in construction iterations. In this phase testers work on the defect stories.
It is the last phase of the agile testing. Product id finalized in this stage after removal of all defects and issues raised.
Agile Testing Activities:
Agile testing includes the following activities:
- Participating in iteration planning
- Estimating tasks from the view of testing
- Writing test cases using the feature descriptions
- Unit Testing
- Integration Testing
- Feature Testing
- Defect Fixing
- Integration Testing
- Acceptance Testing
- Status Reporting on Progress of Testing
- Defect Tracking