Agile testing is a software testing practice that follows the principles of agile software development. Agile testing focuses on repairing faults immediately, rather than waiting for the end of the project.
Agile development recognizes that testing is not a separate phase. Testing and coding are done incrementally and interactively, building up each feature until it provides enough value to release to production.
Testing involves all members of a cross-functional agile team (business, development, testing…etc.), with special expertise contributed by testers, to ensure delivering the business value desired by the customer. In other word, unite teams around the principles of collaboration, flexibility, simplicity, transparency, and responsiveness to feedback throughout the entire process of developing a new program or product.
Principles of Agile Testing:
- Testing is NOT a Phase: Agile team tests continuously and continuous testing is the only way to ensure continuous progress.
- Testing Moves the project Forward: When following conventional methods, testing is considered as quality gate but agile testing provide feedback on an ongoing basis and the product meets the business demands on iterated fashion.
- Everyone Tests: In conventional SDLC(System delivery lifecycle), only test team tests while in agile including developers and BA’s(Business analyst) test the application.
- Shortening Feedback Response Time: In conventional SDLC, only during the acceptance testing, the Business team will get to know the product development, while in agile for each and every iteration, they are involved and continuous feedback shortens the feedback response time and cost involved in fixing is also less.
- Clean Code: Raised defects are fixed within the same iteration and thereby keeping the code clean.
- Reduce Test Documentation: Instead of very lengthy documentation, agile testers use reusable checklist, focus on the essence of the test rather than the incidental details.
Test Driven: In conventional methods, testing is performed after implementation while in agile testing, testing is done while implementation.
Applying Agile Principles and Values
Individuals can have a big impact on a project’s success. We’d expect a team with more experienced and higher-skilled members to outperform a less talented team. But a team is more than just its individual members. Agile values and principles promote a focus on the people involved in a project and how they interact and communicate. A team that guides itself with agile values and principles will have higher team morale and better velocity than a poorly functioning team of talented individuals.
The four value statements in the Agile Manifesto, which we presented at the start of the first chapter, show preferences, not ultimatums, and make no statements about what to do or not to do. The Agile Manifesto also includes a list of principles that define how we approach software development. Our list of agile “testing” principles is partially derived from those principles. Because we both come from the Extreme Programming culture, we’ve adopted many of its values and underlying principles. We’ve also incorporated guidelines and principles that have worked for our teams. Your team’s own values and principles will guide you as you choose practices and make decisions about how you want to work.
The principles we think are important for an agile tester are
- Provide continuous feedback.
- Deliver value to the customer.
- Enable face-to-face communication.
- Have courage.
- Keep it simple.
- Practice continuous improvement.
- Respond to change.
- Focus on people.
- An “agile testing mind-set” is customer-focused, results-oriented, collaborative, creative, eager to learn, and passionate about delivering business value in a timely manner.
- Attitude is important, and sometimes it blurs the lines between testers, programmers, and other roles on an agile team.
- Agile testers apply agile values and principles such as feedback, communication, courage, simplicity, enjoyment, and delivering value in order to help the team identify and deliver the customer requirements for each story.
- Agile testers add value to their teams and their organizations with their unique viewpoint and team-oriented approach.