Psychology of testing is a very unique concept. In this article, we will be discussing a few important aspects of this concept, which are
- The comparison between the mind-set of a tester and a developer
- The existing balance between self-testing and independent testing
- The importance of healthy communication between the tester and developer while reporting feedbacks on defects
The comparison between the mind-set of a tester and a developer
During the development of a product or an application, the testing and reviewing of the application are a different concept than the analysing and developing the product. This actually means that during the process of development, the developers are positively working to solve the problems and to create a product that meets the end user requirements.
However, during the process of testing or reviewing, testers are searching and finding defects or failures present in the product. Therefore, this implies that it requires a completely different mind-set for a person to become a tester and a different mind-set for a person to become a developer.
However, this does not necessarily mean that a developer cannot become a tester or vice versa. Any person can become either of the two or both if he has sufficient knowledge and skill to fulfil that position.
The balance between self-testing and independence testing
Like mentioned above, it is possible for a person to become a programmer as well as a tester. In fact, the programmers developing the product are also testers, who can test their own products.
Any programmer, architect or a developer always test their own code before finally submitting it. Moreover, while testing their own code, they may even find problems that they can fix. However, it is very common knowledge that it is difficult to find the mistakes done by one’s own-self.
Therefore, these programmers, architects and developers depend on other testers to help find defects and failures in their product. Here, the other testers can be some other developer working in the same team or someone who is a testing specialist or a professional tester.
Thus, allowing a testing specialist or a professional tester to test the application refers to the concept of independent testing of the system. This provided degree of independence prevents author bias and is generally more effective in finding defects and failures within the product or application.
There are several levels of independence testing which are given below in an increasing order of their independence
- Tests conducted by the person who wrote the code
- Tests done by another person from the same developing team, like a fellow programmer in the team
- Tests conducted by a person from a different group, like an independent test team
- Testing done by a person coming from a different organization or company like an outsourced testing team or a certified external body
Importance of healthy communication between the tester and developer while reporting feedbacks and defects
It is universally accepted that all humans make mistakes sometimes and it is not very comfortable for them when someone points it out. So, when a tester, in his point of view, runs a good test and finds potential defects and failures in the software, it is important for him to report the same to the developer in a manner that does not hurt his feelings.
There are a few ways in which a developer or programmer may react when defects and failures are reported to them
- The developing team may react defensively and take the reported defect as personal criticism
- The project manager may be annoyed with the developing team for not doing their job properly
- The developer may take the issue personally and become demotivated even though he is very skilled and knowledgeable
- If the priority of the defect or failure is not properly conveyed, then the developer may become lazy or lethargic in fixing the defect that was reported
Testing is generally seen as a destructive activity. Hence, it is important for any tester to understand and report defects and failures in a way that is comfortable and not stingy to the developer. Doing so, will not only motivate the developer, but also increase the pace of the project.