Software automated testing for a PoC diagnostic device

Challenge

To support the development and verification of a Point-of-Care (PoC) device, with an extensive code base, while maintaining software quality and reliability. The PoC, which in addition to the assay measurements, included a complex graphical user interface and cloud-connectivity for electronic medical records.

Approach

We followed an Agile software development life cycle using continuous integration and automated testing to maintain a high-quality code base throughout the project. This test infrastructure was crucial in subsequent software feature releases allowing efficient and comprehensive testing during continued development.

Outcome

Our approach greatly reduced the time required to verify software releases and played an important role in achieving CE marking of the device within strict commercial timescales.

Do you need help with your device’s software?

Let’s chat

Project background

PoC diagnostic device

Continuous Integration (CI) is a software development approach where multiple developers regularly merge their individual code changes into a shared code base. Before integration into the main code base, multiple checks are performed and automated tests are run to maintain code precision and quality.

As new features are implemented into the code base, new scripted test cases are written alongside. This builds up a suite of automated tests which can be run every time new code is introduced ensuring new and existing features still function as expected (regression testing).

More

Continuous integration and automated testing

The construction of the automated test suite required close collaboration between hardware and software engineers to create a seamless approach to integrating new code into the main code base.

Stathis Louridas, Director of Systems, Team Consulting

To facilitate our CI approach we used Jenkins, an open source automation server, that allowed us to efficiently build, test and integrate developer’s code.

Our developers would submit their code via a pull request in GitHub, which in turn would trigger the Jenkins master server to queue the code changes into a build-pipeline.

As part of the build pipeline, the code went through static analysis, unit testing and testing on an instrumented version of the product hardware. This process along with scripted test cases simulated the device operation and measured the corresponding performance. Multiple instrumented hardware platforms were constructed to optimise the pipeline execution speed and facilitate a growing team of software developers.

Automated testing benefits to CE marking

Compliance with medical software standards is crucial in obtaining CE marking. Generating an automated test suite throughout development, reduced the time required to perform regression testing, an essential part of demonstrating compliance to IEC 62304 for software classes B and C.

In addition to reducing timescales, automated testing allowed us to increase the effectiveness and coverage of testing. Using an Agile approach to feature implementation provided faster code releases and increased flexibility.

Software automated testing for a PoC diagnostic device

Continuous integration and automated testing ensured that the client’s evolving requirements and strict commercial timescales could be met efficiently whilst maintaining software quality.

Stathis Louridas, Director of Systems, Team Consulting

Wonder how we could help?

Let’s start working together on your next challenge.