For a notable portion of my testing career, I was in the “traditional tester” role, meaning that I was doing my testing in a fixed portion of the SDLC. As we know, in such work environments, dedicated testers are doing the most, if not all of the testing.
The developers may not be testing their newly developed features, and when they do, it’s usually just the happy path testing. In many of such companies, they don’t even have unit testing done at all.
In more serious establishments, the developers will test their features locally and write their unit and integration tests, but all end-to-end testing will ultimately be left for the testers 👩💻
In essence, these principles are very much the spiritual successor of Agile testing, explained by Lisa Crisping and Janet Gregory in their guide for testers. So, let’s take a deeper look at the seven modern testing principles!
Our priority is improving the business.
The developers on the team are the ones who make new features, so the business people often view other roles as just “additional cost”, which is the sad reality of things. But, as testers, we can help change this perspective. We should not limit ourselves to “only” performing testing in form of validation of new features and bug fixes.
Since we as testers have the opportunity to become broad system thinkers, we can use that to critically analyze the product, and suggest improvements instead of just blindly following the specifications.
Specs can be wrong and incomplete, and we should challenge them. But this only has a chance to work in a mature environment, that understands the spirit of Agile- everyone must contribute to quality improvements.
Apart from contributing ideas to improve the product, we should also always be analyzing our testing process to see how we can improve that as well. We don’t want or need to be the “QA Gatekeepers”, as this is a relic of the past and it doesn’t work well with today’s fast-paced economy.
Being able to keep up with the competition is one of the main reasons why the DevOps culture came to be – which shares a lot of its values with Agile philosophy and modern testing.
We accelerate the team, and use models like “lean thinking” and the “theory of constraints” to help identify, prioritize and mitigate bottlenecks from the system.
These principles focus on testers shifting their focus from being dedicated experts who are doing most, if not all of the testing activities, to being more of a coaching role that is teaching other team members to test better, while promoting the whole-team approach to quality.
In this context, lean thinking means that through constant learning and improvement, we are doing our best to reduce waste. The theory of constraints helps us identify what are the biggest blockers preventing us from achieving our goal.
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.
This means that testers should always be striving to improve the processes in their companies, being flexible (which is very much aligned with the Agile spirit) to learn new technologies and experiment.
Also, the safety net parts mean that the responsibility for the entire testing activities is no longer on the testers. We should be teaching (or coaching) others on how to test best. For example, organizing workshops for the developer to demonstrate why it is important to make the app as testable as possible.
We care deeply about the quality culture in our team, and we coach, lead and nurture the team towards a more mature quality culture.
Big changes often require adjustments in how people think and operate. In that regard, we should help promote a culture of collaboration, instead of a culture of blaming.
This can happen by being active in the community, and creating one for knowledge sharing, discussing any blocking issues openly, and being there to help one another. In practice, the developers can share their technical knowledge with the testers, and the testers can teach the developers how to test better and earlier.
We believe that the customer is the only one capable of judging and evaluating the quality of our product.
Traditionally, the QAs are viewed (or often self-proclaimed) as the representative, or the champions of the customer. But in truth, only the customer is the true representative of itself! The course of software development should be adjusted according to the customer’s actual needs.
Gathering the right data is crucial, so we don’t end up developing features that the customers didn’t ask for and don’t need. Customers don’t really care about design patterns and perfect architecture behind your software, they just want their problem solved, that’s all there is to it.
That being said, in alignment with the first principle, we should also make sure our software is high-quality, but not bother the customer with the details of the technical implementation, unless they ask for them.
We use data extensively to deeply understand customer usage, and then close the gaps between product hypotheses and business impact.
Data is hugely important in the modern day and age, especially for making informed decisions based on actual information. This is where “testing in production” comes in.
We should monitor the behavior of our users using extensive analytics, use AB testing methods to determine things like which UI/UX solution the actual user are better responding to, and ultimately to make sure that we are not blindly guessing what the customer wants. We should be sure that we are basing our decision on empirical data. Sounds a bit like Scrum in that regard, doesn’t it?
We expand testing abilities and know-hows across the team, while understanding that this may reduce (or eliminate) the need for a dedicated testing specialist.
Now, this principle is often seen as the most controversial one, but it’s really not a radically new concept. The Agile practice of extreme programming also has no concept of a dedicated tester, or a siloed QA department. Instead, it emphasizes that everyone dealing with the product should contribute to its quality and be involved in testing to a certain degree, according to their role.
This doesn’t really mean that existing testers will be left jobless. It just means that dedicated testers are shifting away from being the ones who do the majority of testing, to becoming quality advocates who promote better testing and teach how to improve the quality of the products we deliver.
In this article, we explained the 7 modern testing principles. If you are looking for more details, you can check out the AB testing podcast, where Alan Page and Brent Jensen discuss modern testing and many other topics 🔸