What mindset is the basis for an effective and efficient software tester? And what are the characteristics of an agile testing mindset? Let's discover it together.
Among the many factors involved in successful testing, testing psychology has an important place as it can influence the way we approach testing, without us realizing that we are making some particular value judgments. For example, it has been noticed that developers are less effective at testing their own code (or even their colleagues' code) compared to a dedicated tester. There are several reasons why this could happen:
It's hard to find a flaw in something made by yourself. It can be difficult to think about what could go wrong when you focus on what the system is supposed to do. In general, developers tend to have a solution-oriented mindset, whereas testers need to be problem-oriented, i.e. looking for 'how to break' things rather than 'how to build' things. Testers usually do not need to know in depth how the system being tested works. Instead, they need to put on their end user hat and think about possible scenarios from the user's perspective. In this case, developers' awareness of how the system works can prevent them from seeing alternative scenarios that could lead to unexpected behavior. This means to be an effective tester, you need to focus on how to break software. In some cases, your intention should be to prove that 'it doesn't work', but that approach alone may not be enough to achieve success.
Communicating Findings
At the same time, you need special skills to be able to communicate the problems you find. Just being a 'villain' who ruins everything is inefficient in the long run. Remember that developers have an emotional attachment to their work, so it's natural for them to be sensitive to criticism delivered in good faith.
This is where some of the skills explained in our post on Constructive Communication can be useful to use. Some of the main points are as follows:
Using a constructive and friendly tone is easy and natural when you realize the common goal that testers and developers are working towards. In fact, the reason why developers might feel offended by criticism of their code is because they are trying to achieve quality before reaching the testing stage, which is also what you are trying to do. In a friendly environment, developers can feel grateful for the opportunity to learn from their own bugs and receive your feedback. They will respect the testers they work with, which will help them learn how to put on the tester hat when necessary and expand their experience. This is how a true team is formed.
Agile Testing Mindset
A software tester's job doesn't just mean finding bugs, but also preventing them. This includes requirements analysis, process optimization, and implementation of a continuous testing approach. In this case, a tester's mindset means caring about quality at all stages of the software development cycle. In agile development, quality becomes the responsibility of the entire team, so the main focus of agile testing shifts to initiative and control of activities that prevent defects.
Conclusion
To be a successful tester, you need to be critical of software and friendly to developers. In other words, a true software tester knows not only how to break software, but also how to build friendly and productive relationships and elaborate processes that prevent defects.