Marcel Alper Professlonelle Softwarelesls Die Feinplanung von DV-Systemen von Georg liebetrau Management von DV-Proiekten von Wolfgang Brummer Sicherheitsrisiko Informationstechnik von Gunther Cyranek und Kurt Bauknecht IHrsg.J Professionelle Softwaretests von Marcel Alper Zwerlassigkeit und Verantwortung von Heinrich Rust Effiziente Datanbankentwicldung mit INFORMIX-4GL von Reinhard lebensorger Qualitatsoplimierung der Software-Entwicldung von Georg Erwin Thaller Marcel Alper Professionelle Softwarelesls Praxis der Qualitatsoptimierung kommerzieller Software aI Vleweg Die Deutsche Bibliothek - CIP-Einheitsaufnahme Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor und der Verlag tibernehmen infolgedes sen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung ubernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, BraunschweigIWiesbaden, 1994 Sof'tcover reprint of the hardcover 1s t edition 1994 Der Verlag Vieweg ist ein Unternehmen der Bertelsmann Fachinformation GmbH. Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschutzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulas sig und strafbar. Das gilt insbesondere flir Vervielfaltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Gedruckt auf saurefreiem Papier ISBN-13: 978-3-528-05454-0 e-ISBN-13: 978-3-322-86154-2 001: 10.1007/978-3-322-86154-2 Vorwort Fast aile unsere Lebensbereiche werden offen oder versteckt durch Software beeinfluBt. Das Logistikprogramm sorgt damr, daB die Milch frisch auf den Friihsttickstisch kommt. Das Kosten rechungsprogramm lost FabriksschlieBungen aus. Das Buch wendet sich an drei Gruppen von Betroffenen: • An den Produzenten der Software, der der Fata Morgana "fehlerfreie Software" nachjagen muB. • An den Priifer und Controller, der ein Zahlenwerk beurteilt, das mittels Software erzeugt wurde; der insgeheim hofft, die Zahlen mogen nicht nur hubsch ausgedruckt, sondern auch korrekt ermittelt sein. • An den kaufmannischen Anwender einer Software, der nur einen einzigen Wunsch hat: Die Software moge ihm die Ar beit erleichtern statt erschweren. Kapitel 1 fOr Eilige Bitte Ie sen Sie den Leitfaden im ersten Kapitel. Er weist Sie auf jene Kapitel hin, die auf Ihre Gruppe gezielt sind. Sie haben damit den unschatzbaren Vorteil, andere Kapitel mit bestem Gewissen uberspringen zu durfen. Uns allen ist bewuBt, daB Softwareproduktion ein komplexer und oft undurchsichtiger ProzeB ist. Die Spezialisierung wird vorangetrieben. Zur Erstellung von Programmcode werden Tools verwendet; mit der Auswirkung, daB der Programmierer seinen eigenen Programmcode nicht mehr versteht. Der Erzeuger der Software wird januskopfig: Einerseits Anwender der Program mierhilfen, andererseits kreativer Schopfer von Software. Die Grenzen verschwimmen (ist der Manager, der Standard-Tabellen Rechenprogramme mit eigenen Formeln und Makros verwendet, Anwender oder Programmierer?). Fehlerireie Software Die industrielle Fertigung von Software - gemeint ist damit ein Entwicklung ProduktionsprozeB, der ahnlich uberraschungsfrei ablauft, wie die Herstellung eines Autos - ist immer noch ein Schlagwort. Zu Recht empfindet der Programmanwender seine wachsende Ab hangigkeit bei zunehmender Komplexitat der Software als unbe haglich. Ein winziger Programmfehler kann die Telefonkommu nikation eines Landes einen Tag lang fast lahmlegen (so gesche hen in den USA). v Vorwort Der Softwareanwender, der Controller, der Prtifer - sie aile sind nicht in der Lage, den ProduktionsprozeB zu kontrollieren oder nachzuvollziehen. Sie haben nunnehr die M6glichkeit, andere geeignete Methoden zu suchen, urn die Qualitat des Produktes zu beurteilen. Die wirksamste Methode ist Testen. Das hat auch der Volksmund erkannt. Er sagt mit gutem Grund "d'rum teste, wer sich ewig bindet". Korrektes Testen hat positive Auswirkun gen: • Fur den Anwender bedeutet es: Er kann einen schlechten Kauf venneiden oder - wenn er bereits schlecht gekauft hat - kann er dies dem Verkaufer auch belegen und Verbesse rung fordem. • Fur den Controller bedeutet es: Er kann die Grenzen erken nen, innerhalb derer er sich auf das Produkt sttitzen kann (und damit die Kuhnheit seiner Prognosen dosieren). • FUr den Prtifer bedeutet es: Er kann qualitativ unzureichen de Sofware auch als solche erkennen, und er muB nicht vertrauensvoll die Gute eines Zahlenwerkes bestatigen, das mit rnangelhafter Software erstellt wurde. • FUr den Softwarehersteller bedeutet es: Er stellt sein Pro dukt richtig - im Sinn von "State of Art Engineering" - her und kann am Ende auch feststellen, ob das nunmehr richtig erstellte Produkt auch das "Richtige Produkt" aus der Sicht des Anwenders ist. Mangelhaite Wahrend es im technischen und militarischen Bereich Testver Testkultur in fahren und eine Testkultur gibt, ist im kaufmannischen Bereich kaufmiinnischen wenig davon zu bemerken. Unser Therna aber ist die kaufman Anwendungen nische Software. Yom technischen und militarischen Bereich ha ben wir kaum Anregungen zu erwarten. Schade, aber verstand lich (wir kommen noch darauf zu sprechen). In diesem Buch verwenden wir den Ausdruck "Anwender" fur jene Benutzer von Hardware und Software, die keine speziali sierte EDV-Abteilung haben. Dies ist in kleinen und mittleren Betrieben uberwiegend der Fall. Benutzer, die zwar Anwender sind, aber eine eigene Software entwicklungsgruppe haben, finden sich sowohl bei den Anwen dem als auch bei den Softwareproduzenten angesprochen. Unter Prtifer, Berater und Controller sind aile Fachleute mit dem Schwerpunkt ihrer Erfahrung im Rechnungswesen gemeint. Sie haben ahnliches Know-how und unterscheiden sich voneinander durch den Zeitpunkt, wann sie es prasentieren mussen. Vor dem (Stinden)Fall = Berater, Naehher = Prtifer, der Controller mal so - mal so. Bei den Begriffen wird es das ganze Bueh hindureh Sehwierig keiten mit der Eindeutigkeit geben. Sogar das Wort "System", dem ieh zweeks einer Definition ein eigenes Kapitel gewidmet habe, werde ieh skrupellos als Weehselkennzeiehen miBbrau chen. Aber vielleieht haben Sie fur Zweideutigkeiten sowieso etwas tiber, und ieh maehe mir ganz unnotig Sorgen. Wir tiben eine Disziplin aus, deren Produkte eine teehnisehe Le benserwartung von wenigen Monaten bis zu wenigen Jahren haben. Begriffe werden dureh den Konsens von Mensehengrup pen gesehaffen, einen komplexen Inhalt dureh ein Ktirzel zu be sehreiben. Einmtitigkeit braueht Zeit. Die Zeit zur Sehaffung der Einmtitigkeit ist den Mensehengruppen aber nieht mehr gewahrt. Wir werden uns bemtihen, das bewegliehe Ziel im Auge zu be halten. Am Ende von Vorworten stehen tiblieherweise Danksagungen. Danksagung Manehmal erinnern sie von der Ausfuhrliehkeit her an die Ge nesis und von der Peinliehkeit her an Dan Quayle. Ich moehte nur einen einzigen Dank sagen. Der aber ist so drangend bereehtigt, daB er fast einklagbar ware. Er gilt meinem Freund und Mitarbeiter Franz Grill. Seine Funktion allgemein zu besehreiben ist nieht einfaeh. Ieh selbst und meine Umgebung geben ihm versehiedenste Bezeieh nungen. Meine reehte und linke Hand, meine eerebrale Krtieke, mein GroBhirn etc .. Seine Bedeutung speziell fur dieses Bueh zu besehreiben ist da gegen einfaeh. Ohne mieh ware dieses Bueh vielleieht nieht entstanden. Ohne ihn aber ganz sieher nieht. VII nhaltsverzeichnis 1 Leitfaden fUr den Leser .................................................................................... 1 1.1 Fur den Anwender ...................................................................................... 1 1.2 Fur den Priifer/Controller ........................................................................... 1 1.3 Fur den Softwareproduzenten .......... ..... .... ..... .... ....... ....... ...... ...... ....... ....... 2 2 Credo (dennoch geruchlos) ............................................................................ 3 3 Historie ............................................................................................................... 5 4 Wertanalyse / Parallelen sind kein Zufall...... .... .... ....... ....... ...... ..... ....... ...... 11 5 Begriffe....... ...... ..... .......... ............................................... .............. ...................... 13 5.1 System ......................................................................................................... 13 5.2 Qualitat ....................................................................................................... 14 5.3 Systemrequirements ................................................................................... 15 5.4 Design ......................................................................................................... 17 5.5 Dokumentationen. ...................................................................................... 19 5.6 Standards .................................................................................................... 20 6 Der Tester .......................................................................................................... 21 6.1 Charakterprofil.. .......................................................................................... 21 6.2 Know-How-Profil....................................................................................... 22 6.3 Die betriebliche Position....... ..... ................ ............ ........ ........ ..... ............... 23 6.3.1 Beim Softwareentwickler ............................................................... 23 6.3.2 Beim Anwender.............................................................................. 24 6.3.3 Beim Priifer/Controller... ............... ............. ........ ....... ...... ....... ........ 25 7 Die Phasen der Softwaweentwicklung.. .................. ............ ...... ............ ......... 27 8 Fehler ................................................................................................................. 29 8.1 Definition .................................................................................................... 29 8.2 Fehlertypen ................................................................................................. 31 8.3 Klassifikation.................................... ...................... ......... ....... ...... ...... ........ 32 8.4 Dokumentation. .......... ....................... .............................. ....... ...... ....... ....... 35 8.5 Fehlerdatenbank................... ......................................... ..................... ........ 35 IX Inhaltsverzeichnis 9 Arlen des Testens ...... ....... ... ..... ..... ... .... .... ..... .... ...... ... ....... ........ ... ....... ..... ........ 37 9.1 Objektbezogen ........................................................................................... 37 9.1.1 Statische Tests ................................................................................. 39 9.1.2 Dynamische Tests ........................................................................... 39 9.2 Betrachtungsbezogen ................................................................................. 40 9.2.1 White Box-Test ............................................................................... 40 9.2.2 Black Box-Test ................................................................................ 41 9.2.3 Versuch eines Vergleichs ............................................................... 41 10 Methoden des Testens ..................................................................................... 43 10.1 Walk Through ............................................................................................. 43 10.1.1 Einleitung ........................................................................................ 43 10.1.2 Das Team ........................................................................................ 44 10.1.3 Der Ablauf ...................................................................................... 45 10.1.4 Zusammenfassung .......................................................................... 49 10.2 Path Testing ................................................................................................ 52 10.2.1 Einleitung........................................................................................ 52 10.2.2 Systemdarstellung mit Flowgraph...... ........ ............ ...... ............ ...... 52 10.2.3 Regeln ............................................................................................. 59 10.2.4 Ablauf. ............................................................................................. 62 10.2.5 Beispiel..... ...................................................................................... 63 10.2.6 Tips und Hinweise ......................................................................... 70 10.2.7 Untestbare pfade ............................................................................ 71 10.3 Loop Testing ............................................................................................... 75 10.3.1 Einleitung ........................................................................................ 75 10.3.2 Definitionen .................................................................................... 76 10.3.3 Tips und Hinweise ......................................................................... 76 10.3.4 Komplexe Loops ............................................................................. 77 10.4 Domain Testing .......................................................................................... 80 10.4.1 Einleitung ........................................................................................ 80 10.4.2 Definitionen .................................................................................... 81 10.4.3 Tips und Hinweise ......................................................................... 82 10.5 Syntax Testing ............................................................................................ 85 10.5.1 Einleitung ........................................................................................ 85 10.5.2 Tips und Hinweise ......................................................................... 86 10.6 Transaction Flow Testing ........................................................................... 87 10.6.1 Einleitung ........................................................................................ 87 10.6.2 Definitionen .................................................................................... 87 10.6.3 Beispiel ........................................................................................... 91 10.7 Eingabetest ................................................................................................. 93 10.7.1 Einleitung ........................................................................................ 93 10.7.2 Ablauf.. ............................................................................................ 93 10.7.3 Tips und Hinweise ......................................................................... 99 x 11 Testphasen ........................................................................................................ 101 11.1 1m Rahmen der Systementwicklung .......................................................... 101 11.1.1 Modultest ........................................................................................ 102 11.1.2 1ntegrationstest. ............................................................................... 102 11.1.3 Funktionstest. .................................................................................. 103 11.1.4 Systemtest ....................................................................................... 103 11.1.5 Anwendertest .................................................................................. 106 11.2 Sondertests .................................................................................................. 108 11.2.1 Regressionstest. ............................................................................... 108 11.2.2 Closed Book Methode .................................................................... 110 12 Der TestabIauf in der Praxis ........................................................................... 113 12.1 1ntegrations-und Teststrategien ................................................................. 113 12.1.1 Bottom Up ...................................................................................... 113 12.1.2 Top Down ...................................................................................... 115 12.1.3 Big Bang ......................................................................................... 116 12.1.4 Backbone ........................................................................................ 117 12.2 Testplanung ................................................................................................ 118 12.2.1 Einteilen der Testgebiete ................................................................ 118 12.2.2 Testmatrix ....................................................................................... 119 12.2.3 Szenario .......................................................................................... 121 12.2.4 Der Test ist auch ein System .......................................................... 123 12.2.5 Tips und Hinweise ......................................................................... 125 13 Testtools ............................................................................................................. 127 14 Testen I Traum und WirkIichkeit .................................................................. 131 14.1 Programmversionen ................................................................................... 131 14.2 PC-Software ................................................................................................ 132 14.3 Fremdsoftware ............................................................................................ 134 15 Botschaften an den Leser ................................................................................ 135 15.1 An aile ......................................................................................................... 135 15.2 Der Anwender ............................................................................................ 136 15.2.1 Mug ................................................................................................. 136 15.2.2 Darf nicht ........................................................................................ 136 15.3 Der Prtifer/Controller ................................................................................. 137 15.3.1 Mug ................................................................................................. 137 15.3.2 Darf nicht ........................................................................................ 137 15.4 Der Softwareproduzent .............................................................................. 138 15.4.1 Mug ................................................................................................. 138 15.4.2 Darf nicht ........................................................................................ 138 XI