The Modern Testing Principles have 7 key postulates, created by Alan Page and Brent Jensen in 2017. These rules or ideas help agile testers to step up to the next level and get their entire team to embrace quality. They encourage quality testing professionals to stop acting as a safety net for developers and step into a coaching role to help everyone learn how to test and achieve high-quality results.
These concepts are not particularly modern, and they can be applied to more than just testing, but they are resonating with many people in the industry as more and more software teams have begun to apply them.
Thanks to these Modern Testing Principles, more and more teams are delivering high-quality software by leveraging customer data, focusing on continuous improvement, and recognizing the importance of a culture of quality within their teams.
Why is it important to adopt Modern Testing Principles?
Traditional development teams often have separate, siloed testing teams that are concerned with consistency, test plans, and predictable test cases. Testing used to be viewed as a high cost and a bottleneck, testers would come in at the end of the development process to find bugs and verify that everything was working as expected before giving their seal of approval for release or production. However, occasionally, there was not enough money or time, and the testing process was cut or even eliminated.
Then came agile testing. An agile tester is a specialist on a feature team. Testers are embedded within teams and try to detect problems at an earlier stage. The focus shifted from finding bugs in the software already built, to preventing them from getting into the software in the first place. Still, these test specialists work primarily on test tasks that are required for the feature/product, rather than on quality as a whole.
The underlying fact is that testing helps reduce costs and increase revenue, finding problems early means it’s cheaper to fix them.
So let us dive into the principles and see what it would mean for companies and their testers to adopt these modern software testing techniques:
1 – Our priority is improving the business.
Testers focus heavily on the customer within their testing activities, but they also need to understand the business, and not only work towards delivering a quality product, but also delivering the right product that the customer needs.
The focus is on quality and customer satisfaction, not on the functional correctness of the code. Therefore, we need to understand the business and the customer within the business. To do this, it is important to create transparency and avoid silos. Build feedback loops, collect all possible information to adapt your test plan to the objective, and do it quickly in an interactive way.
Modern testers look for tasks that have a direct benefit to the business.
2 – We accelerate the team’s efficiency, and use models like Lean Thinking and the Theory of Constraints to help identify, prioritize and mitigate bottlenecks from the system.
This principle states that QAs should not only improve processes, but also accelerate the team’s progress, and remove other constraints from the equation. Every process has constraints, and focusing on tackling these constraints is the fastest and most effective way to improve profitability.
3 – We are a force for continuous improvement, helping the team adapt and optimize in order to succeed, rather than providing a safety net to catch failures.
The main goal is to hold the people writing the code accountable for its correctness.
Testers typically act as a safety net for their colleagues focused solely on development, preventing bugs from reaching the customer that wouldn’t have been spotted otherwise. If somebody else tests after me, then I do not have to worry about validating my code myself.
By gradually shifting code-intensive testing to developers themselves, and then having testers oversee and lead the testing processes, quality improves across all team projects. Testers are no longer seen as the last line of defense, but as the first line of attack, ensuring customer retention and application acceptance.
4 – We care deeply about the quality culture of our team, and we coach, lead and nurture the team towards a more mature quality culture.
We testers are not responsible for quality, but we are responsible for improving the quality culture.
It is important to create a quality-focused community, not just for testers and code. Testers cannot be the quality police. We can work with quality on all fronts (onboarding…) which includes all types of activities, it does not have to be just about work.
Encourage people to work with quality and involve people from other areas, then we can build a culture of quality for everyone. It is no longer a developer’s vs tester’s scenario, and QAs need to lead that change towards a holistic quality culture.
5 – We believe that the customer is the only one capable of judging and evaluating the quality of our product.
As much as testers and developers try to advocate for the customer and conduct testing through the whole customer journey, we are NOT the customer. Therefore, we need to find ways to get information from them, through conversations, forums, support, data … and develop and adapt our development based on this customer feedback. Sometimes we forget that customers do not want software, they just want problems solved. So does our software solve their problems? Does it provide value to them?
6 – We use data extensively to deeply understand customer usage, and then close the gaps between product hypotheses and business impact.
When we develop a product, we make a lot of hypotheses, and these hypotheses may or may not be true. The only way to find out is to challenge them by setting up feedback loops and collecting data that will help you understand and quickly respond to your product’s usage and performance. This will also enable you to make data-driven decisions when it comes to future projects, saving time & resources. Without data to back your claims, you might be potentially wasting invaluable resources.
7 – We expand testing abilities and know-how across the team; understanding that this may reduce (or eliminate) the need for a dedicated testing specialist.
If testing is only done by testers, then it’s a bottleneck. We need to help the whole team become better testers to have a collaborative team approach. Therefore, we need to actively coach other team members in testing.
There may be a level of maturity and testing knowledge in your organization where it might appear obvious that you do not need a dedicated testing specialist. That is something we should not fear, but welcome. Test knowledge is needed, but it can come from a test specialist or someone else on the team.
It was not too long ago that we had to fight to have a dedicated QA person on development teams to defend the fact that testing is an important task that should not be skipped or cut when there is no time or budget left. But those days are long gone. Companies have realized that it is cheaper to avoid defects, or find them at an earlier stage, rather than fixing them at a later stage of the production process.
The Modern Testing Principles are not a utopia that we might one day achieve, but general practices that have been proven in many companies and have stood the test of time. Of course, they are not an overnight fix either, but something that would take time and a team effort. Since most of these principles are connected, once you are on the right track you just need to follow them.
There may come a day when we have done our jobs so well that a dedicated quality person is no longer needed on software teams. On that day, if it ever comes, we should congratulate ourselves on our good work, continue to follow the principles, and iteratively adapt to the new situation.
Do you need help with refining your QA strategy and setting a culture of quality within your software teams? Reach out!
Laura Lopez is the Head of QA at Zartis and is passionate about modern, risk-based testing practices. She believes that quality is a mindset every team member should adopt and that good software is built through collaboration. With almost 10 years of experience in QA and testing, she has been providing testing expertise across a wide range of technologies and sectors.