20
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Embed Size (px)

Citation preview

Page 1: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Qualitätssicherung von Software (SWQS)

Prof. Dr. Holger Schlingloff

Humboldt-Universität zu Berlinund

Fraunhofer FOKUS

!6.4.2013: Softwaretest

Page 2: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 2H. Schlingloff, Software-Qualitätssicherung

Fragen zur Wiederholung

•Was versteht man unter Qualität?

•Kausalkette Defekt, Ausfall, Fehler, Irrtum, Unfall?

•Was versteht man unter “Softwaretest”?

•Abgrenzung: experimentieren, probieren, testen, verifizieren, prüfen?

•Unterschied validieren – verifizieren – testen?

16.4.20131. Einleitung

Page 3: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 3H. Schlingloff, Software-Qualitätssicherung1. Einleitung

Kapitel 2. Softwaretest

2.1 Testen im SW-Lebenszyklus2.2 Funktionale Tests, Modultests2.3 Strukturelle Tests,

Integrationstests2.4 Modellbasierte Tests

Page 4: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 4H. Schlingloff, Software-Qualitätssicherung2.1 Testen

Bücher zum Testen

• Myers, Glenford J.: The Art of Software Testing. Wiley & Sons (1979) (auch in deutsch erhältlich)

• Paul Jorgensen: Software Testing, a craftsman‘s approach. 4th ed in preparation. Auerbach 2014

• Andreas Spillner, Tilo Linz: Basiswissen Softwaretest. DPUNKT Verlag (2003)

• A.P. Mathur: Foundations of Software Testing. Addison-Wesley 2008• Bart Broekman, Edwin Notenboom: Testing Embedded Software, Addison-

Wesley (2003) (DC)• Harry Sneed, Mario Winter: Testen objektorientierter Software. Hanser

(2002)• Edward Kit: Software Testing in the Real World – Improving the process.

Addison-Wesley (1995)• Dorothy Graham, Mark Fewster: Software Test Automation - Effective Use

of Test Execution Tools. Addison-Wesley (2000) • Cem Kaner, J-Falk, H.Q. Nguyen: Testing Computer Software. Wiley (2 ed.

1999)• Marnie L. Hutcheson: Software Testing Fundamentals - Methods and

Metrics. Wiley (2003)

Page 5: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 5H. Schlingloff, Software-Qualitätssicherung

Spezifikationen

•Testen ist unmöglich ohne Spezifikation

•Spezifikationen sind oft impizit und unpräzise “keine Systemabstürze” “keine Fehlermeldungen”, keine Endlosschleifen “Alle Funktionen sind vorhanden” “so schnell wie möglich”, “Zu jedem Zeitpunkt

sicher”, “vernünftiges Preis/Leistungsverhältnis”

•Die Spezifikation muss testbar sein!

Page 6: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 6H. Schlingloff, Software-Qualitätssicherung

Tests, Testfälle und Testsuiten

• Test – Ausführung eines Testfalls• Testfall – Beschreibung eines Verhaltens

des SUTs, üblicherweise durch Vorbedingungen, Eingaben, erwartete Ausgaben und/oder Nachbedingungen

• Testsuite – Menge von zusammengehörigen Testfällen für ein bestimmtes Testvorhaben, üblicherweise mit gemeinsamen Qualitätsmerkmalen und Testschnittstellen

• Testziel – spezieller abzudeckender Punkt oder Einzelergebnis beim Testen ein Testfall kann mehrere Testziele abdecken zu jedem Testziel sollte es einen Testfall

geben: eine Testsuite ist vollständig, wenn sie alle Testziele abdeckt

Test Case A34871

Table lookup mod_admin

Pre: n_usr>0

In: uid = 0x5f0e

Out: uname =“abc”

Post: tbl=tbl’

Page 7: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 7H. Schlingloff, Software-Qualitätssicherung

Implementierung und Test

• “Programmierer” und “Tester” sind fundamental unterschiedliche Rollen Programmier wollen die Korrektheit ihrer Arbeit

nachweisen Tester sollen Fehler finden; haben Erfolg wenn sie

die Software als unkorrekt nachweisen

• “Programmierer” und “Tester” sind im Wesen ähnliche Rollen Programmierer erstellen Programme aus

Spezifikationen Tester erstellen Testsuiten aus Spezifikationen

Page 8: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 8H. Schlingloff, Software-Qualitätssicherung

Implementierung und Test

•V-Model: Konstruktive und analytische Seite des Software-Lebenszyklus

Requirements Analysis

Module Design

Unit Design & Implementation

Module Integration

System IntegrationArchitecture Design

System Deployment

Requirements Testing

Module Testing

Unit Testing

Integration Testing

System TestingDesign Testing

Acceptance Testing

Page 9: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 9H. Schlingloff, Software-Qualitätssicherung

Topics in Testing

• Was ist die Spezifikation, was ist das Testobjekt?• Was ist das Ziel des Testens?• Welche Schnittstellen werden benötigt, wie werden sie

angesprochen? Welche Werkzeuge werden verwendet?• Wie ist die Teststrategie (inhaltliche Vorgehensweise)?

Wann ist genug getestet? (Testüberdeckung)• Wie werden die Testfälle erstellt? (manuell,

automatisch?)• Wie erfolgt die Testbewertung? (Testorakel)• Wie werden die Testfälle notiert? (Testskriptsprache)• Wie werden die Testfälle ausgeführt? (Testumgebung)• Wie passiert die Testauswertung, welche Aktionen

folgen?• Wie können Testsuiten angepasst und

wiederverwendet werden? (Regressionstest)

Page 10: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 10H. Schlingloff, Software-Qualitätssicherung

Testaufgaben und Rollen

Beim SW-Test sind etliche Aufgaben durchzuführen:• Testentwurf (was ist zu testen)

