What is the Agile Methodology?
Agile software development refers to software development methodologies based around the idea of iterative development, where requirements and solutions evolve through collaboration between self-organising cross functional teams and stakeholders. The focus of the Agile manifesto is “Continuously delivering working software while allowing for and supporting changing requirements”.
More and more organisations are adopting Agile processes due to the benefits of faster application development cycles and quicker turnaround. However, shorter and faster development cycles are generally questioned for quality, hence it is important to integrate testing into the process rather than as an activity that occurs at the end of the development phase.
To achieve this it’s important to create a Test strategy that is result-oriented and that fit well with the team and organisation as a whole. There is no one-size-fit-all when it comes to the strategy, so you need to tailor it to each particular project/application.
In this article I intend to introduce the Agile Test Quadrants that are defined by Brain Marick, which can be used as a starting point for your Agile test strategy.
What are Agile Testing Quadrants?
Quadrant 1 – Technology-facing tests that support the team
Quadrant 1 consists of test cases that are technology driven and are performed to support the development team. Q1 is associated with Automation testing with focus on code quality, and covers tests such as Unit tests, Integration/API tests and Component tests. These tests are fast to execute, easy to maintain and modify, and gives rapid feedback to the development team about the quality of the code. The tests in this Quadrant plays an important role when you want to develop an application in a Continuous Integration and Continuous Deployment (CI/CD) environment. Some example frameworks and tools used in this quadrant are Junit, Nunit, Xunit, RestSharp, RestAssured, Jenkins, Visual Studio, Eclipse, etc.
Quadrant 2 – Business-facing tests that support the team
Quadrant 2 consists of tests that are business driven and are performed to support the development team. Q2 is associated with Automation & Manual testing with focus on requirements, and covers tests such as Functional, Examples, Story tests, Prototypes and Simulations. Skilled testers can collaborate with the stakeholders and clients to understand the business requirements and use that knowledge to validate the product. Tools and frameworks such as BDD Cucumber, Specflow, Selenium, Protractor, etc. can be used.
Quadrant 3 – Business-facing tests that critique the product
Quadrant 3 consists of business facing, system or user acceptance level tests such as Exploratory testing, Scenario based testing, Usability Testing, User Acceptance testing, demos and Alpha/Beta Testing. Mostly manual testing methods are used to evaluate the application based on the user requirements. The skilled testers can pair with the customers to perform User Acceptance testing.
Quadrant 4 – Technology-facing tests that critique the product
Quadrant 4 consists of technology-driven test cases that critique the product. This quadrant focuses on the non-functional requirements such as Performance, Load, Stress, Scalability, Security, Reliability, Maintainability, Compatibility, etc. Automation tools such as Jmeter, Taurus, Blazemeter, BrowserStack, OWASP ZAP, etc. can be used.
These quadrants helps the teams to plan their testing. There are no hard and fast rules about what goes in what quadrant and no mandate to follow the quadrants in a sequential manner as explained above. A tester may start from any of the quadrants as per their requirements, priority, risks and their own choice. You can always customise the quadrants according to your project and team requirements and can act as a guide to build your Agile Test Strategy.