Seminare der PW-Akademie

Systemtest

Was ist ein Systemtest?

Nach Angabe des International Software Testing Qualifications Board (ISTQB®, 2019) wird ein Systemtest durchgeführt, um sicherzustellen, ob spezifizierte Anforderungen an ein integriertes System erfüllt sind. Ein Systemtest ist von einem Integrationstest (sowohl ein Komponentenintegrationstest als auch Systemintegrationstest) als auch von einem Systemabnahmetest (des Kunden) zu unterscheiden. Integrationstests werden durchgeführt, mit dem Ziel, Fehlerzustände in den Schnittstellen und im Zusammenspiel zwischen integrierten Komponenten oder Systemen aufzudecken. Beim Abnahmetest verfolgt der Kunde das Ziel, die Umsetzung seiner Anforderungen gemäß seinen eigenen Kriterien zu bestätigen.

In Abbildung 1 ist die Verortung des Systemtests im V-Modell zu sehen. Gemäß der Abbildung ist zu erkennen, dass eine bidirektionale Rückverfolgbarkeit zwischen Systemanforderungen und Systemtest sicherzustellen ist. Eine bidirektionale Rückverfolgbarkeit unterstützt die Abdeckungs-, Konsistenz- und Auswirkungsanalyse (Verband der Automobilindustrie e. V. (VDA), 2017). Die Rückverfolgbarkeit kann mithilfe von Hyperlinks wie in DOORS, über Rückverfolgbarkeitsmatrizen oder über andere handhabbare Mittel, die von Ihrer Werkzeuglandschaft unterstützt werden, hergestellt werden (Vanamali, 2022).

Abbildung 1: Bidirektionale Rückverfolgbarkeit und Einordnung Systemtest im V-Modell 

Nachdem ein integriertes System erstellt ist und nach Fehlern in den Schnittstellen geprüft ist, wird das System nach Anforderungen geprüft. Sobald diese Anforderungen erfolgreich geprüft worden sind, werden die Anforderungen zur Auslieferung bereitgestellt.

 

Wie funktioniert ein Systemtest?

Gemäß ASPICE hat ein Systemtest ein konkretes Vorgehen – der sogenannte Systemqualifizierungstestprozess (Verband der Automobilindustrie e. V. (VDA), 2017). 

Wir als Prozesswerk empfehlen, die ersten Aktivitäten eines Systemtests früh im Entwicklungsstadium des Systems durchgeführt zu haben. Dies hilft, frühe Fehlerpotenziale zu entdecken und adäquat gegenzusteuern. In diesem Sinn ist es empfohlen, vor einem Projekt oder bei der Identifizierung der Kundenanforderungen eine Strategie zu konzeptionieren. Auf die gleiche Weise kann die Entwicklung einer Teststrategie beginnen, sobald die Systemanforderungen vorliegen. 

Nach Automotive SPICE® besteht ein Systemtest aus den folgenden Schritten (Verband der Automobilindustrie e. V. (VDA), 2017)

1. Die Entwicklung einer Strategie für Systemqualifikationstests einschließlich einer Strategie für Regressionstests. Dieser Schritt beinhaltet die Entwicklung einer Strategie für den Systemqualifikationstest unter Einbeziehung des Projektplans und des Freigabeplans. Dies schließt eine Regressionsteststrategie für das erneute Testen des integrierten Systems ein, wenn ein Systemelement geändert wird.

2. Die Entwicklung einer Spezifikation für den Systemqualifikationstest. Dazu gehören auch Testfälle auf der Grundlage der Verifikationskriterien gemäß der Systemqualifizierungsstrategie. Die Testspezifikation muss geeignet sein, den Nachweis der Übereinstimmung des integrierten Systems mit den Systemanforderungen zu belegen.

3. Die Auswahl von Testfällen aus der Systemqualifikationstestspezifikation. Diese muss eine ausreichende Abdeckung gewährleisten, entsprechend der Systemqualifikationsteststrategie und dem Freigabeplan.

4. Test des integrierten Systems. Das integrierte System wird anhand der ausgewählten Testfälle getestet. Die Ergebnisse und Protokolle der Systemqualifizierungstests werden aufgezeichnet.

5. Schaffung einer bidirektionalen Rückverfolgbarkeit zwischen den Systemanforderungen und den in der Systemqualifikationstestspezifikation enthaltenen Testfälle. Zusätzlich soll eine bidirektionale Rückverfolgbarkeit zwischen den in der Systemqualifikationstestspezifikation enthaltenen Testfälle und den Ergebnissen der Systemqualifikationstests hergestellt werden.

6. Sicherstellung der Konsistenz zwischen den Systemanforderungen und den Testfällen. Die Konsistenz kann durch Prüfprotokolle nachgewiesen werden.

7. Ergebnisse der Systemqualifizierungstests zusammenfassen und allen betroffenen Parteien mitteilen. Die Ergebnisse werden an alle notwendigen Stakeholder versendet.

 

