Automated software testing measures quality. This statement is never truer than in medical device development.
Automated testing augments other processes to dramatically improve product reliability, predictability, and productivity. It reduces anomaly, field service, product support, and liability costs. Properly designed, it provides quality metrics for your organization to review and analyze. Given the proper environment, automated testing can accelerate development cycles, and provide a tangible return on investment (ROI) for the developer and end user.
Another benefit of automated testing is that it allows for testing that can be difficult or cost-prohibitive for people to run. For example, Software Quality Assurance (SQA) automation may reduce costs when regression testing/smoke tests are run after nightly builds to ensure that if a bug has been introduced in the latest commit, it is found as quickly as possible. Another example is testing different versions of software/hardware configurations as quickly as possible. Automated testing provides benefits throughout the software development lifecycle, decreasing verification test time and increasing reliability with supplemental manual testing.
What You Need to Know About Automated Software Testing
From a process point of view, automated testing may occur at different phases of the development process: unit testing, integration testing, verification testing, software system testing, and overall system testing. At each point, engineers need to define whether a test should be manual, automated, or a combination of the two. Automated unit testing is beneficial as it can be executed whenever a module is changed. Testing in the other phases of development should be discussed as a cost-benefit analysis. A project that is planned to be updated continually during its lifetime will benefit from automated testing to ensure maintenance releases do not accidentally cause adverse side effects.
Automated software testing is not without challenges:
- Includes supporting cell/line qualifications through manufacturing validations such as Operational Qualification (OQ) and Performance Qualification (PQ)
- It can be expensive and time-consuming to develop
- SQA engineers can be difficult to hire
- Manual testing can be “good enough” and be considered less costly
- Projects may not have the budget necessary to support automated testing
- Project architecture may not allow for automated testing
- Manual testing is often better at distinguishing minor oddities in graphical user interfaces (GUI)
Despite these challenges, automated testing is improving all the time and can provide continuous, repeatable testing of a product. This results in better quality metrics, which helps plan for future development.
How Automated Software Testing Can Help Your Project
Four reasons automated software testing may be right for your project:
- Test protocols are written based on requirements, not individual testers
- Testing can be easily re-executed throughout the development cycle including regression testing or smoke testing
- Testing can be performed under challenging system-level conditions
- Testing can be designed to exclude destructive testing of mechanical or electronic components
Companies interested in automated testing should start by reviewing the system architecture to see where automated testing can be beneficial and consider tools such as VectorCAST (C or C++ code) and J-Unit (Java Code) that help decrease the cost of automated testing. Use an Agile methodology to write the test before the software is written and be sure to include team members with automated testing experience to drive appropriate, efficient processes.
Here at Sunrise Labs, we recommend considering automated testing as part of your test strategy. Automated testing can benefit product development outcomes by allowing testing under continuous use conditions, providing repeatable quality data. This can give valuable insights to developers regarding the end-user experience with the device, saving money on maintenance, support, and liability costs.