Smiths Medical is a leading global manufacturer of specialty medical devices that provides innovative and lifesaving solutions for the world’s healthcare markets. The company specializes in infusion therapy, vascular access, and vital care. Its products are found in hospital, emergency, home, and specialty care environments and are used during critical and intensive care, surgery, post-operative care, and for support in managing chronic illness.
Delivering safe, high-quality software for their medical devices is imperative. For that reason, Smiths Medical builds its safety-critical medical devices with a rigorous engineering process where software testing plays a critical role for verification and validation.
Jump to Section
Watch a preview of the Smiths Medical presentation at the Embedded Software Testing & Compliance Summit 2021. Learn how they evolved their software testing to test-driven development to achieve more than 70% code coverage.
Developing medical device software is difficult due the safety and security requirements. Software verification and validation plays an important role in proving the intended functionality has been implemented and safety and security have been incorporated into the products.
Test automation is an important foundation of Smiths Medical’s testing approach. Previous attempts at adopting tools weren’t fully successful. The development team was looking for a solution to support their entire testing effort with a new approach and mindset of test-driven development (TDD).
Here are some of the challenges the team faced.
Previous failure of test automation tools. The software development team tried other test automation tools in the past. They failed for various reasons. Test automation was critical to move to test-driven development. The team sought out a solution to meet their needs with an extensive evaluation process.
Finding the right fit for their needs and process. The development team pursued an extensive evaluation of commercial and open source solutions to ensure their next attempt at test automation would succeed. They needed tools to meet their technical requirements and a solution to fit within their process. The team wanted solutions with a substantial market presence and reasonable learning curve, but avoided vendor lock-in.
Transitioning the software team to new tools and TDD. Smiths Medical set a goal to move the entire software team to TDD to make testing integral to their development process and software pipeline. To achieve this, they needed more than test automation and tools. They needed a different mindset. The company was looking for a change in its development culture that would increase the quality, security, and safety of its products through better and more complete testing without impacting delivery schedules and budgets.
The extensive search for an integrated testing solution to meet Smiths Medical’s requirements included evaluations of commercial and open source options.
Searching for a Test Automation Solution
The evaluation of tools included seven commercial vendors and a selection of open source tools. Smiths Medical requirements included testing support from bottom to top of the testing pyramid:
Parasoft met these requirements and was selected as the vendor to help the team achieve their testing goals.
“One of the big areas that was a challenge in the past was the product learning curve. Tools that we had used in the past were too complicated to fit the needs of the team,” said Bill Schiller, senior principal software architect at Smiths Medical.
“Another big criterion for us is market presence. We want a partner that’s going to be staying with us for the long haul. However, the opposite side of that coin is a vendor lock-in. One of the things that we get challenged as decision makers in our organization is ‘what are the alternatives?’ Are we going to be locked into this solution forever? We felt this was less of an issue for us with Parasoft.”
Evolving to TDD
Smiths Medical recognized that they needed to go further than just adopting unit test automation. Their plan was to move the team to test-driven development where design/refactoring and testing are tightly interwoven. Tests are written as a description of the expected unit functionality and code is written and factored to make sure tests pass.
Although the move to TDD can incur some upfront costs, there are significant benefits downstream in terms of lower defect rates, including:
A fast feedback loop for developers.
Less time spent debugging.
Building “solid” code with clean interfaces.
An important part of making the move to TDD was test automation and tools that support this process. Parasoft C/C++test helps make tests more valuable in terms of their relationship and traceability to requirements, code coverage, work items, builds, and other artifacts. C/C++test also facilitates unit test development with automated test creation, execution, and much simpler test maintenance.
Executing Host, Simulator, & Target Tests
Due to the nature of their products, Smiths Medical needed a testing solution that supported its ARM-based embedded development environment. They were able to generate and execute tests on their host environment, target simulator, and a real target device using Parasoft C/C++test.
A critical aspect of their solution was the ability to integrate with their development environment and CI pipeline as well as the embedded tool chain. In addition, their development process required collection of test results and metrics such as code coverage directly from the target device.
Collecting Code Coverage & Metrics
Safety-critical software development, like that done at Smiths Medical, needs to ensure thorough testing. Code that isn’t tested can’t be validated or confirmed for safety or security.
Additionally, requirements must be validated with tests and traceability is needed between requirements, code, and tests. Collection of code and test coverage (on host and target) was critical to the team’s software development process along with high-level reporting with analysis and trends.
The Solution Benefits
After considering a variety of options for tool support for their evolution to TDD, including open source solutions, Smiths Medical chose Parasoft C/C++test for many reasons.
Comprehensive support for requirements. Technical and business requirements are important when evaluating and selecting the right tool. For Smiths Medical, a low learning curve, vendor market presence, overall reduced adoption costs, and seamless integration into their CI pipeline were at the top of their list. Parasoft C/C++test checked all the boxes.
Reduced maintenance costs versus open source solutions. While strong proponents of open source, Smiths Medical realized that adopting a full open source solution meant dedicating resources for training, maintenance, and tool usage. That’s estimated to be at least 25% of the workload for a full time developer on an ongoing basis.
Tool qualification for safety-critical applications. An often overlooked criteria for software development tools is qualification and the availability of qualification kits. Tool Qualification Kits for Parasoft C/C++test automate the process of creating the supporting documentation required for tool qualification of static analysis, unit testing, and coverage requirements. These kits reduce the potential for human error and cut the amount of time it takes to perform tool qualification.
Test automation with flexible support for host and target-based testing. Host and target-based execution, analysis, and code coverage capability were critical to supporting Smiths Medical’s test environment. Due to the nature of their product development, they needed to validate on host and target systems and Parasoft C/C++test integrated into their existing test environment and CI/CD pipeline.
Centralized reporting to monitor progress and success. Measuring success is vital in any project and Smiths Medical made use of Parasoft DTP to track their progress on metrics like code complexity and code coverage. Their philosophy was to monitor the trend in the positive direction versus the value of the metric itself.
Smiths Medical has evolved their testing to test-driven development and seen numerous positive results from their acquisition and adoption of Parasoft C/C++test for their safety-critical software development, including:
Successful team training and tool integration. Changing the developer mindset was part of the goal at Smiths Medical. It required training (including product training from Parasoft) and getting over the learning curve for both tools and the new processes. The team took a phased approach. Parasoft provided initial training and consulting for the tools and new processes. Another phase of training came after the Smiths Medical development team put the tools to use within their CI pipeline and day-to-day development.
They succeeded in adopting TDD and incorporating test automation into their development process. Both the move to automation and TDD resulted in better testing efficiency and outcomes.
Improved test stability. Unit tests are code. Just like any code, they’re prone to mistakes and bugs and require maintenance. Smiths Medical was struggling with test failures that required too much debugging time to figure out if the unit under test was broken or if it was the test itself. Once they moved to TDD and automation with Parasoft C/C++test, their test stability increased dramatically. Test maintenance was easier and test failures decreased in general.
Better code coverage and decreased code complexity. Increasing code coverage was critical for Smiths Medical due to the safety aspect of their products. They needed to show due diligence in testing their software and demonstrating appropriate code coverage is part of that. To this end, they used Parasoft C/C++test to instrument the code and capture their code coverage, and Parasoft DTP to track the code coverage and code complexity metrics. In both cases, the trends have been improving over time. Code coverage is now over 70%. Code complexity decreased below 15 based on McCabe’s cyclomatic complexity measurements. In fact, it was now easier than ever to increase coverage because of automated test generation, execution, and results collection.
Open to closed defect ratio trending to zero. Smiths Medical observed that the number of tests was increasing due to efforts in obtaining better code coverage, which was directly attributed to their new processes and automation. However, instead of test failures going up in tandem with the increased tests, they were dropping. Also, the ratio of open to closed defects was trending towards zero. This meant that test case quality was improving in terms of clarity and properly set expected test results. There were more tests and more tests passed. There was also a reduction in manual work needed to fix defects or the tests themselves.
Streamlined tool qualification. Parasoft’s Qualification Kits cover all capabilities of Parasoft C/C++test to meet static analysis, unit testing, and code coverage requirements for safety-critical software at the same time. Without this, Smiths Medical would be required to individually qualify multiple tools across their toolchain, resulting in significant duplication of effort.
TAKE THE NEXT STEP
Learn how your organization can overcome medical device software development challenges using an integrated SDLC approach. Download the whitepaper.