Welche Ziele können mit einem Systemtest erreicht werden?

Wie von Sattler (2015) geschrieben, wird in einem Systemtest das System gegen die Spezifikation der Systemanforderung und -architektur getestet. Mit einem Systemtest werden Fehler entdeckt, bevor sie zu körperlichen und/oder wirtschaftlichen Schäden führen. Durch einen erfolgreich durchlaufenen Systemtest wird das Vertrauen in das System aufgebaut. Außerdem wird mit einem Systemtest ein Nachweis für die Funktionsfähigkeit des Systems für bestimmte Randbedingungen geschaffen (Sattler, 2015).

Systemtests konzentrieren sich auf das Verhalten und die Fähigkeiten des Systems oder Produkts. Dies geschieht oft unter Berücksichtigung der End-to-End-Aufgaben, die das System leisten kann, und der nicht-funktionalen Verhaltensweisen, die bei der Verarbeitung dieser Aufgaben zu Tage treten. Ziele des Systemtests sind u.a.: 

  • Risikoreduktion: Durch Tests lassen sich die Risiken für eine Produktbereitstellung minimieren. (Software Quality Lab, 2021) 
  • Verifizierung, ob die funktionalen und nicht-funktionalen Eigenschaften des Systems dem Entwurf und den Spezifikationen entsprechen 
  • Validierung, dass das System vollständig ist und wie erwartet, funktioniert
  • Vertrauen in die Qualität des Systems als Ganzes schaffen 
  • Aufdecken von Fehlerzuständen 
  • Verhindern von Fehlerzuständen an nachgelagerte Teststufen oder in die Produktion weitergeleitete, potenzielle Fehlerzustände

Für einige Systeme kann ein Ziel die Verifizierung der Datenqualität sein. Beim Komponententest und beim Integrationstest bieten in einigen Fällen automatisierte Systemregressionstests die Gewissheit, dass Änderungen nicht die bestehenden Features oder End-to-End-Fähigkeiten beeinträchtigt haben. Systemtests liefern häufig Informationen, die von Stakeholdern für Freigabeentscheidungen genutzt werden. Systemtests können auch zur Erfüllung rechtlicher oder regulatorischer Anforderungen oder Standards notwendig sein.

In welchen Bereichen finden die Systemtests ihre Anwendung?  

Systemtests werden in allen Bereichen eingesetzt, in denen Komponenten (Softwarekomponenten, Hardwarekomponenten und Mechanik) miteinander zu einem System oder zu den Grundlagen von Systems Engineering integriert sind. 

Analog zum Automotive SPICE Framework ist der Systemqualifizierungstest ein Prozessgebiet des Mechanical Engineering SPICE v1.7. – MSE.4 ME System Qualification Test (Knüvener Mackert, 2021; INTACS, 2017). Zum Beispiel können in der Raumfahrtindustrie Systemtests zwischen Raumfahrzeug, Trägerrakete und Bodensegment durchgeführt werden (European Cooperation for Space Standardization, 2002).

Bei Prozesswerk haben wir Erfahrungen mit Systemtests nicht nur in der Automobilentwicklung, sondern auch in der Medizintechnik. In der Automobilindustrie haben wir in vielen Projekten über viele Jahre hinweg viel Erfahrung im Bereich von Komponententests und Testmanagement über Verbundtests und Release Management bis hin zu Fahrzeugtests gesammelt. Außerdem bieten wir die ISTQB® Schulungen CTFL und CTFL-Automotive sowie die Schulung zu Funktionale Sicherheit nach ISO 26262 an.

 

Was sollte man noch über Systemtests wissen?

Gewöhnlich umfassen Systemtests Umwelt-, Leistungs- und Dauertests auf einer produktabhängigen Testumgebung und werden mit Testdaten durchgeführt. Gewöhnliche Testumgebungen sind Hardware-in-the-Loop, Fahrzeugtest und Klimakammern.

Es können verschiedene Prüfverfahren angewandt werden, z.B. funktionale Sicherheitsanforderungen können durch weitere Normen wie der ISO 61508 bzw. ISO 26262 näher bestimmt sein. Der Test und die Entwicklung sollen unabhängig sein. Bei der Entwicklung einer Teststrategie soll die Robustheit des Systems auch bei unterschiedlichen Lasten berücksichtigt werden. Es können sowohl zerstörende als auch zerstörungsfreie Systemtests gemacht werden.

Laut Vanamali (Vanamali, 2022) soll eine Teststrategie alle Teststufen berücksichtigen, mit dem Zweck, alle Anforderungen abzudecken sowie Redundanzen zu vermeiden. Deshalb sollte eine Teststrategie Themen abdecken, die sowohl das Prüfobjekt, die Methoden zur Ausarbeitung von Testfällen und Testdaten, den Umgang mit fehlgeschlagenen Tests, als auch die Ein- und Ausstiegskriterien und Testunterbrechungskriterien betreffen (Vanamali, 2022).

 

