Test Management: Psychology of Testing
Test Management Blogpost – Psychology of Testing
In the previous blogpost parts, the testing procedures such as black box, white box and other well-known procedures were introduced. This part will focus on soft skills in the context of testing: What should a tester be like? What should he or her bring to the table? Tips for productive cooperation with developers are also presented.
The tester should not only be perceived as the bearer of bad news. The basic rules for effective communication as well as good cooperation are crucial. Found errors should be communicated neutrally and objectively as well as without personal judgement. Mistakes are human, especially when it comes to time pressure. It is important that everyone has the same understanding of the test object and the alleged error within the team, by having the problem confirmed and by listening carefully to both parties. Entrenched opinions should be discarded, as only then can both parties achieve mutual understanding and come to an agreement.
The personality of a tester
As a tester, a high degree of curiosity is required. This enables the tester to identify potential problems in the developer's solutions at an early stage. "Let's take another look" means professional pessimism rather than a lack of confidence. With a critical eye, the tester looks closely at the details and is motivated to good, positive communication in the relationship with the developers. This also requires sociability.
The developer is a tough "opponent" for the tester because the tester tends not to perceive information that is not compatible with his proposed solutions. This phenomenon known as "confirmation bias" can also apply to the tester when he is deeply convinced of the correctness of his test cases. In this case, good communication skills are again required.
Test stages
In principle, development and testing can be performed by the same person, especially for simple systems with a manageable scope. However, with increasing complexity and criticality, a separation of these two roles in terms of personnel should be strived for. Even if test automation should be pushed, the tester needs to design the test cases accordingly. A certain degree of independence increases the effectiveness of the tester in finding errors (keyword operational blindness). However, independence is no substitute for experience (familiarity) with the software, even developers can efficiently find many errors in their own code.[1]
The following diagram shows how the level of abstraction increases as the independence of the tester increases.
The consistent separation of roles also results in higher test motivation. Independent testers from one vendor can report on the system under test in an accurate and objective manner, without political pressure from the company that hired them. However, there are also a few disadvantages to mention. First of all, the distance from the team can be disadvantageous - very well observed in agile development. Redundancies between tests by the developers and those by the testers also become more likely. Developers may also lose a sense of responsibility for quality if someone else is officially responsible for testing. As a third point, independent testers might be seen as a bottleneck or blamed for delays.
Summary and conclusions
Being a tester is not that easy. It requires some skill as well as theoretical knowledge to establish testing as part of quality measures. The ethical guidelines such as public, customer and employer, product a professional and independent judgment complete the role of the tester. Personally, the tester should continue his or her education throughout his or her life (e.g., through certifications) and should always be fair and helpful to his or her colleagues. In both agile and traditional environments, the tester should not be regarded as a single player but should always form a team with the developer in order not to lose focus on the quality of the product.
Quellen
[1] Vgl. ISTQB Certified Tester Foundation Level Guide (Software Testing Academy)