In the continuation of (Part 2) Benefits & Principles, we are here with part 3(final) of this agile testing series.
Agile Testing Methods
The three primary agile testing methodologies that are widely used are:
- Behavior Driven Development
Behavior Driven Development or BDD emphasizes enhancing communication among all stakeholders involved in the project. It ensures that everyone comprehends the features that must be implemented before initiating the development process. This method involves constant example-based communication between business analysts, developers, and testers, also known as scenarios. These scenarios are written in a particular format, commonly referred to as Gherkin Given/When/Then syntax, and illustrate how each feature must behave in different circumstances with varying input parameters.
- Acceptance Test-Driven Development (ATDD)
ATDD involves various members such as developers, testers, and customers to bring in different perspectives. Acceptance tests are created, and each member is assigned a point of focus. For instance, customers focus on the issues that must be resolved, developers concentrate on finding solutions, and testers keep their attention on potential faults. The acceptance test-driven development approach revolves around examining the system from the user’s perspective, assessing how it functions, and ensuring that it operates as intended.
- Exploratory Testing
In this testing approach, test design and execution occur simultaneously. Exploratory testing prioritizes working software over detailed documentation. This methodology values individuals and interactions over tools and processes. It enables testers to understand the system’s functionality by exploring the application. They attempt to learn about the application and based on their findings, design and execute their test plans.
Agile testing methodology comprises several types of testing, including performance, unit, and functional testing, which are divided into four quadrants as follows:
The focus is on code quality, comprising technology-driven test cases such as unit tests, API tests, and component tests. Automated testing and continuous integration are often associated with these tests.
The emphasis is on project requirements, including testing of workflows, prototypes, and pair testing. These tests are business-driven and can be conducted through both manual and automated testing.
This quadrant provides collective feedback to quadrant 1 and quadrant 2. It involves usability testing, exploratory testing, collaborative testing, and user acceptance testing and is generally associated with manual testing.
This quadrant ensures meeting quality standards and expected values, including non-functional areas such as product performance, stability, and security. Testing comprises performance, security, scalability, and data migration testing and is often automated.
While Agile testing provides a high-quality and error-free product, it also has some drawbacks, such as compressed test execution cycles and less time for test planning.
Additionally, QA people have to play a semi-developer role. Nonetheless, the benefits outweigh the downsides, making Agile testing a successful approach.