Referenzen

  • International Software Testing Qualifications Board (2019) Standard Glossary of Terms used in Software Testing Version 3.2. https://www.german-testing-board.info/wp-content/uploads/2019/10/ISTQB-Glossary_Testbegriffe_V3.2.4_DE.pdf
  • European Cooperation for Space Standardization. (15. Februar 2002). Von Space Engineering- Testing: https://eop-cfi.esa.int/Repo/PUBLIC/DOCUMENTATION/SYSTEM_SUPPORT_DOCS/ECSS%20Standards%20for%20Ground%20Segments/ECSS-E-10-03A%20Testing%20.pdf abgerufen
  • INTACS. (6. Juli 2017). Process Assessment Model: SPICE for Mechanical Engineering (PROPOSAL). Von https://www.flecsim.de/images/downloads/SPICE_Mechanical_Engineering_V1.4.pdf abgerufen
  • KnüvenerMackert. (2021). Von ASPICE GUIDE: https://knuevenermackert.com/wp-content/uploads/2021/03/ASPICE-Guide-KM2021-04.pdf abgerufen
  • Sattler, K. (15. 07 2015). Methodik für den Systemtest in der integralen Fahrzeugsicherheit. Magdeburg, Magdeburg, Deutschland. Abgerufen am 28. 10 2021 von https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjz_JSPje3zAhUQERQKHewJANgQFnoECCoQAQ&url=https%3A%2F%2Fd-nb.info%2F989984885%2F34&usg=AOvVaw1UNRbhBxkfCqyHBl30WuMK
  • Software Quality Lab. (2021). Sieben Grundsätze des Testens. Von https://www.german-testing-board.info/wp-content/uploads/2021/04/SoftwareQualityLab_Schulungsbeispiel042021.pdf abgerufen
  • Vanamali, B. (2022). Systemqualifikationstest – SYS.5 in Automotive SPICE. Von https://www.kuglermaag.de/automotive-spice/sys5-systemqualifizierungs-test/#downloadForm abgerufen
  • Verband der Automobilindustrie e. V. (VDA). (2017). Automotive SPICE ‚ Process Reference and Assessment Model (Bd. 1.). Frankfurt am Main: Henrich Druck + Medien. Von https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjj06aT_uzzAhUfAWMBHfTRA9gQFnoECAsQAQ&url=http%3A%2F%2Fwww.automotivespice.com%2Ffileadmin%2Fsoftware-download%2FAutomotiveSPICE_PAM_v23_DE.pdf&usg=AOvVaw27V_6IXN3YADH abgerufen

 

Auf einen Blick:

Was ist ein Systemtest?+

Nach Angabe des International Software Testing Qualifications Board wird ein Systemtest durchgeführt, um sicherzustellen, ob spezifizierte Anforderungen an ein integriertes System erfüllt sind. Ein Systemtest ist von einem Integrationstest (sowohl ein Komponentenintegrationstest als auch Systemintegrationstest) als auch von einem Systemabnahmetest (des Kunden) zu unterscheiden.

Welche Schritte beinhaltet ein Systemtest?+

  1. 1. Entwicklung einer Strategie für Systemqualifikationstests einschließlich einer Strategie für Regressionstests
  2. 2. Entwicklung einer Spezifikation für den Systemqualifikationstest
  3. 3. Auswahl von Testfällen aus der Systemqualifikationstestspezifikation
  4. 4. Test des integrierten Systems
  5. 5. Schaffung einer bidirektionalen Rückverfolgbarkeit zwischen den Systemanforderungen und den in der Systemqualifikationstestspezifikation enthaltenen Testfälle
  6. 6. Sicherstellung der Konsistenz zwischen den Systemanforderungen und den Testfällen
  7. 7. Ergebnisse der Systemqualifizierungstests zusammenfassen und allen betroffenen Parteien mitteilen

Was sind die Ziele eines Systemtest?+

Ziele des Systemtests sind u.a.:

  • Risikoreduktion: Durch Tests lassen sich die Risiken für eine Produktbereitstellung minimieren
  • Verifizierung, ob die funktionalen und nicht-funktionalen Eigenschaften des Systems dem Entwurf und den Spezifikationen entsprechen
  • Validierung, dass das System vollständig ist und wie erwartet, funktioniert
  • Vertrauen in die Qualität des Systems als Ganzes schaffen
  • Aufdecken von Fehlerzuständen
  • Verhindern von Fehlerzuständen an nachgelagerte Teststufen oder in die Produktion weitergeleitete, potenzielle Fehlerzustände

In welchen Bereichen finden Systemtests ihre Anwendung?+

Systemtests werden in allen Bereichen eingesetzt, in denen Komponenten (Softwarekomponenten, Hardwarekomponenten und Mechanik) miteinander zu einem System integriert sind.