Software testing is part of software verification alongside code reviews. Laws and standards place requirements on the type and scope of software testing.

Content

This page provides a quick overview of software testing and links to articles for further information.

  1. Software testing: the basics
  2. Regulatory requirements
  3. Seven practical tips
  4. Support

1. Software testing: the basics

a) Software testing as part of software quality assurance

The objective of testing software is to find errors in the software. Software testing is, therefore, part of analytical quality assurance (see Fig. 1).

Das Software-Testing zählt zur Software-Qualitätssicherung

Fig. 1: Software tests are part of analytical quality assurance

Caution!

It is neither possible nor permissible to achieve software quality with software tests alone.

Constructive quality assurance includes

  1. processes, e.g. development processes
  2. methods and procedures, e.g., requirements engineering, modeling with UML, and deriving test cases with equivalence classes
  3. tools such as ALM tools, development environments, modeling, and testing tools

At the meta-level, there are laws and standards as well as training and further training programs that relate to the three aspects mentioned above, among others.

Analytical quality assurance attempts to find defects in various test objects using various processes, methods, and tools. A distinction is made between:

  • Audits: The aim here is to find errors in processes.
  • Reviews: search for errors in documents such as specifications or code (code reviews)
  • (Software) tests: search for errors in test objects, for example, in the form of unit tests, integration tests, and software system tests

b) Taxonomy of software testing methods

Software tests can be sorted according to many criteria (see Fig. 2).

Taxonomie der Methoden zum Software-Testing

Fig. 2: Taxonomy of methods for software testing

IEC 62304 divides its requirements according to the life-cycle phases (see Fig. 3).

2. Regulatory requirements

a) Europe

MDR, IVDR

The MDR and IVDR require state-of-the-art software life-cycle processes (see MDR, Annex I, Section 17.2) and documentation of the “verification and validation of the software” (see Annex II, Section 6.1.b).

IEC 62304

The harmonized standard IEC 62304 for these EU regulations requires software testing in the following chapters:

During software release (Chapter 5.8), manufacturers must review whether the software tests have been carried out as described in the software development plan.

V-Modell für Software, dem die Kapitel der IEC 62304 zugeordnet sind

Fig. 3: In Chapters 5.5 to 5.7, IEC 62304 requires verification of the software using software tests, among other things.

The standard allows exceptions for legacy software.

IEC 82304

Software validation does not fall within the scope of IEC 62304 but rather that of IEC 82304-1, although its requirements are very unspecific.

Essential methods for validating software are clinical evaluation and usability validation, typically as a summative evaluation or a usability test.

Caution!

The term software validation is understood differently in different contexts. For example, Computerized Systems Validation does not only include validation at the end of development, as shown in Fig. 3.

This validation page helps to avoid misunderstandings.

b) FDA

The FDA acknowledges IEC 62304 as a “recognized standard”. However, the authority formulates the most relevant requirements for the software architecture in its guideline General Principles of Software Validation.

The guideline Content of the premarket submission specifies which documents manufacturers must submit. In it, the FDA also sets out requirements for software testing.

c) Other

Manufacturers that comply with FDA and EU requirements for software testing are also likely to comply with requirements in other markets largely.

Sometimes, it helps to consider other standards. These include:

  • IEC 62443-4-1 and ISO/IEC 15408 on IT security
  • ISO 299119-6 on software testing in agile projects
  • ISO 29119-11 for software testing of AI-based applications

3. Seven tips for software testing

Tip 1: Also test the units during unit tests

Developers understand unit testing differently from auditors: For the former, unit tests are the tests of granular units, e.g., methods and classes. In contrast, from a regulatory perspective, unit tests must test the software units that can represent larger components.

Read more in this article.

Tip 2: Choose the right methods

Depending on the test objective, manufacturers should choose the appropriate methods. A fuzz test has a different objective than a penetration test.

Benefit from black-box test procedures. This allows you to systematically determine the test cases with the highest probability of finding errors, which is not only applicable to software system tests.

Tip 3: Quantify the test coverage

Tests can only find errors if the test code runs through the software to be tested. Tools can be used to determine the code coverage automatically. Manufacturers should define this metric for themselves.

Tip 4: Use all tests as regression tests

Each additional test increases the probability of errors being found and eliminated in time. This is why it is a good idea to repeat all tests as regression tests after changes have been made. Not only during development but also during software maintenance.

Tip 5: Do not only test during development

If manufacturers allow users to customize the software (for example, by parameterizing the software or writing their own scripts), then these customizations should also be reviewed through software tests.

Tip 6: Be careful with beta tests

Beta tests aim to make a product (in this case, software) available to a selected group of users before the official release to obtain feedback on the device.

Medical device manufacturers must be aware that such a beta test may already constitute illegal placing the device on the market.

Tip 7: Ensure competence

Software testing is a competence that manufacturers must define and guarantee. ISO 13485, among others, obliges them to do this specifically for each development project.

4. Support

Benefit from the support of the Johner Institute:

  • Do you still have questions about software architecture or regulatory requirements? Then, take advantage of the free micro-consulting.
  • In the compact seminar on medical software, you will acquire the legally required competencies. You will learn about the IEC 62304 and FDA requirements for software development and how to comply with them.
  • With our Medical Device University, you will learn step-by-step how to create a lean and IEC 62304-compliant “software file” using video training. A complete set of templates takes a lot of work off your hands.

Contact us right away so that we can discuss the next steps. This will ensure that the “approval” is a success and that your software or device is quickly launched on the market.


Unit testing and IEC 62304

In software development, unit testing refers to the testing of software units. However, there is no common understanding of This article provides clarity. 1. Test objects: What is tested during unit testing a) Usual understanding of software units Unit testing involves testing delimited parts of a software system. Depending on the size of these parts,…

Details

Verification and validation: Differences and definitions

What is the difference between verification and validation, and how are these terms defined? Even standards and regulations use the terms incorrectly or misleadingly. This article 1. Verification a) Definition This definition does not explain what type of “requirements” need to be confirmed by verification. Limiting these requirements to product or component requirements is recommended to avoid…

Details

Software maintenance: How to avoid typical audit pitfalls

Software maintenance is the phase in which software is further developed, e.g., with the objective of According to the FDA, 79% of all bugs occur during software maintenance. Accordingly, some regulations address this topic. Update: Addition to software maintenance during development Regulatory requirements for software maintenance Requirements of the Medical Device Regulation MDR (2017/745) The…

Details

Develop software components compliant with IEC 62304 and FDA

Medical software manufacturers must meet the legal requirements for software components in order to “approve” their devices. This article presents these requirements and gives seven tips on how to fulfill them quickly and easily. 1. What software components / items are There are different definitions of “software component”, also referred to as software items as…

Details

Computerized Systems Validation CSV

We frequently get asked, “Do you also offer Computerized Systems Validation?” One of the reasons for the interest is certainly: Authorities and notified bodies increasingly address the Computerized Systems Validation (CSV) in audits. This article introduces regulatory requirements regarding “Computerized Systems Validation” and provides guidance on how you can best meet these requirements. Computerized Systems…

Details