No discussion about software quality would be complete without examining the role of software testing. In the previous post in this series on quality, we mentioned that software testing is a vital part of software quality control (QC). That’s because it’s used to find and prevent defects, ensure performance, and confirm that requirements are met.
“Testing is the procedure of evaluating software quality by utilizing the software with appropriate test cases and to figure out whether the proposed software requirements are fulfilled.” – Manju Khari
In this post, we’ll take a closer look at which types of software need to be tested, when they should be tested, and how testing can help you ensure the quality of your software is high.
Every type of software in the lab needs to be tested. Whether your lab is using an off-the-shelf laboratory information management system (LIMS) with or without customizations, custom software applications, or instrument and system integrations, you’ll need to make sure that you test them all.
We recommend testing frequently throughout the development phase, but especially before you go live in your production environment. Software should also be tested anytime a change is made to applications already in production. Lastly, we suggest testing production software periodically to ensure nothing has been broken by regular system updates such as those coming from other software vendors (e.g., LIMS version releases or supporting library releases, which may not be as obvious).
There are several ways you can use testing to make sure software meets your lab’s requirements, is free from error, and fit for purpose:
Note that it won’t be possible to automate absolutely everything related to software testing. You’ll always need people to manually develop and maintain the tests. But we advise labs to start building now and continue to add automated testing wherever possible. We believe it’s helpful to view the effort expended in building tests as continually ensuring overall quality, rather than simply part of the development effort.
Typically when clinical labs make minor assay revisions, they need to make time to validate them prior to sending the revisions to the production environment. If you use automated software testing, however, you’ll save time during this phase, and you’ll spend less time validating minor revisions overall.
In other words, investing in automated testing during the initial software build pays significant dividends over time, in terms of efficiency and efficacy, as assays evolve. When researchers looked at the trade-offs between automated and manual software testing, they reported that “test automation is a plausible tool for enhancing quality, and consequently, for reducing software development costs in the long run.”
If you’re interested in learning more about the types of testing you could use for different applications and stages of development, see our previous post on software testing. Or, contact us if you have any questions about software quality.