Regulatorischer AbnahmetestBei dieser Art des Abnahmetests wird verifiziert, ob das System Gesetze, Richtlinien und Vorschriften erfüllt. In Deutschland ist beispielsweise für den Betrieb eines Fahrzeugs im öffentlichen Straßenverkehr sowohl eine Typengenehmigung (durch das Kraftfahrt-Bundesamt) als auch eine fahrzeugspezifische Straßenzulassung (durch die zuständige Kraftfahrzeug-Zulassungsbehörde) erforderlich. Diese Genehmigung erfolgt unter anderem auf Basis von Prüfungen, die z.B. unabhängige Instanzen wie TÜV oder DEKRA durchführen (z.B. Homologation10 des Bremssystems nach ECE-R13).
Vertraglicher AbnahmetestDiese Art des Abnahmetests ist häufig dort anzutreffen, wo ein Vertragspartner für die Entwicklung und Lieferung von Teilumfängen beauftragt ist. Zum vertraglichen Abnahmetest gehören Testumfänge beim Zulieferer, die vertraglich mit dem Fahrzeughersteller vereinbart sind (z.B. genau festgelegte Testfälle für die elektromagnetische Verträglichkeit). Eine Abnahme des Lieferumfangs erfolgt durch den Fahrzeughersteller erst dann, wenn auch diese vertraglich vereinbarten Tests durchgeführt und vertraglich vereinbarte Abnahmekriterien (Testendekriterien) erfüllt wurden.
2.4.2Testarten
Testarten sind Gruppen von Testaktivitäten, die auf bestimmten Testzielen basieren, mit dem Zweck, eine Komponente oder ein System auf spezifische Merkmale zu prüfen. Somit beschreiben die Testarten, wozu ein Test durchgeführt wird. Die unterschiedlichen Testziele können sein:
Bewertung funktionaler Qualitätsmerkmale durch funktionale Tests
Bewertung nicht funktionaler Qualitätsmerkmale durch nicht funktionale Tests
Bewertung struktureller Qualitätsmerkmale durch strukturelle Tests (Whitebox-Tests)
Bewertung von Änderungen durch änderungsbezogene Tests
Es ist möglich, alle diese Testarten auf allen Teststufen durchzuführen. In der Praxis bemühen sich kontextspezifische Teststrategien aber um eine möglichst effiziente Zielerreichung. So führt der Entwickler strukturelle Tests eher im Rahmen der Komponententests durch als in höheren Teststufen. Die Performanz der Bordnetz-Architektur lässt sich hingegen erst im Systemtest bewerten, da nur hier alle Steuergeräte vorhanden sind, die die Kommunikation beeinflussen.
Funktionale Tests
Die Funktion ist das, was das System tut. Sie soll Informationen verarbeiten (wie die Funktion eines Navigationssystems, eine Route zum Zielort zu berechnen) oder Aufgaben erfüllen (wie die Funktion des Antriebssystems, ein Fahrzeug zu beschleunigen). Funktionale Tests führt der Tester durch, um die Funktion einer Komponente oder eines Systems zu bewerten. Hierzu gehören auch folgende Aspekte der funktionalen Eignung nach ISO/IEC 25010 [ISO 25010]:
Der Test auf funktionale Vollständigkeit bestimmt den Grad, in dem der Funktionsumfang alle festgelegten Aufgaben und Benutzerziele abdeckt.Beispiel: Der Tempomat erfüllt 100% der funktionalen Anforderungen (Verifizierung).
Der Test auf funktionale Korrektheit bestimmt den Grad, in dem ein Produkt oder System die richtigen Ergebnisse mit der erforderlichen Präzision liefert.Beispiel: Eine Berechnung erfolgt innerhalb spezifizierter Toleranzen.
Der Test auf funktionale Angemessenheit bestimmt den Grad, in dem die Funktionen die Erfüllung bestimmter Aufgaben und Ziele erleichtert.Beispiel: Der Tempomat ist für den beabsichtigten Gebrauch geeignet (Validierung).
Funktionale Tests basieren häufig auf funktionalen Anforderungen, die natürlichsprachlich, aber auch in Form von Modellen (wie UML-Aktivitätsdiagrammen) vorliegen können. Je nach Erfahrung des Testers kann er funktionale Tests auch aus seiner Intuition und seinen Erwartungen an das Testobjekt ableiten.
Nicht funktionale Tests
Im Gegensatz zum funktionalen Test betrachtet der nicht funktionale Test, wie gut das System funktioniert. Hierzu gehört zum Beispiel, dass eine Berechnung in ausreichender Geschwindigkeit und Zuverlässigkeit erfolgt. Der nicht funktionale Test setzt somit die eigentliche Funktion voraus.
Nach ISO 9000 [ISO 9000] ist Qualität »der Grad, in dem ein Satz inhärenter Merkmale eines Objekts Anforderungen erfüllt«. Die ISO/IEC 25010 [ISO 25010] liefert hierzu ein generelles Modell für Qualitätsmerkmale von Software und Systeme. Um den Erfüllungsgrad der Softwarequalitätsmerkmale zu bewerten, gibt es die folgenden nicht funktionalen Tests:
Der Performanz-/Effizienztest bewertet Aspekte wie das zeitliche Verhalten und die Ressourcennutzung.Beispiel: Test der Verarbeitungsgeschwindigkeit und der CPU-Auslastung.
Der Kompatibilitätstest bewertet Aspekte wie Koexistenz und Interoperabilität.Beispiel: Test, ob eine neue Funktion bereits bestehende Funktionen stört bzw. mit anderen Funktionen Daten austauschen kann.
Der Benutzbarkeitstest bewertet Aspekte wie Erlernbarkeit und Barrierefreiheit.Beispiel: Bewerten, ob ausreichend Hilfeinformationen vorhanden sind und Styleguides eingehalten werden.
Der Zuverlässigkeitstest bewertet Aspekte wie die Verfügbarkeit und Robustheit.Beispiel: Lebensdauertests, die eine mehrjährige Nutzung simulieren, oder Negativtests, die das Verhalten der Funktion auf fehlerhafte Daten bewerten.
Der IT-Sicherheitstest (im Sinne von Zugriffsschutz) bewertet Aspekte wie Authentizität und Integrität.Beispiel: Test, ob eine nicht authentifizierte Software auf ein Steuergerät geladen werden kann oder ein unerlaubter Zugriff abgewiesen wird.
Der Wartbarkeitstest bewertet Aspekte wie Modularität und Analysierbarkeit.Beispiel: Bewertung der Softwarestruktur durch ein Codereview oder eine statische Codeanalyse.
Der Übertragbarkeitstest bewertet Aspekte wie Installierbarkeit und Anpassbarkeit.Beispiel: Test, ob sich eine Funktion an die Fahrzeugkonfiguration anpasst oder eine Software auch auf einen älteren Hardwarestand installierbar ist.
Neben den in der ISO/IEC 25010 [ISO 25010] aufgeführten Qualitätsmerkmalen können noch weitere produkt- oder branchenspezifische Qualitätsmerkmale existieren. Beispielsweise das Qualitätsmerkmal der funktionalen Sicherheit (Functional Safety). Auch existieren Normen und Standards, die zu einzelnen Qualitätsmerkmalen spezifische Anforderungen stellen. Beispielsweise enthält die ISO 26262 [ISO 26262:2018] Anforderungen zur funktionalen Sicherheit.
Nicht funktionale Tests basieren häufig auf nicht funktionalen Anforderungen, die meistens in natürlichsprachlicher Form vorliegen. Darüber hinaus spielt die Erfahrung der Tester eine sehr große Rolle. So entstehen viele sogenannte Prüfvorschriften und Prüfstandards auf Basis langjähriger Erfahrung der Tester.
Strukturelle Tests (Whitebox-Tests)
Strukturelle Tests (auch Whitebox-Tests genannt) basieren auf der internen Struktur bzw. der Implementierung einer Komponente bzw. eines Systems. Die Struktur kann, je nach Teststufe, der Code, die Architektur, eine Menüstruktur oder ein Workflow sein.
Im Gegensatz zum funktionalen und nicht funktionalen Test zielt der strukturelle Test nicht auf das äußere Verhalten, sondern auf strukturelle Qualitätsmerkmale wie eine vollständige Anweisungs- oder Entscheidungsüberdeckung.
Beispiel
Folgendes Beispiel macht die Notwendigkeit struktureller Tests deutlich: Sie sollen ein innovatives Bremssystem für die Serie freigeben. Ihnen liegen die Testberichte der Funktionstests