The development and testing processes of a product are interrelated as achieving high quality is impossible without the coordinated and harmonious work of different departments on a single task. This often raises the question of responsibility for product quality. Who has greater responsibility for unfixed or undiscovered bugs, or missed deadlines? In this article, we will explore the assumption that testers bear more responsibility during the team's collaborative efforts to improve the product.
Who is responsible for product quality: developer or tester?
- 23.07.2024
- Posted by: Admin
What is product quality?
Before discussing the responsibilities of team members and their accountability, it is essential to understand the concept of product quality, its standards, and its characteristics.
According to the ISO 8402:1994 standard, product quality is the totality of characteristics of an entity that bears on its ability to satisfy stated and implied needs and those that may arise during use. In other words, it is an indicator of how well the product meets the explicit and implicit requirements set for it.
However, there are many other sources interpreting the concept of quality, whose essence is directly or indirectly aligned with the aforementioned standard.
Another example is the definition of quality by the International Software Testing Qualifications Board (ISTQB). They state that quality is the degree to which a component, system or process meets specified requirements and/or user/customer needs and expectations. The ultimate goal of development is to create a bug-free product that meets the expectations of everyone involved in the project.
To ensure that the concept of quality is concrete and measurable, there are specific criteria used to determine whether a product is of high quality. These criteria include functionality, reliability, usability, efficiency, portability, and maintainability.
Nevertheless, even with these criteria, the evaluation will remain subjective, influenced by who is making the determination, their level of awareness, the conditions, and other factors. For instance, if a project involves a developer from one continent with a fundamentally different mindset and a tester from the opposite side of the globe with a different perspective on processes and concepts, there will be differences in understanding the product logic, algorithms, and other aspects right from the communication stage. This is due to different perceptions of the same concept by various people.
Considering these features of the concept of product quality, it is not surprising that there is a split between those who believe that product quality depends on the developer and those who believe it depends on the tester. This split arises from the blurred boundaries in the understanding of quality.
While it may seem straightforward to hold the tester responsible for product quality since they evaluate it from the end user's perspective, the criteria for product quality reveal that the issue is more complex.
Let’s consider the maintainability criterion, which differs somewhat from the other criteria. While functionality, reliability, usability, efficiency, and portability primarily reflect the end user's expected results, the maintainability criterion specifically concerns developers.
According to standards, maintainability encompasses four main factors: analyzability, changeability, stability, and testability.
Imagine a situation where a developer implements a feature that is untestable due to too many input parameters and intermediates (those added during the process and combined with the inputs). At this stage, it is crucial to clarify how the system can be tested. If the developer cannot provide a clear answer, such a feature should likely not be implemented. Without the ability to test this feature, it will not function as expected and will negatively impact other related functionalities.
What is needed from testers to improve product quality?
To improve product quality, testers need to fulfill their primary duty: thorough testing. While this may sound straightforward, it highlights the issue of insufficient tester qualifications. To address this, testers must continually develop their skills and gain experience in the field of testing.
The second problem could be an insufficient number of testers on a specific project. By using software testing metrics, various indicators, including time expenditures, can be calculated to roughly determine the number of specialists needed on the project.
The third problem is untimely testing. This includes not only delayed testing due to a lack of time but also the issue of premature testing. Early testing involves evaluating the product in a "Draft" status, which means a version that has never been released before – a pre-release version. Testing too early is problematic because testers may spend time finding low-severity defects that are likely to be addressed before the product release, thus wasting valuable resources.
What is needed from developers to improve product quality?
It is assumed that developers have an in-depth understanding of their specific part of the product. Therefore, the practice of developers anticipating potential errors is quite common and beneficial. It is entirely normal and encouraged for developers to share their insights and assumptions with testers.
Another effective approach to improving product quality is through code reviews. This practice involves close collaboration within the development team, where one developer reviews another's code. This saves a significant amount of time and effort in the long run.
To further enhance product quality, developers should conduct smoke testing of their own changes. Before handing over the product for formal testing, a brief test should be conducted to ensure that the code compiles and the basic functionalities work correctly.
Another crucial aspect of improving quality is involving developers in the process of creating requirements by testers. Ideally, documentation and requirements for the product or specific features should be in place by the time testing begins. However, in practice, testers often have to create these requirements themselves. Therefore, developer participation in this process is essential to ensure clarity and accuracy, leading to better overall product quality.
Conclusion
After reviewing the main concepts in the field of product quality, it is clear that the entire team, including both developers and testers, shares responsibility for the product's quality. No single group has more or fewer obligations affecting the quality. Only through the coordinated efforts of all participants can the product meet the criteria and satisfy user needs. Effective communication within the team is crucial for achieving high product quality.