Hello everyone, have you heard of Testing Quadrants? They are a visual tool for understanding different QA tests. The concept of Testing Quadrants for Agile testing was introduced by Brian Marick, a software consultant, and categorizes different types of tests across two main dimensions:
- Who the test is for: Tests can be either business-facing (focused on user needs) or technology-facing (focused on developer needs).
- The purpose of the test: Tests can either support the development team by ensuring that the software behaves as expected or critique the product by evaluating its performance, usability, and other quality attributes.
This model ensures that all important test types and levels are covered throughout the development process. It also helps explain the different kinds of tests to all stakeholders, including developers, testers, and business representatives.
In the testing quadrants, tests are categorized as either business-facing (focused on user needs) or technology-facing (focused on developer needs). Some tests support the Agile team’s work and confirm that the software behaves as expected, while others verify the product as a whole. Tests can be:
- Fully manual
- Fully automated
- A mix of manual and automated
- Manual but supported by tools
The four testing quadrants are:
Quadrant Q1
- Level: Unit testing
- Focus: Technology-facing, supports developers
- Tests: Unit tests
- Nature: Automated
These tests are included in the continuous integration process to ensure individual components work correctly.
Imagine you’re developing a shopping cart feature for an e-commerce website. A unit test in Q1 might focus on a single function that calculates the total price of items in the cart. The test checks whether the function correctly sums up item prices, applies discounts, and adds taxes. If the test fails, it indicates that there’s a problem in this specific piece of code that needs fixing before moving on to more complex testing.
Quadrant Q2
- Level: System testing
- Focus: Business-facing, confirms product behavior
- Tests: Functional tests, examples, story tests, user experience prototypes, simulations
- Nature: Manual or automated
These tests check acceptance criteria, improve story quality, and are useful for creating automated regression test suites.
For example, continuing with the e-commerce website, a Q2 test might involve a functional test where you simulate a user’s entire shopping experience — from browsing items to adding them to the cart, proceeding to checkout, and making a payment. This test could be automated and would check that the user can complete the entire process as expected, with each step functioning correctly according to the acceptance criteria.
Quadrant Q3
- Level: System or user acceptance testing
- Focus: Business-facing, critiques the product
- Tests: Exploratory testing, scenarios, process flows, usability testing, user acceptance testing, alpha and beta testing
- Nature: Often manual, user-oriented
These tests use realistic scenarios and data to ensure the product meets user needs.
For the same e-commerce site, in Q3, you might conduct usability testing where real users (or a test group) go through the process of purchasing a product. They might report on how intuitive they found the interface, whether they encountered any confusing steps, or if any part of the checkout process was frustrating. This feedback is crucial for making the product user-friendly and ensuring it meets the needs of actual customers.
Quadrant Q4
- Level: System or operational acceptance testing
- Focus: Technology-facing, critiques the product
- Tests: Performance, load, stress, scalability tests, security tests, maintainability, memory management, compatibility, interoperability, data migration, infrastructure, recovery testing
- Nature: Often automated
These tests evaluate how the product performs under different conditions and ensure it meets technical requirements.
In Q4, you might run a stress test on the e-commerce website during a simulated Black Friday sale. This involves pushing the website to its limits by simulating thousands of users shopping simultaneously to see if the site can handle the load without crashing. You might also conduct security tests to ensure that sensitive customer data, like credit card information, is protected against hacking attempts. Automated tools would typically be used for these tests to simulate the high load and potential security threats.
To summarize, it highlights how these quadrants help ensure comprehensive testing, covering everything from unit tests to performance and security evaluations, to deliver robust and user-centric software.
https://medium.com/@hannahanulur/beyond-code-how-agile-testing-quadrants-ensure-robust-and-user-centric-software-1bf97d07d68aa>
