Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS !6.4.2013: Softwaretest."—  Präsentation transkript:

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

2 Folie 2 H. 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? Einleitung

3 Folie 3 H. Schlingloff, Software-Qualitätssicherung 1. Einleitung Kapitel 2. Softwaretest 2.1 Testen im SW-Lebenszyklus 2.2 Funktionale Tests, Modultests 2.3 Strukturelle Tests, Integrationstests 2.4 Modellbasierte Tests

4 Folie 4 H. Schlingloff, Software-Qualitätssicherung 2.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 craftsmans 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)

5 Folie 5 H. 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!

6 Folie 6 H. 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

7 Folie 7 H. 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

8 Folie 8 H. 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 DeploymentRequirements Testing Module Testing Unit Testing Integration Testing System TestingDesign Testing Acceptance Testing

9 Folie 9 H. 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)

10 Folie 10 H. 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.)

11 Folie 11 H. 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,...

12 Folie 12 H. 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

13 Folie 13 H. 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

14 Folie 14 H. Schlingloff, Software-Qualitätssicherung Werkzeugunterstützung 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?

15 Folie 15 H. 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?

16 Folie 16 H. 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!

17 Folie 17 H. 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?

18 Folie 18 H. 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?

19 Folie 19 H. 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 programmers score 7-8 points Myers 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 instructions, a compiler or just a payroll program. Todays programs have 1-30 MLoC

20 Folie 20 H. 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


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

Ähnliche Präsentationen


Google-Anzeigen