+ All Categories
Home > Documents > Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff,...

Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff,...

Date post: 03-Sep-2019
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
31
Softwaretest Methoden, Werkzeuge, Vorgehensweisen Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST
Transcript
Page 1: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Softwaretest Methoden, Werkzeuge, Vorgehensweisen

Prof. Dr. Holger Schlingloff

Humboldt-Universität zu Berlin und

Fraunhofer FIRST

Page 2: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 2 H. Schlingloff, Ringvorlesung Semesterprojekte

• Warum Testen? • Teststufen • Komponententests mit JUnit • Oberflächentests mit Selenium • Überdeckung

Page 3: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 3 H. Schlingloff, Ringvorlesung Semesterprojekte

Warum Testen?

Prüfen = Testen einer Serie gleichartiger Objekte

Experimentieren = Ausführen einzelner Versuche zur Erlangung einer neuen Erkenntnis

Probieren = experimentelles Feststellen der Qualität eines Objekts

Testen = systematisches Probieren nach verschiedenen Qualitätskriterien

Abgrenzung

Page 4: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 4 H. Schlingloff, Ringvorlesung Semesterprojekte

VVT & D

Verifikation: Die Software ist richtig!

Debugging: Warum ist die Software

nicht richtig?

Validation: Ist es die richtige Software?

Test: Ist die Software richtig?

Page 5: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 5 H. Schlingloff, Ringvorlesung Semesterprojekte

w-Fragen

• warum • was • wer • wozu • wie • wann sollen wir testen?

Page 6: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 6 H. Schlingloff, Ringvorlesung Semesterprojekte

•  Projekt läuft nicht è kein Schein •  Mangelnde Qualität kostet Geld:

•  Benutzerakzeptanz, Kundenverlust

•  Fehlerkorrektur- und Folgekosten

•  Gewährleistung, Produkthaftung •  Sicherheitsprobleme

Warum sollen wir testen?

Page 7: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 7 H. Schlingloff, Ringvorlesung Semesterprojekte

•  Qualität = Übereinstimmung mit den Anforderungen

z.B.: Funktionalität, Zweckdienlichkeit, Robustheit, Zuverlässigkeit, Sicherheit, Effizienz, Benutzbarkeit, Geschwindigkeit, Preisgünstigkeit, ...

Was sollen wir testen?

Page 8: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 8 H. Schlingloff, Ringvorlesung Semesterprojekte

•  unabhängige Anforderungsanalyse

•  Quantifizierung der Anforderungen

nicht: „akzeptable Antwortzeiten sind wichtig“

sondern: „Antwortzeit höchstens 5 Sekunden,

in 80% der Fälle kleiner als 3 Sekunden“

•  Kategorisierung der Anforderungen

(unerläßlich / wichtig / erwünscht / irrelevant / unerwünscht)

Page 9: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 9 H. Schlingloff, Ringvorlesung Semesterprojekte

Tester und Entwickler sind verschiedene Rollen

•  „Bugs“ schleichen sich nicht ein, sie werden gemacht

•  Niemand kennt das Produkt so genau wie der Entwickler

• Motivation des Entwicklers: Debugging und Verifikation

• Motivation des Testers: Fehler identifizieren

Wer soll testen?

Page 10: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 10 H. Schlingloff, Ringvorlesung Semesterprojekte

Individualverantwortlichkeit •  Diskriminierungen

•  Schuldzuweisungen

•  verminderte Produktivität

Teamverantwortung •  Kooperation

•  Qualitätsbewußtsein

•  Produktverbesserung

Fehlervermeidung statt Fehlererkennung!

Wozu sollen wir testen?

Page 11: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 11 H. Schlingloff, Ringvorlesung Semesterprojekte

•  Konzentration auf Benutzersicht (Relevante Testfälle, Benutzbarkeitsprobleme)

•  Systematische Vorgehensweise (Testplanung und -dokumentation)

•  Einbeziehung aller Komponenten (auch: Dokumentation, Installationsroutinen usw.)

•  Automatisierung wo möglich

Wie sollen wir testen?

Page 12: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 12 H. Schlingloff, Ringvorlesung Semesterprojekte

Analyse

System- Entwurf

Implementierung

System-Integration

Einsatz

Wann sollen wir testen?

Modul- dekomposition

Modul- integration

Anforderungstest

Designtest

Komponententest

Systemtest

Akzeptanztest

Modultest

In jeder Phase!

Page 13: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 13 H. Schlingloff, Ringvorlesung Semesterprojekte

Page 14: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 14 H. Schlingloff, Ringvorlesung Semesterprojekte

Komponententest

•  erste Teststufe im analytischen Teil des V-Modells •  erstmaliger Test der ausführbaren Softwarebausteine

nach der Programmierung §  Prozeduren, Funktionen (imperativ) §  Module, Units, Klassen, Interfaces (objektorientiert) §  Blöcke (in der modellbasierten Entwicklung)

•  Bausteine dürfen auch verschachtelt sein •  Jeder einzelne Baustein wird unabhängig von den

