O'Reilly logo

Unit-Tests mit ABAP® Unit by Damir Majer

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

45
5 Testing komprimiert
»Nimm an, was nützlich ist. Lass weg, was unnütz ist.
Und füge das hinzu, was dein Eigenes ist.«
Bruce Lee
Softwaretests gibt es seit dem Entdecken des ersten Softwarefehlers. Seitdem ent-
wickelt sich das systematische Testen von Programmen. Es gibt eine Vielzahl an
Möglichkeiten, um Software zu testen. Dieses Kapitel gibt Ihnen einen kompri-
mierten Überblick zum Testen. Insbesondere erfahren Sie, wie Sie systematisch
Testfälle herleiten können und welche Möglichkeiten es gibt, testbare Software zu
erstellen.
Übersicht über das Kapitel:
Basiswissen zum Thema Testen
Was sich hinter dem Begriff Unit-Testing verbirgt
Testphasen im Softwarelebenszyklus
Das Erstellen von Testfällen
Methodik, um testbare Software zu entwickeln
5 Testing komprimiert
46
5.1 Grundlagen
»Ich teste nicht!«, sagte mir ein Kollege. Es ist nicht, weil er gegen das Testen ist
– er denkt genauso über Softwarearchitektur und Design-Patterns –, seiner
Ansicht nach ist das nur etwas für Testspezialisten. Ein anderer Kollege begrün-
dete dieselbe Aussage damit, dass er ja den Kollegen in der Testabteilung nicht
den Job wegnehmen möchte. Welch edle Einstellung, finden Sie nicht auch?
5.1.1 Begriffe und Definitionen
Bisher haben Sie einige Begriffe aus dem Testumfeld intuitiv mit einem Kontext
verbunden. Nun ist es an der Zeit, die Begriffe so zu definieren, wie sie in der Pra-
xis verstanden und gelebt werden [URL: ISTQB Glossar].
Das International Software Quality Institute – kurz ISQI – hat sehr viel dazu
beigetragen, dass Begriffe zum Thema Testen standardisiert wurden. Die Grund-
lage, um über Sachverhalte das gleiche Verständnis zu haben, ist eine gemeinsame
Sprache bzw. Notation.
 The Three Amigos: Mr. Good, Mr. Bad and Mr. Pragmatic 
Mr. Bad: Testen mache ich ständig, da ich ja meine Programme debugge!
Mr. Good: Testen ist ein methodischer Prozess und dient dem Nachweis der korrek-
ten Umsetzung der Anforderungen und der Aufdeckung von Fehlerwirkungen.
Debugging dient der Lokalisierung der Ursache der Fehlerwirkung, der Fehlerzu-
stand wird ermittelt. Das Debugging wird in der Regel nach Aufdecken einer Fehler-
wirkung von den Entwicklern durchgeführt.
Mr. Bad: Aber ich werde doch nur für das Programmieren bezahlt!
Mr. Good: Du wirst auch nicht dafür bezahlt, dass du den halben Tag mit Debugging
verbringst. Wahrscheinlich wirst du dafür bezahlt, dass du ein funktionierendes Pro-
gramm schreibst. Das Testen ist nur ein Werkzeug, damit du die Qualität deines Pro-
gramms prüfst.
Mr. Pragmatic: Das Debugging ist ein analytisches Verfahren der Qualitätssiche-
rung. Unter Debugging wird die Lokalisierung und Behebung eines Fehlers im Pro-
gramm-Code verstanden.
47
5.1 Grundlagen
Testbegriffe
Testen
Der Prozess, bestehend aus allen Aktivitäten des Softwarelebenszyklus,
der sich, sowohl statisch als auch dynamisch, mit der Planung, Vorberei-
tung und Bewertung eines Softwareprodukts und damit verbundener
Arbeitsergebnisse befasst, um sicherzustellen, dass diese die festgelegten
Anforderungen erfüllen, um zu zeigen, dass sie ihren Zweck erfüllen, und
um Fehler zu finden.
Testprozess
Umfasst alle Aktivitäten, die zur Planung und Steuerung, Analyse und
Design, Realisierung und Durchführung, Auswertung und Bericht sowie
zum Abschluss der Testaktivitäten in einem Projekt benötigt werden.
[nach BS 7925/2]
Testfall
Umfasst folgende Angaben: die für die Ausführung notwendigen Vorbe-
dingungen, die Menge der Eingabewerte (ein Eingabewert je Parameter
des Testobjekts) und die Menge der erwarteten Sollwerte, die Prüfanwei-
sung (wie Eingaben an das Testobjekt zu übergeben und Sollwerte abzule-
sen sind) sowie die erwarteten Nachbedingungen. [nach IEEE 610]
Fehlerbegriffe
Wann liegt eigentlich ein Fehler vor? Der erste Gedanke, der hier aufkommt, ist,
dass dies der Fall ist, wenn beispielsweise ein Programm abstürzt. Sie vermuten es
schon: Der Begriff des Fehlers beinhaltet viel mehr.
Fehler
Umfasst die Abweichung zwischen dem berechneten, beobachteten oder
gemessenen Wert oder einem Zustand der Betrachtungseinheit und dem
entsprechenden spezifizierten oder theoretischen Wert.
Mangel
Nichterfüllung einer Anforderung in Bezug auf einen beabsichtigten oder
festgelegten Gebrauch. [ISO 9000:2000]
Ein Mangel liegt vor, wenn eine gestellte Anforderung oder berechtigte
Erwartung nicht angemessen erfüllt wird.
Ein Fehler ist somit die Nichterfüllung einer festgelegten Anforderung. Fehler ist
nicht gleich Fehler. Es gibt unterschiedliche Arten von Fehlern:

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required