Qualitätssicherung von Software (SWQS)

Slides:



Advertisements
Ähnliche Präsentationen
Software Engeniering II
Advertisements

Integrations- und Funktionstests im Rahmen des V-Modelles
Submodell Softwareentwicklung (SE)
Phasen und ihre Workflows
Qualitätssicherung von Software (SWQS)
Qualitätssicherung von Software (SWQS)
Qualitätssicherung von Software
Qualitätssicherung von Software (SWQS)
Testplanung.
Fakultät für informatik informatik 12 technische universität dortmund Optimizations Peter Marwedel TU Dortmund Informatik 12 Germany 2009/01/17 Graphics:
Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,
Kapitel 4: Schule In this chapter you will: Talk about school
Prof. Dr. Holger Schlingloff
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS : Software Model Checking.
Qualitätssicherung von Software
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Qualitätssicherung von Software
Qualitätssicherung von Software
Qualitätssicherung von Software
Qualitätssicherung von Software
Qualitätssicherung von Software
Dynamische Testverfahren
LE LM 10 - LO3 Verfahren zur Qualitätssicherung
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Einzeltests im Rahmen des V-Modelles Aufgaben Überprüfung des Programmcodes mit Hilfe.
Testen, Analysieren und Verifizieren von Software
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Spezifikation von Anforderungen
A definite relative pronoun must agree in gender and number with the noun or pronoun to which it refers which is often called the antecedent. The case.
Don`t make me think! A Common Sense Approach to Web Usability
Institut AIFB, Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Towards Automatic Composition of Processes based on Semantic.
Agenda 13: Begrüßung & Einführung in das Thema
You need to use your mouse to see this presentation © Heidi Behrens.
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Vorgehensweise bei der Software-Entwicklung des Publication Managers
Wasserfallmodell und Einzelbegriffe
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Universität StuttgartInstitut für Wasserbau, Lehrstuhl für Hydrologie und Geohydrologie Copulas (1) András Bárdossy IWS Universität Stuttgart.
Systementwicklung Vorgehensmodelle am Beispiel des RUP
Modellbasierte Software-Entwicklung eingebetteter Systeme
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Institut für Angewandte Mikroelektronik und Datentechnik Course and contest Results of Phase Selected Topics in VLSI Design (Module 24513) ©
Die Kunst des Programmierens...
Institut für Angewandte Mikroelektronik und Datentechnik Phase 5 Architectural impact on ASIC and FPGA Nils Büscher Selected Topics in VLSI Design (Module.
Mein Arbeitspraktikum. Today we are learning to talk about work experience we have done, giving facts, details and opinions The bigger picture: We are.
Die Fragen Wörter Wer? Was? Wann?.
Weg mit Fehlern, die kein Entwickler versteht …
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Literary Machines, zusammengestellt für ::COLLABOR:: von H. Mittendorfer Literary MACHINES 1980 bis 1987, by Theodor Holm NELSON ISBN
XML Seminar: XP und XML 1 XP and XML Gregor Zeitlinger.
COMMANDS imperative 1. you (formal): Sie 2. you (familiar plural): ihr
Probesystem Gym 4 Prüfungen pro Schuljahr, in der 2. Klasse 4 ½ Prüfungen. Jeweils ganze Lektion, keine Fragemöglichkeit am Anfang der Prüfungslektion.
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
Kapitel 7 Grammar INDEX 1.Comparison 2.Adjectives 3.Adjective Endings Following Ein-Words.
Kapitel 9 Grammar INDEX 1.Formal Sie- Command 2.There Is/There Are 3.Negation: Nicht/Klein.
Semesterprojekt Präsentation Thema 1 Test-Arten
Formale Methoden Semesterprojekt Präsentation Thema 1 Test-Arten Fernstudium Master WI, MWI 10F Jan te Kock,
SEMINARVORTRAG Von Jonas Robers METHODEN UND TOOLS ZUR ERFASSUNG VON TESTFÄLLEN.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
Interrogatives and Verbs
Projektgruppe System- und Softwaretest
Das Wetter.
9 Two-Way Prepositions über in an neben vor auf hinter zwischen unter.
CSL211 Computer Architecture
THE PAST TENSE (Part 3) VERBS WHICH TAKE SEIN
Integrating Knowledge Discovery into Knowledge Management
Practical Exercises and Theory
Ich - Projekt Due Monday, September 19..
School supplies.
 Präsentation transkript:

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

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 16.4.2013

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

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

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!

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’

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

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

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)

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.)

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, ...

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

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

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?

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?

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!

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?

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?

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 100.000 instructions, a compiler or just a payroll program. Today’s programs have 1-30 MLoC

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