4. Vorlesungsaufbau
4
Einführung in die Software Qualitätssicherung
Komponententests (Modultests) und Testabdeckung
Statische Testverfahren
Integrationstest
Systemtest und Akzeptanztest
Smoke Test, Performance-Test und Lasttest
Security-Test und Usability-Test
Klausurvorbereitung
5. Literatur
Basiswissen Softwaretest
- Andreas Spillner
Management und Optimierung
des Testprozesses
- Martin Pol
The Art of Software Testing
- Myers et. al.
XUnit Test Patterns
- Gerard Meszaros
Agile Testing
- Lisa Crispin
5
7. Warum Qualitätssicherung?
Beispiel wo Software Qualitätssicherung Fehler vermeiden hätte können.
Patriot Missile die Rakete Schlug in
einer amerikanischen Kaserne ein.
Fehler 24 Bit Register zum speichern
der Scud Missile Geschwindigkeit,
diese kann aber nicht akkurat in
diesem gespeichert werden. Es ergibt
sich über die Laufzeit des Systems
immer ein größerer Fehler.
2
Quelle: Wikipedia
Toll Collect Projekt kam es 2003
aufgrund der fehlenden Kompatibilität
von Software Modulen zu
Verzögerungen undVertragsstrafen.
3
Quelle: Wikipedia
Ariane 5 nach 36,7 Sekunden
sprengte sich die Rakete selbst.
Programmierfehler Umwandlung
64 Bit Gleitkommazahl in 16 Bit
Ganzzahl.
1
Quelle: Wikipedia
7
8. Magisches Dreieck
!
!
Projekterfolg
Kosten
Zeit
Qualität
In einem Projekt stehen Zeit, Kosten und Qualität in Zielkonkurrenz zueinander.
Beispiele:
- Um Termin zu halten werden weitere Entwickler eingestellt Kosten
- Um Kosten zu halten werden Funktionen gestrichen Qualität.
- Es werden mehr Tests gemacht Zeit und Qualität
8
14. Beispiel für keine gute Bedienbarkeit:
Therac 25 User Interface - Medizingerät Linearbeschleuniger zur Anwendung in der
Strahlentherapie
14
15. // Win32 MFC API
HWND CreateWindowEx
(
DWORD dwExStyle,
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
Beispiel für keine gute Bedienbarkeit:
15
23. Fehlerwirkung
(engl. Failure)
Ziele der Qualitätssicherung
Fehlerwirkung ist ein nach außen sichtbares Fehlerverhalten.
Ziel der Qualitätssicherung Wahrscheinlichkeit für Eintritt von
Fehlerwirkungen minimieren.
23
24. Fehlerzustand
(engl. Bug)
Ziele der Qualitätssicherung
Ein Fehlerzustand kann zu einer nach außen sichtbaren
Fehlerwirkung führen. Ziel der Qualitätssicherung die Anzahl
an Möglichkeiten für Fehlerzustände minimieren.
Quelle: Wikipedia
24
25. Fehlerhandlung
(engl. Error, Misstake)
Ziele der Qualitätssicherung
Irrtum bei der Software-Entwicklung.
Ziel der Qualitätssicherung Prozesse und Methoden etablieren
die Wahrscheinlichkeit für Fehlerhandlung minimieren.
25
26. Fehlermaskierung
Ziele der Qualitätssicherung
Die Wirkung eines Fehlers (Fehlerzustand) ist nach außen
nicht sichtbar (keine Fehlerwirkung), weil er durch einen
weiteren Fehler verborgen (überlagert / maskiert) wird.
Ziel der Qualitätssicherung Wahrscheinlichkeit für
Fehlermaskierung zu senken.
26
30. Fragestellung beim Testen
Test Verifikation
Debugging
Ist die Software
richtig?
Die Software ist
richtig!
Warum ist die
Software nicht
richtig?
30
31. Testen und Qualität
• Testen ermöglicht die Qualität von Software zu
messen.
• Qualität wird ausgedrückt durch Anzahl gefundener
Fehlerzustände.
• Wenn wenige oder keine Fehlerzustände gefunden
werden, kann TestenVertrauen in die Qualität eines
Systems schaffen.
• Falls Testen Fehlerzustände findet und diese
Fehlerzustände behoben werden, steigt die Qualität.
31
32. Komponententest
• Testbasis (Was ist die Grundlage für die Testfälle)
• Anforderungen an die Komponente
• detaillierter Entwurf
• Code
• Testobjekte (SUT = System Under Test):
• Komponenten
• Programme
• Datenumwandlung/Migrationsprogramme
• Datenbankmodule
32
33. xUnit
• xUnit ist die Bezeichnung für verschiedene
Frameworks für automatisierte Unit-Tests
(Komponenten Test).
• Das erste xUnit-Framework SUnit wurde von Kent
Beck für die Programmiersprache Smalltalk
entwickelt.
• xUnit Frameworks für Java JVM sind JUnit und
TestNG (oder Spock)
• NUnit für das .NET-Framework, PHPUnit für PHP,
CppUnit für C++ ...
XUnit Test Patterns
- Gerard Meszaros
Tipp: Die xUnit Test Bibel
33
35. Vier Phasen Test (Four-Phase Test)
Setup
Verify
Teardown
Exercise
SUT
test
fixture
1
2
3
4
„a test fixture is all the things we need to have in place in order to run a test“ - xUnit Patterns