Title: Software Engineering I
1Vorlesung Software Engineering I
- Qualitätssicherung II
- Analytische QS
2Software-Qualitätssicherung (SW-QS)
Qualitätssicherung
Analytische QS
Konstruktive QS
Normen, Standards,Prozessmodelle,Projektleitung,
Software-Technik,Software-Architektur,Erfahrung
saustausch,Ausbildungsmaßnahmen...
Ergebnisse
Prozesse
Audits
Artefakte prüfen
Dokumente
Reviews,...
Software
Testen
3Fragestellung beim Testen
4Austesten?
- Ein einfaches Programm soll getestet werden, das
drei ganzzahlige Eingabewerte hat. Übrige
Randbedingungen haben keinen Einfluss auf das
Testobjekt. - Jeder Eingabewert kann bei 16 Bit Integerzahlen
216 unterschiedliche Werte annehmen. - Bei drei unabhängigen Eingabewerten ergeben sich
216 216 216 248 Kombinationen. - Jede dieser Kombinationen ist zu testen.
- Wie lange dauert es bei 100.000 Tests pro
Sekunde? - Es sind 281.474.976.710.656 TestfälleDauer ca.
90 Jahre
5Austesten?
- Ein einfaches Programm soll getestet werden,
das aus vier Verzweigungen (IF-Anweisungen) und
einer umfassenden Schleife besteht und somit
fünf mögliche Wege im Schleifenrumpf enthält. - Unter der Annahme, dass die Verzweigungen
voneinander unabhängig sind und bei einer
Beschränkung der Schleifendurchläufe auf
maximal 20, ergibt sich folgende Rechnung - 51 52 ... 518 519 520
- Wie lange dauert das Austesten bei 100.000
Tests pro Sekunde? -
- Es sind 119.209.289.550.780 TestfälleDauer ca.
38 Jahre
6Erste Übung zur Testfallanalyse
- Ein Programm ist zu testen, das 3 ganzzahlige
positive Werte einliest und als Längen eines
Dreiecks interpretiert. - Das Programm gibt eine Meldung aus, ob es sich
um ein ungleichseitiges, gleichschenkliges oder
gleichseitiges Dreieck handelt. - Welche Testfälle werden benötigt ?
- Welche Testdaten sind sinnvoll ?
7Mögliche Testfälle (1)
- Testfälle bestehen aus Testdaten und dem
Soll-Ergebnis - 1. 2,3,4 - zulässiges ungleichseitiges Dreieck
- 2. 2,2,2 - zulässiges gleichseitiges Dreieck
- 3. 2,2,1 - zulässiges gleichschenkliges Dreieck
- 4./5. 1,2,2 / 2,1,22 weitere Testfälle mit
Permutationen für gleichschenklige Dreiecke - 6. 1,0,3 - kein Dreieck, eine Seitenangabe 0
- 7./8. 0,1,3 / 1,3,0 - Permutationen
- 9. 5,-5,9 - kein Dreieck, eine Seitenangabe lt 0
- 10./11. -5,5,9 / 5,9,-5 - Permutationen
8Mögliche Testfälle (2)
- 12. 1,2,3 - kein Dreieck Summe der beiden
kürzeren Seiten 3. Seitenlänge - 13./14. 2,3,1 / 3,1,2 - Permutationen
- 15. 1,2,4 - kein Dreieck Summe der beiden
kürzeren Seiten lt 3. Seitenlänge - 16./17. 2,4,1 / 4,1,2 - Permutationen
- 18./19. 0,0,0 - kein Dreieck oder Fehlermeldung
alle Seiten 0, zusätzlich 2 Seiten 0 -
Permutationen? - 20.-22. Max_int, Max_int, Max_int - zulässiges
gleichseitiges Dreieck korrekte
Dreiecksbestimmung beim Test mit maximalen
Werten, zusätzliche Tests mit 2 oder 1 maximalem
Wert
9Mögliche Testfälle (3)
- 23.-25. 1,1,4.4567 - Fehlermeldung nicht
ganzzahlige Werte Permutationen? - zusätzlich
mit 2 oder 3 Werten - 26.-28. 1,1, - Fehlermeldung Eingabe von
Buchstaben oder Sonderzeichen Permutationen? -
zusätzlich mit 2 oder 3 Werten - 29./30. 1,2,3,4 / 2,3 - Fehlermeldung falsche
Anzahl von Werten (wenn Eingabe möglich) - 31. Max_int/2 1, Max_int/2 1, Max_int/2 10
- zulässiges gleichschenkliges Dreieck (Überlauf
oder richtige Berechnung? Bei altbltc Prüfung
der Dreiecksbedingung mit abgtc, führt ab zum
Überlauf, s.a. Testfall 20) - Wie viele Tests hatten Sie überlegt?
in Anlehnung anGlenford J. Myers Methodisches
Testen von Programmen.7. Auflage 2001
10Spitz-, stumpf- und rechtwinklige Dreiecke
- Werden spitz-, stumpf- und rechtwinklige
Dreiecke zusätzlich berücksichtigt, ergeben sich
insgesamt 47 Testfälle. - Resümee Einfaches Problem, aber aufwendiger
Test!
E. H. RiedemannTestmethoden für sequentielle
und nebenläufige Software-Systeme. Teubner
Verlag, Stuttgart 1997
11Definition Qualität
- Die Erfüllung von Qualitätszielen, die durch
Vorgaben für Qualitätsmerkmale und ihre
Teilmerkmale definiert sind - Qualität ist der Grad, in dem von einem Satz
inhärenter Merkmale (eines Produkts) die
Anforderungen erfüllt werden. (DIN EN ISO
90002005) - Qualitätsmerkmale beziehen sich immer auf
Anforderungen - Funktionale Anforderungen (Fachlichkeit,
Funktionen, Schnittstellen, ...) - Nicht-Funktionale Anforderungen(Qualitäts- und
Realisierungsanforderungen,Projektspezifische
Anforderungen, ...)
Angelehnt an DIN EN ISO 90002005
Qualitätsmanagementsysteme Grundlagen und
Begriffe. Beuth Verlag, Berlin, 2005
12Validierung und Verifikation - Definition
- Validierung Prüfung, ob ein Entwicklungsergebnis
die individuellen Anforderungen bezüglich einer
speziellen beabsichtigten Nutzung erfüllt. - Haben wir das richtige System realisiert?
- VerifikationPrüfung, ob die Ergebnisse einer
Entwicklungsphasedie Vorgaben der
Phaseneingangs-Dokumente erfüllen. -
- Haben wir das System richtig realisiert?
13Software-Qualität nach DIN/ISO/IEC 9126 (1)
Softwarequalität
ISO/IEC 91261991 Bewerten von Softwareprodukten,
Qualitätsmerkmale und Leitfaden zu ihrer
Verwendung (identisch mit DIN 66272, 94)
14Software-Qualität nach DIN/ISO/IEC 9126 (2)
Softwarequalität
15Analytische Qualitätssicherung
16Zunächst ein Selbsttest
- Wie viele "F" kommen im folgenden Text vor?
-
FINISHED FILES ARE THE RE- SULT OF YEARS OF
SCIENTIF- IC STUDY COMBINED WITH THE EXPERIENCE
OF YEARS
17Selbsttest
- Es sind sechs!
- Wie viele hatten Sie gezählt?
- Drei zu finden ist normal - sechs wirklich gut!
- Irren ist menschlich ?
FINISHED FILES ARE THE RE- SULT OF YEARS OF
SCIENTIF- IC STUDY COMBINED WITH THE EXPERIENCE
OF YEARS
18Die magische Zahl Sieben
- Problem Begrenzte menschliche Wahrnehmungsfähigke
it - Die Millersche Zahl bezeichnet die von George A.
Miller festgestellte Tatsache, dass ein Mensch
gleichzeitig nur 72 Informationseinheiten
(Chunks) im Kurzzeitgedächtnis präsent halten
kann. Die Größe des Kurzzeitgedächtnisses ist
genetisch determiniert und kann auch durch
"Training" nicht gesteigert werden. Der
diesbezüglich von Miller verfasste Artikel "The
Magical Number Seven, Plus or Minus Two Some
Limits on Our Capacity for Processing
Information" ist einer der meistzitierten Artikel
im Bereich der Psychologie. - (Quelle http//de.wikipedia.org/wiki/Millers
che_Zahl)
19Statischer Test vs. dynamischer Test
- Im Entwicklungsprozess werden unterschiedliche
Produkte (Artefakte) erstellt - Informelle Texte
- Modelle
- Formale Texte
- Programmcode
- Maschinencode
- Programme sind statische Beschreibungen von
dynamischen Prozessen. - Dynamische Tests prüfen die durch
Interpretation (Ausführung) der Beschreibung
resultierenden Prozesse. - Statische Tests untersuchen die Beschreibung als
solche, sie wird nicht ausgeführt. - Im Gegensatz zum dynamischen Test finden
statische Tests eher Fehlerzustände als
Fehlerwirkungen
20Statischer Test
- Analyse des Testobjekts (meist ein Dokument)
durch intensive Betrachtung - Ziel Finden von Fehlerzuständen (Defekten) im
Dokument - Verstöße gegen Spezifikationen oder einzuhaltende
Standards, Fehler in Anforderungen, Fehler im
Design, unzureichende Wartbarkeit und falsche
Schnittstellenspezifikationen - Nachweis der Verletzung von Projektplänen
- Ergebnisse der Untersuchungen werden darüber
hinaus dazu benutzt, den Entwicklungsprozess zu
optimieren - Grundidee Prävention!
- Fehlerzustände und Abweichungen sollen so früh
wie möglich erkannt werden, noch bevor sie im
weiteren Verlauf der Softwareentwicklung zum
Tragen kommen und aufwändige Nach- oder
Verbesserungen nach sich ziehen
21Prüfende Verfahren
- Reviews überprüfen am Ende jeder
Entwicklungsphase Umfang und Qualität der
Zwischenprodukte. Projektpersonal,
Auftragnehmer-management und Auftraggeber
entscheiden gemeinsam, ob die nächste Phase
angegangen werden kann - Audits sind offizielle Reviews zur Verifikation
besonders kritischer Teile durch das QS-Personal - Ziel eines Walk-Throughs ist, Problembereiche zu
entdecken, sie aber erst nach Abschluß des
Walk-Throughs und nach Zustimmung des Erstellers
zu beheben - Peer Review entspricht dem Walk Through. Es geht
dabei um eine methodische Examinierung der
Ergebnisse durch sachkundige Kollegen (Peers).
Ziel ist, Fehler zu finden und Bereiche, in denen
Änderungen erforderlich sind - Inspection ist eine sehr formale Gruppensitzung,
in der die zu inspizierende Unterlage vom Autor
vorgelesen und sequentiell Wort für Wort
durchgearbeitet wird
22Manuelle vs. automatisierte Prüfung
- Betrachtung des Prüfobjekts durch Mensch oder
Werkzeug - Reviews
- Manuelle Prüfungen durch eine oder mehrere
Personen - Menschliche Analyse- und Denkfähigkeit wird
genutzt, um komplexe Sachverhalte zu prüfen und
zu bewerten - Kann bei allen Dokumenten durchgeführt werden,
die während des Softwareentwicklungsprozesses
erstellt oder verwendet werden (z. B. Vertrag,
Anforderungsspezifikation, Designspezifikation,
Quelltext, Testkonzepte, Testspezifikationen,
Testfälle, Testskripte oder Anwenderhandbücher) - Statische Analyse
- Automatisierte Prüfungen durch entsprechende
Werkzeuge - Nur bei Dokumenten mit formaler Struktur (z.B.
Programmtext,UML-Diagramme)
23Zielsetzung statische Analyse
- Aufdeckung vorhandener Fehlerzustände oder
fehlerträchtiger Stellen in einem formalen
Dokument. - Durch werkzeuggestützte Prüfung, z.B.
- Rechtschreibprüfprogramme als eine Art statische
Analysatoren, die (Rechtschreib- und
eingeschränkt Grammatik-) Fehler in Texten
nachweisen und damit zur Qualitätsverbesserung
beitragen - Ermittlung von Metriken (Messgrößen), um eine
Qualitätsbewertung durchführen und somit Qualität
messen und nachweisen zu können.
24Statische Analyse und Werkzeugunterstützung
- Statische Analyse mit Werkzeugunterstützung kann
nur auf einem formal strukturierten Dokument
durchgeführt werden. - Formale Dokumente können z. B. sein
- Technische Anforderungen
- Softwarearchitektur-Modelle
- Softwareentwurf-Modelle
- Programmcode
- Informeller Text kann unterhalb der
Oberflächenstruktur (Rechtschreibung und
elementare Grammatik) nur mit Methoden der KI
(künstliche Intelligenz) analysiert werden - Linguistische semantische Analyse ist aktueller
Forschungsgegenstand - Aber Einführung einer Normsprache ermöglicht
auch hier einfachere Analysen
25Statische Analyse und Reviews
- Stehen in einem engen Zusammenhang
- Wird vor dem Review eine statische Analyse
durchgeführt, können bereits eine Anzahl von
Fehlern und Unstimmigkeiten nachgewiesen werden
und die Menge der im Review zu berücksichtigenden
Aspekte ist erheblich geringer - Da statische Analysen werkzeuggestützt
durchgeführt werden, ist der Aufwand wesentlich
niedriger als beim Review - Also
- Statische Analyse und
- Review
- Problem
26Statische Analyse von Programmcode
- Fehler(zustände) bzw. fehlerträchtige
Situationen, die mit der statischen Analyse von
Programmcode nachgewiesen werden können, sind
beispielsweise - Verletzung der Syntax
- Abweichungen von Konventionen und Standards
- Kontrollflussanomalien
- Datenflussanomalien
- Alle Compiler führen eine statische Analyse des
Programmtextes durch, indem sie die Einhaltung
der Syntax der jeweiligen Programmiersprache
prüfen - Die meisten modernen Compiler bieten darüber
hinaus noch zusätzliche statische Analysen - Neben den Compilern gibt es spezielle Werkzeuge,
sogenannte Analysatoren, die zur Durchführung
bestimmter Analysen eingesetzt werden
27Statische Analysewerkzeuge
- Einige freie Werkzeuge zur statischen Codeanalyse
- CCCC (http//sourceforge.net/projects/cccc/)
- JUtils (http//www.jutils.com/)
- PyChecker (http//c2.com/cgi/wiki?PyChecker)
- Einige kommerzielle Werkzeuge zur statischen
Codeanalyse - PC-Lint
- Klocwork
- Coverity
- http//en.wikipedia.org/wiki/List_of_tools_for_sta
tic_code_analysis
28Analytische Qualitätssicherung
29Statischer Test vs. dynamischer Test
- Programme sind statische Beschreibungen von
dynamischen Prozessen - Statische Tests untersuchen die Beschreibung als
solche, sie wird nicht ausgeführt - Artefakte des Entwicklungsprozesses, z.B
informelle Texte, Modelle, formale Texte,
Programmcode, ... - Dynamische Tests prüfen die durch
Interpretation (Ausführung) der Beschreibung
resultierenden Prozesse. - Das Testobjekt wird im dynamischen Test auf
einem Prozessor ausgeführt - Bereitstellen von Eingangsdaten
- Beobachten der Ausgangsdaten
30Ziele des dynamischen Tests
- Nachweis der Erfüllung der festgelegten
Anforderungen durch das Testobjekt - Aufdeckung von eventuellen Abweichungen und
Fehlerwirkungen - Mit möglichst wenig Aufwand (Testfällen)
möglichst viele Anforderungen überprüfen bzw.
Fehler nachweisen - Aber Dynamische Tests sind immer nur
Stichproben!
31Dynamischer Test Begriffe und Zusammenhänge
32Dynamischer Test in unteren Teststufen
- Die Ausführung dynamischer Tests erfordert ein
ablauffähiges Programm - Einzelne Klassen, Module/Komponenten und
Teilsysteme sind jedoch in der Regel für sich
alleine nicht lauffähig - Bieten oft Operationen/Dienste für andere
Softwareeinheiten an - Haben kein Hauptprogramm zur Koordination des
Ablaufes - Stützen sich oft auf Operationen/Diensten anderer
Softwareeinheiten ab - In den unteren Teststufen Klassen-/Modultest,
Komponententest und Integrationstest muss das
Testobjekt also in einen entsprechenden
Testrahmen eingebettet werden - ? Oft als Unit-Test bezeichnet
33Unit Test Begriffe
- Testrahmen (test bed)
- Sammlung aller Programme (u. a. Testtreiber und
Platzhalter), die notwendig sind, um Testfälle
auszuführen, auszuwerten und Testprotokolle
aufzuzeichnen - Testumgebung
- Gesamtheit aller Hardware- und Softwarekomponenten
(auch der Testrahmen), die notwendig sind, um
Testfälle durchzuführen - Platzhalter (stub)
- Platzhalter werden beim dynamischen Komponenten-
und Integrationstest benötigt, um noch nicht
implementierte Komponenten für die
Testdurchführung zu ersetzen bzw. zu simulieren - Dummy
- Platzhalter mit rudimentärer Funktionalität
- Mock
- Platzhalter mit erweiterter Funktionalität für
Testzwecke (Logging, Plausibilitätsprüfung) - Simulator
- Werkzeug, mit dem die Einsatz- bzw.
Produktivumgebung nachgebildet wird
34Aufbau eines Testrahmens
Point of Control Schnittstelle, über die das
Testobjekt mit Testdaten versorgt wird
PoC
Testausgaben Vergleich Protokoll
Testobjekt
PoO
Point of Observation Schnittstelle, an der die
Reaktionen und Ausgaben des Testobjekts
beobachtet und aufgezeichnet werden
Laufzeitumgebung, Analysewerkzeuge, Simulatoren,
Monitore
Prozessor
35Fragestellungen beim Entwurf von Testfällen
- Wie viele Tests sind notwendig ?
- Welche Testdaten sollen verwendet werden ?
- Wie können fehler-sensitive Tests gefunden werden
? - Wie vermeidet man redundante Test ?
- Wurden Testfälle übersehen ?
- Wann kann man mit Testen aufhören ?
36Dynamischer Test Testentwurfsverfahren
- Testentwurfsverfahren (synonym
Testfallentwurfsverfahren) - Eine Vorgehensweise, nach der Testfälle
abgeleitet oder ausgewählt werden - Black-Box (Spezifikationsorientierte)
Testentwurfsverfahren - Systematische Herleitung und Auswahl von
Testfällen basierend auf einer Analyse der
funktionalen oder nichtfunktionalen Spezifikation
einer Komponente oder Systems ohne
Berücksichtigung der internen Struktur. - Keine Informationen über den Programmtext und den
inneren Aufbau - Beobachtet wird das Verhalten des Testobjekts von
außen (PoO - Point of Observation liegt außerhalb
des Testobjekts) - Steuerung des Ablaufs des Testobjektes nur durch
die Wahl der Eingabetestdaten (PoC - Point of
Control liegt außerhalb des Testobjektes) - White-Box (Strukturorientierte)
Testentwurfsverfahren - Systematische Herleitung und Auswahl von
Testfällen basierend auf der internen Struktur
einer Komponente oder Systems
37Black-box Test vs. White-box Test
38Übersicht Testentwurfsverfahren
39Testfall- und Testdatenermittlung
Y F (X)
WertebereicheGültige AusgabenUngültige Ausgaben
WertebereicheGültige EingabenUngültige Eingaben
Parameter
Ergebnisse
Funktion
40Äquivalenzklassenbildung
- Die Definitionsbereiche der Ein- und Ausgaben
werden so in Äquivalenzklassen (ÄK) zerlegt
(partitioniert), dass alle Werte einer Klasse
äquivalentes Verhalten des Prüflings ergeben - Wenn ein Wert der ÄK einen Fehler aufdeckt, wird
erwartet, dass auch jeder andere Wert der ÄK
diesen Fehler aufdeckt - Wenn ein Wert der ÄK keinen Fehler aufdeckt, wird
erwartet, dass auch kein anderer Wert der ÄK
einen Fehler aufdeckt - Aus jeder Äquivalenzklasse wird dann nur ein
Repräsentant getestet! - engl. Partition Testing
Äquivalenzklasse
Definitionsbereich
Ein beliebiger Wertder Äquivalenzklasse
41Äquivalenzklassenbildung
Äquivalenzklassenbildung in der Schlangenschule
42Analytische Qualitätssicherung
- Strukturorientierter Test
43White-Box Tests
44Beispiel Kontrollflussgraph von ggT()
- public int ggt (int m, int n) // pre m gt 0 and
n gt 0// post return gt 0 and //
m_at_pre.mod(return) 0 and //... - int r
- if (n gt m)
- r m
- m n
- n r
- r m n
- while (r ! 0)
- m n
- n r
- r m n
- return n
-
45Strukturorientierte Testverfahren
- Kontrollflussbasiert
- Anweisungsüberdeckung (statement coverage)
- (C0-Überdeckung, alle Knoten des
Kontrollflussgraphen) - Entscheidungsüberdeckung (decision coverage)
- (C1-Überdeckung, Zweigüberdeckung, d.h. bei
Knoten mit mehr als einer ausgehenden Kante alle
diese Kanten) - Pfadüberdeckung (path coverage)
- (C?-Überdeckung, alle Pfade)
- Datenflussbasiert
- Alle Definitionen (all defs)
- Alle Definition-Benutzung-Paare (all def-uses)
- Bedingungsbasiert
- Einfache Bedingungsüberdeckung (branch condition
testing) - Mehrfachbedingungsüberdeckung (branch condition
combination testing) - Minimale Mehrfachbedingungsüberdeckung (modified
branch condition decision testing)
46Beispiel Anweisungsüberdeckung für ggt()
- public int ggt(int m, int n) // pre m gt 0 and
n gt 0// post return gt 0 and //
m_at_pre.mod(return) 0 and //... - int r
- if (n gt m)
- r m
- m n
- n r
- r m n
- while (r ! 0)
- m n
- n r
- r m n
- return n
-
Pfad (1, 2-3, 4-6, 7, 8, 9-11, 8, 12, 13)
47Beispiel Entscheidungsüberdeckung für ggt()
- public int ggt (int m, int n) // pre m gt 0 and
n gt 0// post return gt 0 and //
m_at_pre.mod(return) 0 and //... - int r
- if (n gt m)
- r m
- m n
- n r
- r m n
- while (r ! 0)
- m n
- n r
- r m n
- return n
-
Pfad 1 (1, 2-3, 4-6, 7, 8, 9-11, 8, 12,
13) Pfad 2 (1, 2-3, 7, 8, 12, 13)
48Beispiel Pfadüberdeckung für ggt()
1
2-3
4-6
7
8
9-11
12
13
49Testfall zur Anweisungsüberdeckung
Pfad (1, 2-3, 4-6, 7, 8, 9-11, 8, 12,
13) Logischer Testfall n gt m ? n m ? 0 ? n
(n m) 0 ggt(m, n) Konkreter Testfall
m 4, n 6 2
- public int ggt(int m, int n)
- int r
- if (n gt m)
- r m
- m n
- n r
- r m n
- while (r ! 0)
- m n
- n r
- r m n
- return n
-
m n r
4 6 ?
50Testfall zur Entscheidungsüberdeckung
Pfad (1, 2-3, 7, 8, 12, 13) Logischer Testfall
n ? m ? m n 0 ggt(m, n) Konkreter
Testfall m 4, n 4 4
1
2-3
4-6
- public int ggt(int m, int n)
- int r
- if (n gt m)
- r m
- m n
- n r
- r m n
- while (r ! 0)
- m n
- n r
- r m n
- return n
-
7
m n r
4 4 ?
8
9-11
12
13
51White-Box Tests und Instrumentierung
- Bei den White-box Verfahren wird gefordert, dass
bestimmte Programmteile zur Ausführung kommen
bzw. Bedingungen unterschiedliche Wahrheitswerte
annehmen - Um den Test auswerten zu können, muss ermittelt
werden, welche Programmteile bereits ausgeführt
wurden und welche noch nicht zur Ausführung
gekommen sind - Dazu muss das Testobjekt an strategisch wichtigen
Stellen vor der Testausführung instrumentiert
werden - Es werden zusätzlich Anweisungen wie z.B. Zähler
eingebaut und mit Null initialisiert, die dann
beim Durchlauf an den entsprechenden Stellen
inkrementiert werden - Ist ein Zähler auf Null geblieben, so sind die
entsprechenden Programmteile nicht ausgeführt
worden - Instrumentierung größerer Programme nur mit
Werkzeugen sinnvoll!
52Bewertung der White-Box-Techniken
Überdeckungsmaß Leistungsfähigkeit Bewertung
Anweisungsüberdeckung (C0) Niedrig Entdeckt knapp ein Fünftel der Fehler Notwendig, aber nicht hinreichend Entdeckt dead-code Mit anderen Verfahren kombinieren!
Entscheidungsüberdeckung (Zweigüberdeckung, C1) Mittel, schwankt aber stark Entdeckt ca. 30 aller Fehler und ca. 80 der Kontrollfluss-Fehler Minimales Testkriterium Entdeckt nicht ausführbare Zweige Zielt auf Verzweigungen
Bedingungsüberdeckung (C2) Niedrig Umfasst i.Allg. nicht die Anweisungs- und Entscheidungsüberdeckung
Mehrfach-Bedingungsüberdeckung Hoch Zielt auf komplexe Bedingungen Umfasst Entscheidungsüberdeckung Aufwand wächst stark
Datenflusstest Mittel bis hoch, All c-uses ca. 50, All p-uses ca. 34, all defs ca. 25 (keine Berechnungsfehler!) Zielt auf Variablen-Verwendung c-uses findet viele Berechnungsfehler Kaum Tools verfügbar
Pfadüberdeckung (C?) Sehr hoch Entdeckt über 70 der Fehler In den meisten Fällen nicht praktikabel
53Analytische Qualitätssicherung
54Bewertung Testverfahren
55Zusammenfassung
- Testen hat zum Ziel, Fehler zu finden
- Testfälle sind stichprobenhafte Eingaben an das
System mit definierten erwarteten Ergebnissen - Testfall-Spezifikationsmethoden sind
strukturierte Anweisungen zur Generierung von
qualitativ hochwertigen Testfällen mit vielen
Vorteilen gegenüber zufälligen Tests - Eine Teststrategie hat zum Ziel, die wichtigsten
Fehler so früh wie möglich mit geringen Kosten zu
finden - Testen ist ein Prozess, der den gesamten
Software-Lebenszyklus begleitet - Der Testprozess basiert auf vier Eckpfeilern
- Phasenmodell
- Passende Methoden
- Ressourcen und Infrastruktur
- Organisatorische Einbettung
56Lehrbuch zum Certified Tester - Foundation Level
- Andreas Spillner, Tilo LinzBasiswissen
SoftwaretestAus- und Weiterbildung zum Certified
Tester Foundation Level nach ISTQB-Standard - 4. überarbeitete Auflage
- dpunkt.verlag, 2010
- 308 Seiten, Gebunden
- 39,90 Euro (D)
- ISBN 978-3-89864-642-0
- Leseproben etc. unterhttp//www.dpunkt.de/bueche
r/2679.html
57Nützliche Links
- Stickymindshttp//www.stickyminds.com/Portal
mit vielen Informationen zum Test von SQE - Web Site Test obsessedhttp//www.testobsessed.c
om/Information for people with a passion for
software testing - Center for Software Testing Education Research
http//www.testingeducation.com/ Artikel zum
Thema Testen sowie Vorlesungsunterlagen - Atlantic Systems Guildhttp//www.systemsguild.com
/Artikel zum Testen von Anforderungen und vieles
mehr - Introduction to Software Testing
- http//www.cs.gmu.edu/offutt/softwaretest/
58Nützliche Links
- Web Sites von bekannten Testfachleuten meist mit
Literaturempfehlungen, Links, lesenswerten
Artikeln, Tool-Hinweisen u.a. - Brian Marickhttp//www.exampler.com/
- James Bachhttp//www.satisfice.com/
- Elisabeth Hendricksonhttp//www.qualitytree.com/
- Hans Schäferhttp//home.c2i.net/schaefer/
- Bret Pettichord (ed.)http//www.io.com/wazmo/qa/
- ISTQB/GTB Test-Glossar
- http//www.german-testing-board.info/downloads/pd
f/CT_Glossar_DE_EN_V21.pdf