AGILE is a methodology that promotes continuous iteration of development and testing throughout the software development life cycle of the project. To be more precise, we can say that both development and testing activities are concurrent.
In agile, testing is not a separate phase, it is an integral part of software development. Testers lend their expertise in demonstrating user stories from customers. They guide the developers to develop user stories. Testing and Coding are done incrementally and iteratively. This will continue until the feature is ready to release in Production.
Now-a-days, we can see that more number of project teams are switching to agile mainly because of the simplicity of principles in it. Agile also seems to be easy to handle and to
At the end of a sprint cycle, two meetings are held: the “Sprint Review Meeting” and the “Sprint Retrospective”. At the Sprint Review Meeting, review of the completed work and the planned work is done. The completed work is presented to the stakeholders. At the Sprint Retrospective, analyses of the past Sprint is done and makes continuous process improvements.
The important aspects of SCRUM for a tester are Iterative lifecycle and frequent communication. Testing of the product is done during the iteration and not at the end of the development life cycle. It is the duty of the tester to decide that what to test when the product is still incomplete. Scrum is all about working as a team, and collaboration is the basic idea. For a tester it is highly recommended that he/she must work closely with other team members rather than working in isolation. Different types of testing are involved in agile such as Build acceptance testing, Component testing, Integration Testing, Retesting/Regression testing, Demo testing, Test automation, Exploratory Testing etc.
Testers should be given an active participation in the daily meeting and a tester should be present at daily status meetings. For a tester perspective it is worthy and quality oriented if he/she works with other testers and figures out that what to test along with the testing from the requirements specifications.
Automated testing is very important for an agile because new features and refactoring can introduce problems that can be difficult to find. By using an automated test framework, we can maintain quality levels during the iteration.
As we know testing is the real measure of progress, and in agile this means that a user story is not ready until:
- Development is completed
- All associated tests have passed
- Acceptance tests have passed
System tests or acceptance tests fail at the later stages of Sprint indicates that the team has failed to transfer testing to earlier phases of Sprint and failed to meet customer’s requirements.
Each Sprint items have to go through different quality gates in a Sprint.
In agile, metrics can be found easily such as
- Effort in hours
- Amount of backlog converted to shippable functionality of sprint
- No of Unit Tests added
- Time taken to complete daily build
- Bugs detected in an iteration
- Production defect leakage
Unlike Waterfall method, in agile, the participation of tester is from planning and requirements analysis phases itself. The tester’s experience in development can be fully used. The tester’s functions are largely determined by the tester himself.
During off-testing time, testers can do analysis of requirements and risks, test planning, test automation, setting up test environments, prepare the necessary documents and also provide help to developers.
The essence of agile is that testing activities are planned and executed from the very beginning and we can meet our targets by working more closely together. Compressed test period is the major benefit a tester will get being an agile tester.
The success factors of agile testing are testing at the early stage, better communication between the teams, and extensive regression testing. The factors help Testers and Developers to work together as one team towards a common goal resulting in a successful project completion.