
Software-Test: Verifikation und Validation
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
Aus dem Inhalt:
- Prozessmodelle, Software-Spezifikation, Testplanung und -strategie, Fagan Inspections und Code Walkthroughs
- Verifikation, Modultest, White Box Test, Testabdeckung, Incremental Testing
- Black Box Test, externe Testgruppe, Instrumentierung, Testabdeckung, Systemtests, Volume und Stress Test, Recovery Testing, Mutationstest, Benchmarks, Configuration, Compability und Usability Testing, Software für fremde Kulturen, Test der Dokumentation; OO-Testing, Test einer Website, Test bei sicherheitskritischer Software
- Software als Teil eines Systems: Analyse, Redundanz und Diversity
Die Neuauflage des Buches wurde durchgehend aktualisiert. Wesentlich erweitert wurden sie insbesondere bei den Themen:
- Test-Automation
- Management und Organisation: Debugging, Regression Testing, Werkzeuge. Fehlerbewertung, -verfolgung und -beseitigung, objektive Kriterien für das Testende, Freigabe-Politik
- Test und das CMM
Die Techniken und Methoden beim Test werden an einen durchgehenden Beispiel in C erläutert, so dass es auch der Leser leicht einarbeiten kann, der vorher nicht mit dem Test von Software befasst war. Das grundlegende Werk gehört auf den Schreibtisch jedes Software-Fachmanns.
More details
Content
2 - Acknowledgements [Seite 9]
3 - Inhaltsverzeichnis [Seite 10]
4 - 1 Die Notwendigkeit zur Verifikation der Software [Seite 14]
4.1 - 1.1 Die stille Revolution [Seite 16]
4.2 - 1.2 Das Risiko [Seite 17]
4.3 - 1.3 Der Zwang zu qualitativem Wachstum [Seite 28]
4.4 - 1.4 Die Testverfahren im Überblick [Seite 31]
5 - 2 Die Softwareentwicklung als Prozess [Seite 34]
5.1 - 2.1 Die Prozessmodelle [Seite 34]
5.2 - 2.2 Die Spezifikation als Grundlage für den Test [Seite 42]
5.3 - 2.3 Die Testplanung [Seite 48]
5.4 - 2.4 Die Notwendigkeit zur frühen Verifikation [Seite 51]
5.5 - 2.5 Die Verifikation ohne Computer [Seite 52]
6 - 3 Die Verifikation der Software [Seite 62]
6.1 - 3.1 Die Rolle des Tests im Lebenszyklus der Entwicklung [Seite 62]
6.2 - 3.2 Die Abhängigkeit von Entwurf und Implementierung [Seite 63]
6.3 - 3.3 Top-down- versus Bottom-up- Strategie beim Test [Seite 65]
6.4 - 3.4 Der Modultest als White Box Test [Seite 72]
6.5 - 3.5 Die Testabdeckung [Seite 82]
6.6 - 3.6 Incremental Testing [Seite 87]
6.7 - 3.7 Die Schwächen des White Box Tests [Seite 92]
6.8 - 3.8 Die geeigneten Werkzeuge [Seite 93]
7 - 4 Ein zweiter Ansatz: Black Box Test [Seite 94]
7.1 - 4.1 Die Motivation der externen Testgruppe [Seite 94]
7.2 - 4.2 Bewährte Grundsätze beim Black Box Test [Seite 96]
7.3 - 4.3 Die Instrumentierung [Seite 111]
7.4 - 4.4 Vom Modul zum Programm [Seite 118]
7.5 - 4.5 Die Testabdeckung auf Systemebene [Seite 131]
7.6 - 4.6 Gray Box Testing [Seite 132]
8 - 5 Die Ausprägungen von Tests [Seite 134]
8.1 - 5.1 Der Funktionstest [Seite 135]
8.2 - 5.2 Volume Test [Seite 137]
8.3 - 5.3 Stress Test [Seite 141]
8.4 - 5.4 Speicherverbrauch und Auslastung des Prozessors [Seite 142]
8.5 - 5.5 Recovery Testing [Seite 142]
8.6 - 5.6 Der Mutationstest [Seite 143]
8.7 - 5.7 Benchmarks [Seite 144]
8.8 - 5.8 Der Test von Prozeduren und Verfahren [Seite 147]
8.9 - 5.9 Configuration Testing [Seite 148]
8.10 - 5.10 Compability Testing [Seite 152]
8.11 - 5.11 Usability Testing [Seite 157]
8.12 - 5.12 Software für fremde Kulturen und Sprachen [Seite 169]
8.13 - 5.13 Überprüfung von Dokumenten [Seite 172]
8.14 - 5.14 Der Systemtest [Seite 175]
9 - 6 Tests bei spezifischen Applikationen [Seite 178]
9.1 - 6.1 Objektorientierte Software [Seite 178]
9.2 - 6.2 Test einer Website [Seite 187]
9.3 - 6.3 Sicherheitskritische Software [Seite 203]
10 - 7 Software und System [Seite 212]
10.1 - 7.1 Unterschiede zwischen Hardware und Software [Seite 213]
10.2 - 7.2 Analyse [Seite 217]
10.3 - 7.3 Konstruktive Maßnahmen [Seite 222]
10.4 - 7.4 Prozessmodelle [Seite 230]
10.5 - 7.5 Redundanz und Diversity [Seite 232]
10.6 - 7.6 Normen [Seite 234]
11 - 8 Test-Automation [Seite 238]
11.1 - 8.1 Warum automatisieren? [Seite 238]
11.2 - 8.2 Beschaffung eines Tools [Seite 245]
11.3 - 8.3 Testen mit automatischen Tools [Seite 248]
11.4 - 8.4 Erfahrungen mit der Test- Automatisierung [Seite 252]
12 - 9 Management und Organisation [Seite 258]
12.1 - 9.1 Test im betrieblichen Rahmen [Seite 258]
12.2 - 9.2 Organisation [Seite 267]
12.3 - 9.3 Testplanung [Seite 272]
12.4 - 9.4 Fremdsoftware [Seite 275]
12.5 - 9.5 Einsatz von Werkzeugen [Seite 278]
12.6 - 9.6 Fehlerberichtigungssystem und Behandlung von Änderungen [Seite 281]
12.7 - 9.7 Debugging und Regression Test [Seite 291]
12.8 - 9.8 Metriken zum Test [Seite 298]
12.9 - 9.9 Die Freigabepolitik [Seite 304]
12.10 - 9.10 Wirksamkeit und Wirtschaftlichkeit [Seite 307]
12.11 - 9.11 Qualitätssicherung und Test [Seite 312]
12.12 - 9.12 Das Risiko beherrschen [Seite 313]
13 - 10 Test und Capability Maturity Model [Seite 316]
13.1 - 10.1 Capability Maturity Model [Seite 316]
13.2 - 10.2 Test Maturity Model [Seite 331]
14 - 11 Ausblick [Seite 336]
15 - Anhang [Seite 338]
15.1 - A.1 Literaturverzeichnis [Seite 338]
15.2 - A.2 Spezifikation: Kernfunktionen der Kalenderroutinen [Seite 342]
15.3 - A.3 Akronyme und Abkürzungen [Seite 348]
15.4 - A.4 Glossar [Seite 351]
15.5 - A.5 Normen und Standards [Seite 358]
15.6 - A.6 Produktmuster für den Testplan [Seite 362]
15.7 - A.7 Materialien: Fragebögen und Fehlervordruck [Seite 369]
15.8 - A.8 Grundriss eines Usability Labs [Seite 387]
15.9 - A.9 Ressourcen im Internet [Seite 388]
15.10 - A.10 Stichwortregister [Seite 390]
Prüfe die Brücke, die dich tragen soll. Sprichwort
Neben dem White Box Test, der seit den Anfangstagen der Programmierung bekannt ist, steht gleichwertig der Black Box Test. Sein Ansatz ist verschieden vom White Box Test, und das bezieht sich vor allem auf die Person des Testers.
4.1 Die Motivation der externen Testgruppe
Wir sind bisher wie selbstverständlich immer davon ausgegangen, dass der Entwurf, das Kodieren und der anschließende Test von ein und derselben Person durchgeführt wird. Tatsächlich muss das nicht so sein; es sprechen eine ganze Reihe guter Gründe dafür, die Arbeit anders zu organisieren. Viele Organisationen haben mit wichtigen Projekten Schiffbruch erlitten, weil sie konstruktive und analytische Tätigkeiten nicht sauber voneinander getrennt haben. Lassen Sie mich zu diesem Punkt Tom DeMarco [29] zitieren. Ich könnte es mit meinen eigenen Worten nicht besser sagen.
»Ganz zu Beginn des Computerzeitalters gab es einmal im Bundesstaat New York eine Firma, die große blaue Computer baute. Sie lieferte auch gleich die passende Software dazu. Die Kunden dieser Firma waren recht nette Leute, aber sie konnten ganz schön böse werden, wenn fehlerhafte Programme ausgeliefert wurden. Eine Weile konzentrierte sich unser Konzern mit den blauen Computern darauf, die Kunden zu mehr Toleranz gegenüber fehlerhaften Programmen zu erziehen. Als das nichts fruchtete, entschloss man sich schließlich, den Fehlern in der Software auf den Leib zu rücken.
Der einfachste und offensichtliche Weg bestand darin, die Programmierer dazu zu bringen, vor der Auslieferung des Codes alle Fehler auszumerzen. Das funktionierte allerdings nicht. Aus irgendwelchen Gründen schienen die Programmierer - zumindest damals - daran zu glauben, dass ihre Programme keine Fehler hätten. Sie gaben ihr Möglichstes, aber den wirklich letzten Fehler zu finden war schwierig. Einige Programmierer schienen der gestellten Aufgabe allerdings besser gewachsen zu sein als andere Kollegen. Die Firma fasste diese Gruppe zusammen und stellte ihr die explizite Aufgabe, die Software vor der Auslieferung an die Kunden zu testen. Das Schwarze Team war geboren.
Dieses Team bestand ursprünglich aus Leuten, die im Testen von Software etwas besser waren als andere. Sie waren auch besser motiviert: Da sie den Programmcode nicht selber geschrieben hatten, hatten sie keine Angst vor gründlichen Tests.« Das Schwarze Team wurde im Lauf der Zeit immer besser. Sie erwarteten Fehler in der Software und waren entschlossen, sie aufzudecken. Sie standen in Opposition zum Schreiber des Programms. Die von ihnen ausgeheckten Tests waren ausgeklügelt, oft zerstörerisch und schwer zu bestehen. Die Mitglieder der Gruppe begannen, sich ganz in Schwarz zu kleiden. Es galt bald als eine Ehre, zum Schwarzen Team zu gehören. Fast unnötig zu sagen, dass die Firmenleitung begeistert war. Jeder gefundene Fehler war ein Defekt, den die Kunden nicht finden konnten. Das sparte viel Geld, das sonst für Wartung und Kundendienst hätte aufgewendet werden müssen. Manche Mitglieder verließen das Schwarze Team, doch sie wurden immer sofort wieder ersetzt. Die externe Testgruppe hatte sich innerhalb der Firma etabliert.
Es ist nicht zu leugnen, dass viele Menschen eine Hemmschwelle haben, wenn es um eigene Fehler geht. Den Balken im eigenen Auge sehen wir eben nicht. Warum sollte das bei Programmierern anders sein? Es ist also durchaus sinnvoll, nach dem Test durch den ursprünglichen Entwickler, etwa in der Form eines White Box Tests, den zweiten Schritt zu tun und das Programm einer externen Testgruppe zu übergeben. Das Wort extern bedeutet dabei außerhalb der Gruppe, die innerhalb der Firma für den Entwurf und dessen Implementierung verantwortlich ist. Black Box Test bedeutet, dass der Tester den Programmcode lediglich nach der Funktion beurteilt. Er weiß in der Regel gar nicht, wie eine Funktion implementiert wurde. Selbst wenn für ein Unterprogramm zwei durchaus unterschiedliche Lösungen möglich sind, den Tester interessiert das wenig: Solange die Routine die spezifizierte Funktion erfüllt, ist das Programm für ihn in Ordnung. Gewiss braucht der Tester einen Leitfaden, an dem er sich orientieren kann. Das kann zum einen das detaillierte Lastenheft der Software sein. Besonders gut eignet sich auch das Benutzerhandbuch, falls es zum Zeitpunkt des Tests vorliegt. Grundsätzlich sollte sich ein Mitglied der Testgruppe auf den Standpunkt eines Kunden und Benutzers des Programms stellen. Er darf kein Wissen voraussetzen, das der Entwickler vielleicht hat, der Benutzer aber nicht. Eine gewisse Robustheit und Tauglichkeit für den täglichen Betrieb sollte der Tester von der Software verlangen.
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.