Escolar Documentos
Profissional Documentos
Cultura Documentos
Inhalt
Allgemeines Requirementanalyse und Test Testplanung und Testspezifikation Statische Prfung Dynamischer Test Testauswertung Testkosten
Allgemeines
Allgemeines
Eingaben
ausfhren
messen
Ausgaben
vergleichen
Sollwerte
Eingaben
ausfhren
messen
Ausgaben
vergleichen
Sollwerte
Qualittsmerkmal
Funktionalitt Zuverlssigkeit Benutzbarkeit Effizienz nderbarkeit bertragbarkeit
Qualitts-Teilmerkmal
Angemessenheit, Richtigkeit, Interoperabilitt, Ordnungsmigkeit, Sicherheit Reife, Fehlertoleranz, Wiederherstellbarkeit Verstndlichkeit, Erlernbarkeit, Bedienbarkeit Zeitverhalten, Verbrauchsverhalten Analysierbarkeit, Modifizierbarkeit, Stabilitt, Prfbarkeit Anpassbarkeit, Installierbarkeit, Konformitt, Austauschbarkeit
Was halten Sie von dem Versuch, einen Formel 1 Rennwagen zum Containertransport als 3-Liter Auto zu bauen?
Was halten Sie von dem Versuch, eine sehr speichereffiziente Software mit sehr hoher Zuverlssigkeit und sehr guter Anpassbarkeit mit grafischer, konfigurierbarer Bedienoberflche zu realisieren?
Was halten Sie von dem Versuch, einen Formel 1 Rennwagen zum Containertransport als 3-Liter Auto zu bauen?
Was halten Sie von dem Versuch, eine sehr speichereffiziente Software mit sehr hoher Zuverlssigkeit und sehr guter Anpassbarkeit mit grafischer, konfigurierbarer Bedienoberflche zu realisieren?
Qualittsmerkmal
Funktionalitt Zuverlssigkeit Benutzbarkeit Effizienz nderbarkeit
Qualitts-Teilmerkmal
Angemessenheit, Richtigkeit, Interoperabilitt, Ordnungsmigkeit, Sicherheit Reife, Fehlertoleranz, Wiederherstellbarkeit Verstndlichkeit, Erlernbarkeit, Bedienbarkeit Analysierbarkeit, Modifizierbarkeit, Stabilitt, Prfbarkeit Zeitverhalten, Verbrauchsverhalten
bertragbarkeit
al im ax M
6 us a 4
Softwarespezifikation Analyse
Design
Implementieren
Test
Qualittsmerkmale
Softwarespezifikation
Analyse
Design
Qualittsmerkmale
Qualittsmerkmale
Testspezifikation Testplan
Design Unittest
Implementieren
Komponententest
Testziele
Systemtest Testende-Kriterium
Anforderungsanalyse
Abnahmetest
Analyse
Systemtest
Design Implementierung
Komponententest/Integrationstest Unit-Test
Das V-Modell dient als Referenzmodell fr das Testen. Heute wird vor allem fr Realtime-Systeme kein reines V-Modell verwendet. Realtime-Systeme bentigen meist Optimierungsphasen. Somit wird das V n-mal durchlaufen. Das heit, SWEntwicklung wird heute erfolgreich iterativ in Inkrementen betrieben. Fr die Entwicklung einer Teststrategie ist das V-Modell auch heute noch voll gltig. Jeder Phase der Entwicklung wird eine Phase des Test gegenbergestellt. Auf der linken Seite des V bewegt sich der SW-Entwickler von oben nach unten. Auf der rechten Seite bewegt sich der Tester von unten nach oben.
Anforderungsanalyst
Softwarespezifikation
SW-Entwickler
Tester
Analyse
Analyse
Testspezifikation Testplan
Design Unittest
Implementieren
Komponententest
Testziele
Systemtest Test-Endekriterium
Personen bernehmen Rollen in einem Entwicklungsprozess. An eine Rolle sind Aufgaben gebunden. Eine Person kann mehrere Rollen in einem Projekt bernehmen. Rollen knnen einander ausschlieen. (Optimal wre SW-Entwickler und Tester sind verschiedene Personen)
Analysiert die Aufgabe (Lastenheft) und Anforderungsanalyst erstellt daraus eine Anforderungsspezifikation. Entwickelt aus der Anforderungsspezifikation eine Architektur, ein Designmodell und schreibt den Code.
SW-Entwickler
Tester
Entwickelt aus der Anforderungsspezifikation Testflle, bestimmt die vorzunehmenden Prfungen, fhrt, dokumentiert und wertet die Tests aus.
Schlagworte
Wertigkeit
(first party)
Ttigkeiten prfen evaluieren testen analysieren validieren verifizieren berprfen zertifizieren nachweisen
test test
assess
Prfen Technischer Vorgang, der aus dem Bestimmen eines oder mehrerer Merkmale eines bestimmten Erzeugnisses, Verfahrens oder einer Dienstleistung besteht und gem einer vorgeschriebenen Verfahrensweise durchzufhren ist. (EN 45 020 : 1993, 12.1). Evaluieren Analysieren und bewerten eines Sachverhalts. Testen Ein Programm wird ausgefhrt, um Fehler zu finden. Analysieren Verstehen und Erfassen der Sachverhalte einer Aufgabenstellung, sowie die Entscheidung ber die Durchfhrbarkeit und die Erfolgsaussichten eines knftigen Projektes. Validieren Tut das System das Richtige? Ein Fachmann/frau prft die Spezifikation oder das gesamte System Verifizieren Tut das System das richtig? Prfen gegen die Spezifikation. berprfen Prfen der Prfung. Wurde der Test richtig durchgefhrt? Zertifizieren Besttigung der Einhaltung bestimmter Verfahren durch einen unabhngigen Dritten. Nachweisen Beweisen eines Sachverhaltes (z.B. Programm erfllt die Anforderungen).
Die Validation untersucht die Frage: Wird das richtige Haus gebaut?
Die Verifikation untersucht die Frage: Wird das Haus richtig gebaut?
Mndliche Requirements
mssen fr den Test analysiert werden erfordern eine ausfhrlichere Testspezifikation!
Anforderungsanalyse
Eingaben
System
Ausgaben
Testvektoren
Testablufe
Testflle
MicroConsult - MicroElectronics Consulting & Training GmbH
Sollwerte
Vorgaben
Testflle
MicroConsult - MicroElectronics Consulting & Training GmbH
Prfungen
n n de te vo rden! oll we ns s stpla hrieben Te rsc des te opie nen un K ckte Perso ru ged hen Eine twortlic n vera
Teststrategie
Die Teststrategie legt die Konzepte zur Findung aussagekrftiger Testflle fest und schrnkt die Menge der Testflle ein. Entwicklung der Strategie anhand der Qualittsmerkmale der Komponenten der Risiken
Frh mit den Tests im Entwicklungsprozess beginnen, um Fehler so frh wie mglich zu beseitigen.
Zuverlssigkeit 30%
Benutzbarkeit 10%
Effizienz 10% ++ +
bertragbarkeit 10%
+ ++ ++ + ++
Zuverlssigkeit 30% +
Benutzbarkeit 10%
Effizienz 10% ++
bertragbarkeit 10%
++ ++
+ +
Qualittsmerkmale lassen sich den Projektphasen zuordnen. Diese mssen aus der Anforderungsspezifikation entnommen oder eingefordert werden. Ein Gewichtung ist unumgnglich. Hier ist der Tester gefordert. Den Projektphasen kann nun das Qualittsmerkmal zugeordnet werden.
Zuverlssigkeit 30%
Benutzbarkeit 10%
Effizienz
bertragbarkeit 10%
s litt Qua ++
++
++
++
Zuverlssigkeit 30% +
Benutzbarkeit
bertragbarkeit 10%
+ +
Risikobasierte Teststrategie
Minimierung des Verlustes Vermeiden von Risiken Vermeiden von Gefahren Prventive Risikovermeidung Proaktives Risikomanagement
Risikobasiertes Testen
Quelle: nach Testing Embedded Software Broekmann/Notenboom S. 82
Testende-Kriterien
err eic ht
ht eic e rr
Zie l
ar hb
Testende
Testabbruch
Verifizieren/Testen
Analyse
Systemtest
Testspezifikation
Design Implementierung
Finden maskierter Fehler schwierig Qualitt der Komponenten orientiert sich an den Features den Projektes Lokalisierung der Fehler ist fr den Entwickler schwierig
Validieren
Anforderungsanalyse Abnahmetest
Testspezifikation
Verifizieren/Testen
Analyse
Systemtest
Design Implementierung
Einfache Lokalisierung der Fehler durch den Entwickler Module werden einzeln getestet
Hherer Dokumentationsaufwand
Statische Prfung
Statische Prfung
Statische Prfung
Statische Prfungen
Statische Prfungen sind Verfahren, die eine Bewertung des Codes vornehmen, ohne ihn auszufhren. Unterschieden werden manuelle Prfungen, wie Fagan Inspektion und Walkthroughs, sowie automatische Prfungen, wie z.B. Compiler, LINT.
Software-Teilprodukte
--- SW Anforderungen --Software Anforderungsspezifikation Software Validierungsplan --- SW Architektur --Software Architekturbeschreibung Testspezifikation Software-ArchitekturIntegration Bedienanleitung Entwicklungswerkzeuge Codier Richtlinie --- SW System --Software Systembeschreibung Testspezifikation Software-SystemIntegration --- SW Module --Software Modul Entwurfs Spezifikation Software Modul Test Spezifikation --- Coding --Form des Source Codes (hndisch, automatisch) Software Modul Test Report Software Code Review Report
--- SW Integration --Software Modul Integration Test Report Software System Integration Test Report Software Architektur Integration Test Report --- SW Operation and Maintenance --Benutzerhandbuch Bedienanleitung Wartungsanleitung --- SW Validation --Validierungsreport --- SW Modification --SW Modifikations-Anleitung SW Modifikations-Anforderung SW Modifikations-Auswirkungsanalyse SW Modifikations-Bericht --- Phasenbergreifende --SW Qualittsplan SW Verifikationsplan Verifikationsbericht Plan zum Nachweis der Qualitt Bericht ber den Qualittsnachweis
Software-Teilprodukte
--- SW Anforderungen --Software Anforderungsspezifikation Software Validierungsplan --- SW Architektur --Software Architekturbeschreibung Testspezifikation Software-ArchitekturIntegration Bedienanleitung Entwicklungswerkzeuge Codier Richtlinie --- SW System --Software Systembeschreibung Testspezifikation Software-SystemIntegration --- SW Module --Software Modul Entwurfs Spezifikation Software Modul Test Spezifikation --- Coding --Form des Source Codes (hndisch, automatisch) Software Modul Test Report Software Code Review Report
Testbar
--- SW Integration --Software Modul Integration Test Report Software System Integration Test Report Software Architektur Integration Test Report --- SW Operation and Maintenance --Benutzerhandbuch Bedienanleitung Wartungsanleitung --- SW Validation --Validierungsreport --- SW Modification --SW Modifikations-Anleitung SW Modifikations-Anforderung SW Modifikations-Auswirkungsanalyse SW Modifikations-Bericht --- Phasenbergreifende --SW Qualittsplan SW Verifikationsplan Verifikationsbericht Plan zum Nachweis der Qualitt Bericht ber den Qualittsnachweis
Software-Teilprodukte
--- SW Anforderungen --Software Anforderungsspezifikation Software Validierungsplan --- SW Architektur --Software Architekturbeschreibung Testspezifikation Software-ArchitekturIntegration Bedienanleitung Entwicklungswerkzeuge Codier Richtlinie --- SW System --Software Systembeschreibung Testspezifikation Software-SystemIntegration --- SW Module --Software Modul Entwurfs Spezifikation Software Modul Test Spezifikation --- Coding --Form des Source Codes (hndisch, automatisch) Software Modul Test Report Software Code Review Report
Inspizierbar
--- SW Integration --Software Modul Integration Test Report Software System Integration Test Report Software Architektur Integration Test Report --- SW Operation and Maintenance --Benutzerhandbuch Bedienanleitung Wartungsanleitung --- SW Validation --Validierungsreport --- SW Modification --SW Modifikations-Anleitung SW Modifikations-Anforderung SW Modifikations-Auswirkungsanalyse SW Modifikations-Bericht --- Phasenbergreifende --SW Qualittsplan SW Verifikationsplan Verifikationsbericht Plan zum Nachweis der Qualitt Bericht ber den Qualittsnachweis
Statische Prfungen
Inspektionen
Finden von 60% bis 90% aller Fehler in der Spezifikation und im Code allein durch Inspektionen. Reduzierung des Problems der "Unersetzbarkeit" von Entwicklern (Verteilung des Wissens auf mehrere Mitarbeiter). Erhhung der Qualitt in einer frhen Phase. Verringerung des Test- und Korrekturaufwandes ("Gesundtesten" ist nicht ntig). Inspektionen sind auf jede Art von Dokument anwendbar.
Dynamische Tests
Dynamische Tests
Dynamische Tests
Dynamische Tests
Der zu testende Code wird ausgefhrt. Dynamische Tests werden unter Bercksichtigung der inneren Struktur (White-Box-Test) bis hin zur Betrachtung als geschlossenes System durchgefhrt (Black-Box-Test).
Dynamische Tests
White-Box-Test
Grundlage ist die innere Struktur des Codes.
Black-Box-Test
Erfolgt ohne Kenntnis der inneren Struktur (Schnittstellentest).
Gray-Box-Test
Kombiniert die Methodik von Black-Box- und White-Box-Tests.
Anweisungsberdeckungstest/ C0-Test
1
ja
a || b || c d
nein
2
ja
3
nein
4 e
ja nein nein
g 7 8 9
Tests und Fehleridentifizierungsquote Kontrollflussorientiert Anweisungsberdeckungstest oder C0-Test (18%) Jeder Befehl im Programm muss mindestens einmal ausgefhrt werden. Zweigberdeckungstest (34%) Alle Entscheidungen oder Sprnge werden erfasst (Entwurf entsprechend vieler Testflle ist ntig). Er enthlt den Anweisungsberdeckungstest vollstndig Bedingungsberdeckungstest (ca. 50%) Test aufgrund der Bedingungen von Schleifen und logischen Ausdrcken. Alle Bedingungen, die zum Durchlaufen eines Zweigs fhren knnen, werden getestet. Pfadberdeckungstest (>60%) Ziel ist die Ausfhrung aller unterschiedlichen Pfade des Programms. Datenflussorientiert (Statistiken aus Girgis, Woodware `86) all defs: (24%, keine Kontrollflussfehler) Jede Definition muss in einer Berechnung oder Bedingung benutzt werden all p-uses: (34%, identifiziert sicher Kontrollflussfehler) Jede Kombination aus Variablendefinition und deren prdikative Nutzung mu getestet werden Beinhaltet Zweigberdeckung all c-uses: (48%, identifiziert Berechnungsfehler) Jede Kombination aus Variablendefinition und deren berechnende Benutzung muss getestet werden
Zweigberdeckungstest / C1-Test
1
ja
a || b || c d
nein
2
ja
3
nein
4 e
ja nein nein
g 7 8 9
Verschiedene Kombinationen
ja
1 a || b || c d
nein
2
ja
3
nein
4 e
ja nein nein
g 7 8 9
White-Box-Tests - Testabdeckung
X X
Kontrollflussorientierte Tests betrachten nur den Programmablauf. Daten werden nur indirekt und sehr begrenzt betrachtet. Vollstndiger Test -> unendlich viele Testflle. Datenflussorientierte Tests betrachten die Initialisierung und Nutzung von Daten. Es wird aber nicht auf verschiedene Werte dieser Daten eingegangen. Ein vollstndiger -> unendlich viele Testflle.
Funktion mit einem gltigen Definitionsbereich von 1..12: int daysOfMonth(int month); Test mit Zufallszahlen z.B.: -23, 13, 356 Problem: Kein Wert liegt im gltigen Bereich.
Funktionale quivalenzklassenbildung
Werte z.B.: -4, 8, 245
ungltige Werte
gltige Werte
ungltige Werte
-4
245
-2
10
12
14
12
13
Grenzwertanalyse
Werte: 0, 1, 12, 13
Klassifikationsbaum-Methode
Grafische Ermittlung von Grenz- und quivalenzklassen Ausprgung als konkrete Ein-/Ausgaben oder Sequenzen
Klasse Wert als Konstante
Testfall
Testtreiber
Testtreiber
globale Daten
Parametrierungen
Aufgaben des Testtreibers Vorbedingungen fr den Ablauf des Tests schaffen Eingangsumgebung globale Variablen statische Variablen in der Testfunktion (Code muss instrumentiert werden) Funktionsparameter Zu testende Funktion ausfhren Nachbedingungen erfassen Ausgangsumgebung globale Variablen statische Variablen in der Testfunktion Funktionsparameter (Pointer, ...) Rckgabewert der Funktion Ausgaben fr die Nachbereitung speichern
Testtreiber
int g_retMax; void main() { int a= 10; int b= 20; int Result; g_retMax= 5;
Teststub
int g_retMax; int max(int a, int b) { return g_retMax; }
Regressionstest
Getestete SW Regressionstest
nderung
Ungetestete SW
Nach einer Codenderung darf keine Regression auftreten, d.h., die genderten Anteile mssen weiterhin der Spezifikation gengen. Dies wird durch Regressionstests geprft. nderungen an existierendem Code knnen
korrektiv (Spezifikation verletzt), inkrementell (Spezifikation erweitert), adaptiv (Spezifikation gendert) oder optimierend (Spezifikation unverndert) sein.
Testauswertung
Testauswertung
Software-Teilprodukte
--- SW Anforderungen --Software Anforderungsspezifikation Software Validierungsplan --- SW Architektur --Software Architekturbeschreibung Testspezifikation Software-ArchitekturIntegration Bedienanleitung Entwicklungswerkzeuge Codier Richtlinie --- SW System --Software Systembeschreibung Testspezifikation Software-SystemIntegration --- SW Module --Software Modul Entwurfs Spezifikation Software Modul Test Spezifikation --- Coding --Form des Source Codes (hndisch, automatisch) Software Modul Test Report Software Code Review Report
Reports
--- SW Integration --Software Modul Integration Test Report Software System Integration Test Report Software Architektur Integration Test Report --- SW Operation and Maintenance --Benutzerhandbuch Bedienanleitung Wartungsanleitung --- SW Validation --Validierungsreport --- SW Modification --SW Modifikations-Anleitung SW Modifikations-Anforderung SW Modifikations-Auswirkungsanalyse SW Modifikations-Bericht --- Phasenbergreifende --SW Qualittsplan SW Verifikationsplan Verifikationsbericht Plan zum Nachweis der Qualitt Bericht ber den Qualittsnachweis
Testauswertung
Testergebnisse mssen dokumentiert werden! Fehler mssen dokumentiert werden, um das Wissen um sie verfgbar zu machen und sie zu beheben, nicht um Schuldzuweisungen machen zu knnen.
Testprotokoll Testprotokoll z.B. IEEE 829 Testprotokoll je Test z.B. IEEE 829 z.B. IEEE 829
Testkosten
Testkosten
Testdurchfhrung Testdokumentation
Fehloptimierung
Testdurchfhrung Testdokumentation
Fehloptimierung
Testdurchfhrung Testdokumentation
Gezielte Optimierung
Testdurchfhrung Testdokumentation
Gezielte Optimierung
Testdurchfhrung Testdokumentation
Testdurchfhrung Testdokumentation
Zusammenfassung
Die Prfung der Software ist ein geplanter Vorgang! Sie orientiert sich an klar definierten Qualittsmerkmalen! Sie setzt klare Anforderungen (Requirements) voraus! Prfen ist allgemein! Nur Ausfhrbares kann getestet werden! Entwicklung und Test gehen Hand in Hand (Design for Test)! Der richtige Mix aus statischer Prfung und dynamischen Tests fhrt zum Erfolg!