Which mindset stands behind the effective and efficient software tester? And what are the specifics of the agile testing mindset? Let's find out together.
Among the many factors involved in successful testing, the psychology of testing takes an important place as it can affect the way we approach testing, without us being aware that we are making certain value calls. For instance, it has been noticed that developers are less effective in testing their own (or even their teammate’s) code as a dedicated tester. There are several reasons for why this can happen:
- It’s difficult to find defects in something created by yourself.
- It may be challenging to think about what could go wrong when you are focused on what the system should do.
- In general, developers tend to have a solution-oriented mind, while testers need to be problem-oriented, i.e. looking ‘how to break’ things instead of ‘how to build’ them.
- Testers don’t usually need to deeply know how the system under test works. Instead, they need to wear the hat of the end user and think about possible scenarios from the user’s standpoint. In these terms, developers’ awareness of the way the system works can prevent them from seeing alternative scenarios that could cause some unexpected behavior.
This means that to be an effective tester, you need to be focused on ways to break software. In some sense, your intention should be to prove that ‘it doesn’t work’, but that approach alone may not be all that is needed for success.
Communicating the Findings
At the same time, you need some special skills to be able to communicate the issues you’ve found. Just being a ‘bad guy’ who breaks everything is not efficient in a long-term perspective. Remember that developers are emotionally attached to the results of their work, so it’s natural that they can be sensitive to your well meaning criticism.
This is where some of the skills explained in our post on Constructive Communication can be useful to use. The main points are listed below:
- Discuss a problem, not a person;
- Be specific, not general;
- Operate with facts, not with judgements;
- Focus on the future, not on the past.
- Communicate from the position of the common goal.
Using a constructive and friendly tone is easy and natural when you realize the common goal that testers and developers strive for. In fact, the reason developers may feel hurt by criticism of their code is that they strive for quality before reaching the testing stage, which is exactly what you are striving for too. In a friendly environment, developers can feel grateful for the opportunity to learn on their own bugs and for receiving your feedback. They will respect testers who collaborate with them, which will help them learn how to wear a tester’s hat when needed, expanding their experience. This is how a true team is born.
Agile Testing Mindset
The work of a software tester means not only finding bugs, but preventing them. That includes requirements analysis, process optimization, and the implementation of a continuous testing approach. In this sense, a tester’s mindset means caring about quality during all stages of the software development life cycle. In agile development, quality is the responsibility of the entire team, so the main focus of agile testing is shifted towards the initiative and control of activities that prevent the occurrence defects.
Conclusion
To be a successful tester, you need to be critical to the software and gracious to the developers. In other words, a true software tester knows not only how to break software, but how to build friendly, productive relationships and elaborate the process that prevents defects.