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.

At a glance

Client
Confidential

Sector
Diagnostics

Services
Software engineering
Automation testing
Continuous integration
Regression testing
Electronics

Development team
30+

Software automated testing for a PoC diagnostic device

View of a woman developing automated point of care diagnostics software

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).

During the project, automated testing removed the need for time-consuming manual tests, streamlining feature implementation and verification activities. CI ensured cohesion between developers thereby reducing the chances of code duplication or bugs.

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, Head of Electronics and Software Group
View of the software automated testing for a point of care diagnostics device

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.

View of racks where software automated testing of a PoC diagnostics device is

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.

View of the team working together to develop medical devices

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, Head of Electronics and Software Group

Do you wonder what we could do for you?

let’s chat