anderen getestet §  keine externen Einflüsse oder Wechselwirkungen §  klare Fehlereingrenzung und -lokalisierung

Page 15: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 15 H. Schlingloff, Ringvorlesung Semesterprojekte 2.2 Funktionstest

Ziele des Komponententests

•  Aufdeckung von Fehlern in Funktionen §  falsche Berechnungen §  fehlende Programmpfade §  Sonderfallbehandlung §  unzulässige Ein- und Ausgabewerte §  Robustheit gegenüber falscher Benutzung §  sinnvolle Fehlermeldungen bzw. Ausnahmebehandlung

•  nichtfunktionale Gesichtspunkte sind sekundär §  Effizienz, Platz- und Zeitverbrauch §  Spezifikation und Dokumentation §  Wartbarkeit, Änderbarkeit, …

Page 16: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 16 H. Schlingloff, Ringvorlesung Semesterprojekte

Vorgehensweise

•  Bottom-up Ansatz §  Start mit Klassen die von keinen anderen abhängen §  Alle Funktionen der Klasse müssen getestet werden, alle

Datenfelder verwendet und alle Zustände durchlaufen werden

§  Dann Test von Klassen die auf bereits getesteten aufbauen §  Schichtenartige Architektursicht; Aggregation von

Einzeltests in Testsuiten

Page 17: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 17 H. Schlingloff, Ringvorlesung Semesterprojekte

TDD, XP &c

Wann soll man Modul-Tests schreiben? • Wenn die Klasse fertig ist?

§  testen bevor andere damit konfrontiert werden • Parallel zur Implementierung der Klasse?

§  testen um eigene Arbeit zu erleichtern • Vor der Implementierung der Klasse?

§  Tests während Implementierung immer verfügbar §  Konzentration auf Interface statt Implementierung §  durch Nachdenken über Testfälle Design-Fehler

finden

Page 18: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 18 H. Schlingloff, Ringvorlesung Semesterprojekte

Ein Beispiel

Beispiel: Yoonsik Cheon, University of Texas at El Paso, www.cs.utep.edu/~cheon/cs3331/notes/unit-testing.ppt

public final class IMath { /* * Returns an integer approximation * to the square root of x. */ public static int isqrt(int x) { int guess = 1; while (guess * guess < x) { guess++; } return guess; } }

/** A class to test the class IMath. */ public class IMathTestNoJUnit { /** Runs the tests. */ public static void main(String[] args) { printTestResult(0); printTestResult(1); printTestResult(2); printTestResult(3); printTestResult(4); printTestResult(7); printTestResult(9); printTestResult(100); } private static void printTestResult(int arg) { System.out.print(“isqrt(“ + arg + “) ==> “); System.out.println(IMath.isqrt(arg)); } }

Page 19: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 19 H. Schlingloff, Ringvorlesung Semesterprojekte

Fragen zum Beispiel

• Was ist die Ausgabe der Tests? • Vorteile gegenüber manuellem Test? • Welche Fehler werden (nicht) gefunden? • Probleme mit dieser Art zu testen? • Was kann verbessert werden?

Page 20: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 20 H. Schlingloff, Ringvorlesung Semesterprojekte

JUnit

•  Kontrollierte Testausführung und -auswertung

•  Public domain (www.junit.org)

•  sofort einsetzbar, in viele IDEs integriert

•  unterstützt „Test durch Entwickler“ Paradigma

•  Testautomatisierung!

import junit.framework.*; public class IMathTest extends TestCase { public void testIsqrt() { assertEquals(0, IMath.isqrt(0)); assertEquals(1, IMath.isqrt(1)); … assertEquals(10, IMath.isqrt(100)); } public static Testsuite() { return new TestSuite(IMathTest.class); } public static void main (String[] args) { junit.textui.TestRunner.run(suite()); } }

Page 21: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 21 H. Schlingloff, Ringvorlesung Semesterprojekte

JUnit (Forts.)

•  Typisch für eine Reihe ähnlicher Tools •  Vorteile der Verwendung

§  automatisierte, wiederholbare Tests (nach jedem „Build“!) §  kombinierbar zu Testklassen und Testsuiten §  Einbeziehung von Testdaten §  automatische Testauswertung §  Möglichkeit des Tests von Ausnahmen §  Möglichkeit der Verwendung interner Schnittstellen

• Was JUnit dem Tester nicht abnimmt §  Testentwurf (Auswahl und Beurteilung der Testfälle)

Page 22: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 22 H. Schlingloff, Ringvorlesung Semesterprojekte

Page 23: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 23 H. Schlingloff, Ringvorlesung Semesterprojekte

Oberflächentests

•  Capture-Replay-Technik •  kommerziell: Mercury WinRunner bzw. QuickTest

Professional, IBM Rational Robot

•  frei: Selenium IDE

•  Idee §  Aufzeichnung von Benutzerinteraktionen §  Abspielen mit Vergleich auf Änderungen

•  Erweiterungen §  GUI-Map, Scripting Wizard §  Alternativen, Wiederholungen §  Checkpoints, Komparatoren

Page 24: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 24 H. Schlingloff, Ringvorlesung Semesterprojekte

