Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Qualitätssicherung von Software (SWQS)

Ähnliche Präsentationen


Präsentation zum Thema: "Qualitätssicherung von Software (SWQS)"—  Präsentation transkript:

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

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

3 Kapitel 2. Softwaretest 2.1 Testen im SW-Lebenszyklus
2.2 Funktionale Tests, Modultests 2.3 Strukturelle Tests, Integrationstests 2.4 Modellbasierte Tests 1. Einleitung

4 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) 2.1 Testen

5 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 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 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 Implementierung und Test
V-Model: Konstruktive und analytische Seite des Software-Lebenszyklus Requirements Analysis Module Design Unit Design & Implementation Module Integration System Integration Architecture Design System Deployment Requirements Testing Module Testing Unit Testing Integration Testing System Testing Design Testing Acceptance Testing

9 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 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 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 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 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 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 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 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 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 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 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 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. Today’s programs have 1-30 MLoC

20 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)"

Ähnliche Präsentationen


Google-Anzeigen