High product quality is a foundational characteristic of a useful and successful product. Quality testing, therefore, is a necessary, albeit an open-ended task. It can at times seem a limitless undertaking in the present using experience from the past to improve the future. Nonetheless, it is approached as a development stage at Golden Helix that is just as essential as crafting the software code. The key is to reduce the approach to a series of manageable steps: Identify, Mitigate, and Prevent.
Identify
The first tenant of our product quality philosophy is that every team member is responsible for the quality. Good quality is not an accident but is the sum of the efforts put forth by every employee.
The second tenant when analyzing a product is to be a user first and then a tester. This reminds us that the goal is to produce an efficient and intuitive tool and not just an error-free interface. This also means that the entire team makes an effort to learn from the community to find out what is needed, what is working well, and where the focus is directed. Whether it’s a new field of research, a new technology to apply in the clinic, or a more refined methodology, users need the correct tools to proceed. The look, the feel, and the systematic workflow all affect how the product performs because the user is part of the process.
It is very important to us at Golden Helix to pay attention to our customer feedback as a crucial tool in the product development. Our customer feedback greatly assists in identifying relevant issues, so we highly regard these communications and have developed processes to quickly correct any concern that may impede customer results and satisfaction.
Mitigate
Once a quality issue or a bug is found, it must be squashed. And the extent of the issue, as well as the extent of the resolution can be determined during the testing phase. At this point, I would like to dispel a commonly held thought that testing is just checking. It is not. It is true that part of testing is verifying that the identified issue no longer remains, but it is unlikely that a single code change, for example, will produce a single result. It is important during testing to explore what additional impact any new feature or adjustment could produce and communicate the desired effect. Clearly communicating product requirements and scope are something we value in the effort to improve quality and decrease erroneous product adjustments.
One way to help mitigate errors that could be created during development is to automate error checking. Many of the repetitive processes can be automated and the results compared to previous sample runs to denote any change. Automation does not constitute the entire error checking platform but constitutes one arm that can be consistently updated and added to as more common errors are found. Error checking automation is a tool, though, and done incorrectly can waste resources. It is important always to ask what needs to be automated, not just how can this be automated.
Prevent
The overarching goal of quality testing is to prevent errors or bugs from ever reaching the user. Quality control processes should prevent bugs and then testing should discover the bugs that were not prevented. And although this can be the most indefinite step in the process, it is also the one that requires the most creativity.
I feel a commonly held belief is that quality testing does not require any creativity, but quite the contrary is true. The best way to test the level of quality of a product is to find ways to push the boundaries. And to be honest, as a tester it requires creativity to try and find ways to break the product and determine different ways the product can and cannot be used. Putting the product through a range of different scenarios helps replicate what the wide variety of users could perform and helps reduce the odds that a bug will not be found. And instead of wondering if there is a defect, the correct mindset of a tester is to assume that bugs do exist and are waiting to be discovered.
This creative practice is also meant to consider how the product requirements may change-especially in a field like genetics which is constantly evolving in how it is used in the research and clinical contexts.
Our philosophy is to create and deliver the highest quality tool to our customers who are not just customers, but an integral part of our product development. The entire team works to identify and communicate any quality issues, create a plan to mitigate the issues and formulate strategies to prevent any bugs or quality issues in the future.