Human psychology has significant effects on software testing because Software development, including software testing, involves human beings. The mindset used while testing and reviewing differs from that used while developing software. It becomes essential to consider the psychological aspects when working in mixed teams.
Having some of the Test activities done by independent testers increases defect detection effectiveness, which is particularly important for large, complex, or safety-critical systems. Independent testers bring a perspective different from that of the work product authors (i.e., business analysts, product owners, designers, and developers) since they have different cognitive biases from the authors.
Human Psychology and Testing
Defects identified during static and dynamic test execution can be perceived as criticism of the product and its author. Testing is sometimes perceived as destructive due to different psychological factors. Some of the factors are:
- Confirmation Bias: Confirmation bias is the tendency to search for, interpret, favor, and recall information in a way that confirms or supports one's prior beliefs or values. It is difficult for humans to become aware of errors committed by themselves. For example, generally, developers have a confirmation bias that makes it difficult to accept that their code is incorrect.
- Cognitive Bias: A cognitive bias is a systematic pattern of deviation from norm or rationality in judgment. Individuals create their own "subjective reality" from their perception of the input. This may make it difficult for people to understand or accept information produced by testing.
- Blame the bearer: It is a common human trait to blame the bearer of bad news, and information produced by testing often contains bad news.
- Testing as Criticism: Some people may perceive testing results as a criticism of the product and its author. For example, when testers identify defects during testing, these defects may be seen as a criticism of the product and author rather than the status of product quality.
How to Overcome Psychological Barriers
- Provide information in a Constructive Way: During static and dynamic testing, information about defects and failure should be provided in a constructive way to reduce the tension between testers, analysts, product owners, designers, or developers.
- Develop Good Interpersonal Skills: Testers and test managers must have good interpersonal skills to communicate effectively about test results, test progress, risks, defects, and failure. Interpersonal skills are required to build a positive relationship with different team members.
It is essential to clearly state the testing objectives at the beginning of a project. These objectives may include finding as many defects as possible. Defining the right set of test objectives has important psychological implications. Most people tend to align their plans and behaviors with the goals set by the team, management, and other stakeholders. Testers must also adhere to these objectives with minimal personal bias.
How to Communicate Well
- Start with Collaboration: Start with collaboration rather than battles. Remind everyone of the common goal of better quality systems.
- Emphasize Testing Benefits: Highlight the usefulness of testing. For example, for the authors, defect details can help them improve their work products and their skills. For the organization, defects found and fixed during testing will save time and money and lower the overall risk to product quality.
- Communication of Test Results: Communicate test results and other findings in an unbiased, fact-focused way without blaming the person who created the defective item. Write objective and factual defect reports and review findings.
- Understand How people feel: Try to understand how the other person feels and why they may react negatively to the information.
- Confirmation of Understanding: Confirm that the other person has understood what has been said and vice versa.
Tester's and Developer's Mindsets
A mindset reflects an individual's assumptions and preferred methods for decision-making and problem-solving.
The primary objectives of developers and testers are different, and they think differently. Developers are constructive in nature, whereas testers use a destructive nature. While developers' primary objective is to design and build the products, the testers' primary goal is to verify and validate the product and identify product defects.
Different sets of objectives require different mindsets. Bringing these mindsets together helps to achieve a higher level of product quality.
- A tester's mindset should include curiosity, professional pessimism, a critical eye, attention to detail, and a motivation for good and positive communications and relationships. A tester's mindset grows and matures as the tester gains experience.
- A developer's mindset may include some elements of a tester's mindset. Still, successful developers are often more interested in designing and building solutions than in contemplating what might be wrong with those solutions.