Part of a series on |
Software development |
---|
Agile testing is a software testing practice that follows the principles of agile software development. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace. Specification by example is used to capture examples of desired and undesired behavior and guide coding.
Overview
Agile development recognizes that testing is not a separate phase, but an integral part of software development, along with coding. Agile teams use a "whole-team" approach to "baking quality in" to the software product. Testers on agile teams lend their expertise in eliciting examples of desired behavior from customers, collaborating with the development team to turn those into executable specifications that guide coding. Testing and coding are done incrementally and interactively, building up each feature until it provides enough value to release to production. Agile testing covers all types of testing. The Agile Testing Quadrants provide a helpful taxonomy to help teams identify and plan the testing needed. The model of the Agile Testing Quadrants was originally described by Brian Marick,[1] and was popularized by Lisa Crispin and Janet Gregory in their book Agile Testing: A Practical Guide for Testers and Agile Teams.[2][3] It places different test types on two axis: Technology Facing vs Business Facing, and Support Programming vs Critique Product.[1]
Traditional testing methodologies (often employed in the Waterfall model of software development) usually involve a two-team, two-phase process in which the development team builds the product to as near perfection as possible. The software product is delivered late in the software development life cycle at which point the test team strives to find as many bugs/errors as possible. In contrast with these traditional methodologies, Agile testing focuses on repairing faults immediately, rather than waiting for the end of the project. When testing occurs at the tail end of a project, it can sometimes be sacrificed in terms of duration and quality to meet critical schedules and budget restrictions.[4] Costs are expected to go down as the time between development and testing feedback decreases.[4][5] With shorter feedback loops, bugs fixes and reworks require less time as developers spend much less time reengaging the code's context as they move on to new problems and projects.[4]
In the "Worldwide Software Testing Practices Report 2015 - 2016",[6] ISTQB found that the popularity of Agile methodologies are significantly increasing, which shows the need for Agile testing processes and techniques. They are providing an Agile Tester extension to their certification.[7]
Tools
As companies grow, agile testing teams often rely on software testing tools to solve challenges that can ultimately speed-up the release of feedback making sure.[8] Most teams look for collaboration features, automated or customized reporting and finding ways to avoid repeated efforts. Choosing the right tool will depend on the requirements of each team. Pairing up with other Agile Lifecycle Development Tools, Agile testing tools can deliver effective results by coexisting in integrated environments. Such is the case for Atlassian Marketplace and Microsoft Visual Studio.[9]
Some test management tools support Agile testing by getting teams involved earlier in the SDLC to continuously build test scenarios as stories evolve.[10] Teams often look for a solution that can deliver a combination of automated and manual testing.[11]
Further reading
- Janet Gregory; Lisa Crispin (2009). Agile Testing: A Practical Guide for Testers and Agile Teams. Addison-Wesley. ISBN 978-0-321-53446-0.
- Gojko Adzic (2011). Specification by Example: How Successful Teams Deliver the Right Software. Manning. ISBN 978-1-61729-008-4.
- Kev Martin (2016). The Agile Tester 2: Software testing in the agile world. CreateSpace. ISBN 978-1539646228.
- Scott Ambler (2010). "Agile Testing and Quality Strategies: Discipline over Rhetoric". Retrieved 2010-07-15.
- Alexander Tarlinder (2017). Developer Testing: Building Quality into Software. Addison-Wesley. ISBN 9780134291086.
References
- ^ a b "Agile testing directions: tests and examples". 22 Aug 2003. Retrieved 21 Jan 2018.
- ^ Crispin, Lisa; Gregory, Janet (2009). Agile Testing: A Practical Guide for Testers and Agile Teams. Addison-Wesley.
- ^ Alexander Tarlinder (2017). Developer Testing: Building Quality into Software. Addison-Wesley.
- ^ a b c Mohanty, Hrushikesha; Mohanty, J. R.; Balakrishnan, Arunkumar (2017). Trends in Software Testing | SpringerLink. doi:10.1007/978-981-10-1415-4. ISBN 978-981-10-1414-7.
- ^ Wright, Christopher (2014). Agile Governance and Audit: An overview for auditors and agile teams. IT Governance Publishing.
- ^ "Worldwide Software Testing Practices Report 2015 - 2016". 2015–2016.
- ^ "Agile Tester Extension".
- ^ "Agile-Friendly Test Automation Tools/Frameworks - Test Obsessed". Retrieved 2016-06-29.
- ^ "Gartner and Software Advice examine Agile Lifecycle Management Tools". Retrieved 2016-06-29.
- ^ Global, IndraStra. "B&E | How Testing is Challenging in Agile Methodology". IndraStra. ISSN 2381-3652.
- ^ "Agile Testing Tools - Testing in Agile, Scrum and XP Projects". Retrieved 2016-06-29.
- Pettichord, Bret (2002-11-11). "Agile Testing What is it? Can it work?" (PDF). Archived from the original (PDF) on 2010-07-08. Retrieved 2011-01-10.
- Hendrickson, Elisabeth (2008-08-11). "Agile Testing, Nine Principles and Six Concrete Practices for Testing on Agile Teams" (PDF). Archived from the original (PDF) on 2011-06-14. Retrieved 2011-04-26.
- Huston, Tom (2013-11-15). "What Is Agile Testing?". Retrieved 2013-11-23.
- Crispin, Lisa (2003-03-21). "XP Testing Without XP: Taking Advantage of Agile Testing Practices". Retrieved 2009-06-11.