Vorgehensweisen GUI-Test

•  pragmatisch §  Aufzeichnung von Experimenten, Replay bei neuen Produktversionen

•  systematisch §  Festlegung von Testzielen (Qualitätskriterien, Requirements) §  Definition von Testfällen und Testsuiten §  Umsetzung (Implementierung) der Testfälle §  automatische Durchführung, Ergebnisabgleich und Korrektur

•  Vor- und Nachteile Testautomatisierung von Oberflächen §  minimaler Aufwand für Regressionstests §  systematische Überdeckung der Anforderungen §  erhöhter Anfangsaufwand, Toolkosten

Page 25: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 25 H. Schlingloff, Ringvorlesung Semesterprojekte

Aufzeichnung GUI-Test

•  Umgebung aufsetzen, Aufzeichnungsoptionen setzen •  Aufzeichnung starten •  Wiederholung (experimentell oder nach Plan):

§  Testfälle durchführen §  Beobachtungspunkte einfügen, Testverdikte festlegen §  Kontrollpunkte setzen

•  Aufzeichnung beenden •  entstandene Skripte editieren

§  Fallunterscheidungen, Verzweigungen §  Wiederholungen, Datenbereiche

Page 26: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 26 H. Schlingloff, Ringvorlesung Semesterprojekte

Wiedergabe GUI-Test

•  Testskripte zu Testsuite zusammenstellen •  Umgebung aufsetzen, Wiedergabeoptionen setzen • Wiedergabe mit Aufzeichnung der Ergebnisse

§  ggf. sofortige Korrektur von Skriptfehlern

•  Auswertung der Ergebnisse §  Für jeden nicht durchgelaufenen Testfall

-  manuelle Anpassung der Testskripte und erneute Durchführung oder -  Eintrag von Items in Fehlerverfolgungssystem

§  Erzeugung eines Testreports (manuell oder automatisch)

Page 27: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 27 H. Schlingloff, Ringvorlesung Semesterprojekte

Page 28: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 28 H. Schlingloff, Ringvorlesung Semesterprojekte

Testentwurf im Komponententest

•  Aus Komplexitätsgründen ist es nicht möglich, alle Eingabewerte(-folgen) zu testen

•  Problem: Welche Untermenge aller denkbaren Testfälle bietet die größte Wahrscheinlichkeit, möglichst viele Fehler zu finden?

èTechniken zur Testdaten- und Testfallbestimmung •  Äquivalenzklassenbildung

§  Auswahl „repräsentativer“ Daten •  Grenzwertanalyse

§  Wertebereiche und Bereichsgrenzen •  Entscheidungstabellen und Klassifikationsbäume

Page 29: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 29 H. Schlingloff, Ringvorlesung Semesterprojekte

Äquivalenzklassenbildung

• 1. Schritt: Partitionierung des Eingabedatenraumes in eine endliche Zahl von Äquivalenzklassen (bezüglich des vermuteten Ausfallverhaltens) §  im Beispiel: „drei gleiche Eingaben größer Null“

• 2. Schritt: Auswahl der Testfälle anhand je eines Repräsentanten der Äquivalenzklasse §  im Beispiel: (2,2,2)

Page 30: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 30 H. Schlingloff, Ringvorlesung Semesterprojekte

Vorgehensweise zur Äquivalenzklassenbildung

•  Betrachten der Definitionsbereiche für Ein-/Ausgabewerte •  Für jeden Wert ergeben sich gültige und ungültige Klassen

§  Wertebereiche, Aufzählungen: enthalten oder nicht enthalten §  Eingabewerte, die (möglicherweise) unterschiedlich verarbeitet

werden: für jeden Wert eine gültige und insgesamt eine ungültige Klasse

§  Ausgaben, die auf verschiedene Weise berechnet werden: je eine Klasse, die auf diese Ausgabe führt

§  Eingabebedingungen, die vorausgesetzt werden: je eine gültige und eine ungültige Klasse

•  Aufspaltung einer Klasse in kleinere Klassen, falls Grund zur Annahme besteht, dass nicht alle Elemente gleich behandelt werden

•  Tabellierung der zu jedem Parameter gehörigen Klassen

Page 31: Softwaretest - dbis.informatik.hu-berlin.de · Test: Ist die Software richtig? H. Schlingloff, Ringvorlesung Semesterprojekte Folie 5 w-Fragen

Folie 31 H. Schlingloff, Ringvorlesung Semesterprojekte

Vorgehensweise zur Testfallauswahl

•  Vollständig: Kartesisches Produkt der Klassen §  meist nicht praktikabel

•  Heuristisch: Auswahl gemäß folgender Strategie §  Bildung von Testfällen, die möglichst viele noch nicht behandelte

gültige Klassen abdecken §  Bildung von Testfällen, die genau eine ungültige Klasse abdecken §  Paarweise Kombination von Repräsentanten

im Beispiel: (2,2,3) und (-7,1,2), (5,“a“,2)

Äq1 Äq2 Äq3 … Par1 Wert1.1 Wert1.2 Par2 Wert2.1 … …

ParN


Recommended