• Testfallauswahl (welche Datensätze)

• Testausführung (wie ist SUT zu starten)

• Testfallbewertung (was ist das Verdikt)

• Testauswertung (wann ist der Test beendet)

• Testdokumentation (welche Dokumente)

• Testverwaltung (wie in den Lebenszyklus integriert)

• Testmanagement (welche Verantwortlichkeiten)

• Testautomatisierung (welche Werkzeuge wie benützen)

• Testwerkzeugadministration (Beschaffung, Installation etc.)

Page 11: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 11H. Schlingloff, Software-Qualitätssicherung

Klassifikation von Softwaretests

• nach Lebenszyklus-Phase oder Systemstruktur Analyse, Entwurf, Implementierung, Integration, Einsatz,

Wartung Modul/Unit, Komponente, Schicht, System

• nach Testobjekt OS/Middleware, Treiber, Bibliothek, Applikation, GUI, Web-

Dienst, eingebettete Software, ...

• nach Testmethode / Testauswahlverfahren statisch oder dynamisch, struktur- oder funktionsorientiert

kontroll- oder datenflussorientiert, Einmal- oder Regressionstest, ...

Page 12: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 12H. Schlingloff, Software-Qualitätssicherung

Klassifikation von Softwaretests (2)

• nach Testziel Funktionstest, Abnahmetest, Benutzbarkeitstest, Lasttest,

Interoperabilitätstest, Sicherheitstest, …

• nach Informationsstand bzw. Spezifikationsverfahren Black-Box, White-Box, Grey-Box UML-/modellbasiert, Lasten-/Pflichtenheft-basiert, Styleguide-

basiert, formale Spezifikation, …

• nach Werkzeug bzw. Automatisierungsgrad manuell, automatische (skriptgesteuerte) Testausführung,

automatische Testgenerierung, automatische Testauswertung, automatisches Testmanagement und Testdokumentation

Page 13: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 13H. Schlingloff, Software-Qualitätssicherung

Teststufen

• Unit level: unit test, logic test, equivalence class test, boundary value test, control flow test, loop test

• Module level: module test, integration test, communication test, data flow test, data integrity test, cause-effect test

• System level: system test, design test, module interaction test, acceptance test, back-to-back-test, GUI testing, performance and robustness test

• User level: requirements test, rapid prototyping, usability test, installation and configuration test, load and stress test

Page 14: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 14H. Schlingloff, Software-Qualitätssicherung

Werkzeugunterstützung

www.testingfaqs.org listet mehr als 500 (!) Testwerkzeuge in den Kategorien Bundled Tool Suites Defect Tracking GUI Test Drivers Load and Performance Static Analysis Test Coverage Test Design Tools Test Drivers and Test Suite Management Test Implementation Unit Test Tools

• Wie ist hier eine akzeptabele Auswahl zu treffen?

Page 15: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 15H. Schlingloff, Software-Qualitätssicherung

Test-Sprachen

Zur Notation der Tests werden eine Reihe von Formalismen verwendet MS Word, Excel oder .txt csh, .bat Perl, Python, AWK, Tcl, … C, C++, Sprache des SUTs TSL, TestML TTCN-3 …

• Welche sind wann geeignet?

Page 16: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 16H. Schlingloff, Software-Qualitätssicherung

Beispiel: Triangle Problem

• Function triangle takes three integers a,b,c which are length of triangle sides; calculates whether the triangle is equilateral, isosceles, or scalene.

• The task is to write down test cases for this function

• “Classical” testing task (Myers)

• Do it NOW!

Page 17: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 17H. Schlingloff, Software-Qualitätssicherung

Evaluation

Each “yes” gives you one point

• Do you have a test case for an equilateral triangle?

• Do you have a test case for an isoscele triangle? (must be a triangle, not, e.g. (2,2,4))

• Do you have a test case for an admissible scalene triangle (must be a real triangle, not, e.g. (1,2,3))

• Do you have at least three test cases for isoscele triangles, where all permutations of sides are considered? (e.g. (3,3,4), (3,4,3), (4,3,3))

• Did you state for each test case the expected result?

Page 18: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 18H. Schlingloff, Software-Qualitätssicherung

Evaluation (2)

• Do you have a test case with one side zero?

• Do you have a test case with negative values?

• Do you have a test case where the sum of two sides equals the third one? (e.g. (1,2,3))

• Do you have at least three test cases for such non-triangles, where all permutations of sides are considered? (e.g. (1,2,3), (1,3,2), (3,1,2))

• Do you have a test case where the sum of the two smaller inputs is greater than the third one?

• Do you have at least three such test cases?

Page 19: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 19H. Schlingloff, Software-Qualitätssicherung

Evaluation (3)

• Do you have the test case (0,0,0)?• Do you have test cases with very large integers (maxint)?• Do you have a test case with non-integer values? (e.g.,

real numbers, hex values, strings,…) • Do you have a test case where 2 or 4 inputs are provided?

Average programmer’s score 7-8 pointsMyers 1979: this example should demonstrate that testing even a trivial program is not an easy task. Consider the problem of testing an air traffic guidance system with 100.000 instructions, a compiler or just a payroll program.

Today’s programs have 1-30 MLoC

Page 20: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest

Folie 20H. Schlingloff, Software-Qualitätssicherung

Improved Triangle Problem

• The program accepts three integers between 1 and 200 which satisfy the triangle inequalities. The output is the type of triangle determined by the three sides.

• If the input does not match the range requirements, the program issues an error message and aborts.

• If the input does not satisfy the triangle inequalities, the program output is “NotATriangle”

• Otherwise, the output is “Equilateral”, if all three inputs are equal “Isosceles”, if exactly one pair of inputs is equal “Scalene”, if all inputs are pairwise unequal