What mindset drives an effective and efficient software tester? And what distinguishes the agile testing mindset? At Capitole, we were curious to discover what qualities stood out in our teams. Let’s explore together.
The psychology of testing plays a crucial role in successful testing, often influencing our approach without us realizing it. For instance, it has been observed that developers may be less effective in testing their own or their team’s code compared to dedicated testers. There are several reasons for this:
It’s challenging to identify defects in something you have created yourself.
It can be difficult to anticipate potential issues when you are focused on the system’s intended functionality.
Developers tend to have a solution-oriented mindset, while testers need to adopt a problem-oriented mindset, focusing on identifying how to break things rather than how to build them.
Testers do not necessarily need to possess in-depth knowledge of how the system under test works. Instead, they need to view it from the perspective of end users and consider possible scenarios from their standpoint. A developer’s deep understanding of the system’s inner workings may hinder their ability to identify alternative scenarios that could result in unexpected behavior.
This implies that to be an effective tester, one needs to be focused on finding ways to break the software. However, solely adopting this approach may not be sufficient for success.
Furthermore, effective communication skills are essential for testers to communicate the issues they uncover. Simply being a “bad guy” who identifies flaws is not productive in the long run. It’s important to remember that developers are emotionally invested in the results of their work, and criticism, even if well-intentioned, can be sensitive to them.
This is where the skills of constructive communication come into play, as outlined below:
- Discuss the problem, not the person.
- Be specific, not general.
- Present facts, not judgments.
- Focus on the future, not the past.
- Communicate from a perspective of common goals.
Using a constructive and friendly tone comes naturally when you realize that testers and developers share the common goal of achieving quality software. In fact, developers may feel appreciative of the opportunity to learn from their own mistakes and receive feedback from testers in a collaborative and friendly environment. Testers who work in collaboration with developers are respected for their contributions, which can help developers understand how to adopt a tester’s mindset when necessary, thereby expanding their experience. This is how a cohesive team is formed.
Agile Testing Mindset
Being a software tester involves not just identifying bugs, but also preventing them. This includes requirements analysis, process optimization, and implementing a continuous testing approach. In an agile development environment, the responsibility for quality rests with the entire team, and the focus of agile testing shifts towards proactively initiating and controlling activities that prevent the occurrence of defects.
To be a successful tester, one needs to have a critical eye for identifying software flaws while also maintaining a gracious and collaborative approach towards developers. In other words, a true software tester knows how to both break software and build friendly, productive relationships, while contributing to the process of defect prevention.