Agile testing is a
software testing
Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to apprecia ...
practice that follows the principles of
agile software development
In software development, agile (sometimes written Agile) practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/ end user(s), ...
. 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
Specification by example (SBE) is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statem ...
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,
and was popularized by Lisa Crispin and Janet Gregory in their book ''Agile Testing: A Practical Guide for Testers and Agile Teams''.
It places different test types on two axis: Technology Facing vs Business Facing, and Support Programming vs Critique Product.
Traditional testing methodologies (often employed in the
Waterfall model
The waterfall model is a breakdown of project activities into linear sequential phases, meaning they are passed down onto each other, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks. ...
of
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development inv ...
) 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
In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software devel ...
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.
Costs are expected to go down as the time between development and testing feedback decreases.
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.
In the "Worldwide Software Testing Practices Report 2015 - 2016",
ISTQB
The International Software Testing Qualifications Board (ISTQB) is a software testing certification board that operates internationally. Founded in Edinburgh in November 2002, the ISTQB is a non-profit association legally registered in Belgium.
I ...
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.
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. 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
Atlassian Corporation () is an Australian software company that develops products for software developers, project managers and other software development teams. The company is domiciled in Delaware, with global headquarters in Sydney, Austr ...
Marketplace and
Microsoft
Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
Visual Studio.
Some
test management tool
Test management tools are used to store information on how testing is to be done, plan testing activities and report the status of quality assurance activities. The tools have different approaches to testing and thus have different sets of feature ...
s support Agile testing by getting teams involved earlier in the SDLC to continuously build test scenarios as stories evolve. Teams often look for a solution that can deliver a combination of
automated
Automation describes a wide range of technologies that reduce human intervention in processes, namely by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machines ...
and
manual testing
:''Compare with Test automation''.
Manual testing is the process of manually testing software for defects. It requires a tester to play the role of an end user where by they use most of the application's features to ensure correct behaviour. To ...
.
Further reading
*
*
*
*
*
References
*
*
*
*
{{DEFAULTSORT:Agile Testing
Software testing
Agile software development