QS in Softwareentwicklungsprojekten II

Slides:



Advertisements
Ähnliche Präsentationen
Identifizierung und Ausbildung von Führungskräften
Advertisements

Fachhochschule Frankfurt am Main University of Applied Sciences Nibelungenplatz 1 D Frankfurt am Main Ralf-Oliver Mevius.
Prüfung objektorientierter Programme -1
Integrations- und Funktionstests im Rahmen des V-Modelles
Phasen und ihre Workflows
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Qualitätssicherung von Software
Qualitätssicherung von Software (SWQS)
Zusammenfassung der Vorwoche
Evaluierung und Implementierung der Automated Test Life-Cycle Methodology (ATLM) am Beispiel der IT3-Software Vorträger: Ling Yan.
Projektplanung Tanja Blascheck cims. Projektplanung cims Agenda Implementierung Modul Test Integration System Test Handbuch Abnahme.
Kapitel 4 Syntaktische Analyse: LR Parsing.
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 Testfallbestimmung Dynamische Testverfahren wie das Black Box-Testen benötigen konkrete.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Erfahrungen aus Tests komplexer Systeme
Funktionalität Vorhandensein vor Funktionen mit festgelegten Eigenschaften. Diese Funktionen erfüllen die definierten Anforderungen. Richtigkeit - Liefern.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Regeln für Tester - best practice 1 Prüfe das eigene Programm nie als Einziger Testen.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme System- und Abnahmetests Inhalt Testen des Systems unter Mitwirkung des Auftraggebers.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Universität Stuttgart Institut für Kernenergetik und Energiesysteme MuSofT LE 3.1-4V - Modell Überblick V-Modell Regelungen, die die Gesamtheit aller Aktivitäten,
Dynamische Programmierung (2) Matrixkettenprodukt
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Geometrisches Divide and Conquer
Inf (21) WS10/11 Ralf-Oliver Mevius Bachelor Informatik (21) Fallstudie Prozessmodellierung ( 21.3)
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Agenda Einführung Haskell QuickCheck Zusammenfassung
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
Baustein RM-21: Risiko-Management planen
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan: m : Anforderungsanalyse Dokument m :
Inhalte und Maßnahmen eingegeben haben,
DVG Ablaufsteuerung
Wismar Business School
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Grundkurs Theoretische Informatik
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Unternehmensentwicklung
Das Wasserfallmodell - Überblick
Whitebox Testen mit JUnit
Druckerinstallation HP1050C
Finite Elemente Methoden bgFEM
Software Architektur IV
Software Engineering 1 6. Übung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
OOD – Object Oriented Design II
Mitglied der Fachhochschule Ostschweiz FHO 1 © FHS St.Gallen Software Engineering OOD – Object Oriented Design III GUI-Design.
QS in Softwareentwicklungsprojekten IV
QS in Softwareentwicklungsprojekten III
Auslegung eines Vorschubantriebes
STATISIK LV Nr.: 1375 SS März 2005.
Analyse von Ablaufdiagrammen
Blackbox-Testverfahren
Analyseprodukte numerischer Modelle
2014 Januar 2014 So Mo Di Mi Do Fr Sa So
Vorstellung des Ablaufs des Semesterprojekts Software Engineering 2009.
Korrektheit von Programmen – Testen
Der Erotik Kalender 2005.
Testvorbereitungen, Unit Test
Frankfurt University of Applied Sciences
Tutorial Schritt 1: Über den Link im VP gelangen Sie auf die Seite
Korrektheit von Programmen – Testen
Performanz- und Lasttests Formale Methoden
Seminararbeit Blackbox-Testverfahren Alexander Maas, Aachen,
 Präsentation transkript:

QS in Softwareentwicklungsprojekten II Testpolitik / Testhandbuch Teststrategie / Testvorgehen

Lernziele Sie können ... den Zweck und Inhalt eines Testhandbuchs darlegen. eine geschickte Teststrategie wählen. die Testmethoden erläutern und anwenden.

Literatur IT-Systeme prüfen Kapitel 3 – Teststrategie

Testpolitik – Testhandbuch – Testvorgehen

Vision  Strategie Vision Unternehmensstrategie Qualitäts- Management (QM) IT-Strategie ... ... QS-Plan ... Teststrategie (Testpolitik, Testhandbuch) Testplan Projekt ... Testplan Projekt B Testplan Projekt A

Prüf-/Testpolitik Teil der Qualitätspolitik Spiegelt Unternehmensphilosophie wieder Anzustrebendes Qualitätsniveau Festlegung des QS-Prozesses Einbettung/Bedeutung Evaluierung des Testens Z.B. Kostenmessung von Fehlern Verfahrensansatz für die Testprozessverbesserung Z.B. Maturiätsmodelle (CMM, TMM)

Testhandbuch als Rahmendokument Generische projektübergreifende Richtlinien und Methodiken Darstellung der Risiken und effiziente Massnahmen Aufzuziehende Testorganisation Richtlinien für Testumgebung Infrastruktur Testwerkzeuge Workflow des Testprozesses Einsatz von Testmethoden und Testarten (Teststufen) regeln Firmeninternes Glossar Vorlagen für Test- und Berichtsdokumente bzw. Softwareeinsatz

Risikoanalyse Risiko = Wahrscheinlichkeit eines Ereignisses * Schadensausmass Mit Risikoanalyse Risiken identifizieren: Produktrisiken Technische Faktoren (z.B. Softwarefehler) Betriebssicherheit Datensicherheit Projektrisiken Termin-/Kostenüberschreitung Politische Faktoren

Kritikalitätsstufen

Risikoorientierte Teststrategie Planung aufgrund der Kritikalität*: Auswahl der Testverfahren/Testmethoden/Testarten Festlegung der Testtiefe je Testobjekt Testfallpriorisierung (Hardest-First Test) Prüfen/Testen ist eine präventive Massnahme, um Risiken zu Reduzieren! * kategorisierte Risiken: gering, mittel, hoch mit quanitativen und qualitativen Bewertungen

Teststrategie (i.e.S.) Vorgehen im konkreten Projekt Festlegen: Ziel: der Prüfobjekte (was wird getestet) der Testarten (wie wird getestet) der Testmethoden (mit welcher Methode wird getestet) Ziel: mit möglichst wenigen Fällen die risikoreichsten Teile abdecken i.e.S.  im engeren Sinne

Zu berücksichtigende Testgrundsätze Fehlerabwesenheit kann nicht nachgewiesen werden Die Fehlerbehebungskosten steigen exponential: Je früher ein Fehler unterläuft Je später ein Fehler entdeckt wird Testpsychologie Prüfen/Testen soll andere als die Autoren sein Pareto-Prinzip anwenden: mit 20 % des theoretisch möglichen Testaufwandes 80 % der enthaltenen Fehler finden

Testvorgehen I: Big-Bang Gesamtes System erst testen, wenn Entwicklung abgeschlossen Vorteil: keine Drivers oder Stubs (Testsoftware) notwendig Nachteil: Zeitverlust – später Testbeginn Komplexität – Finden der Fehlerursache

Testvorgehen II: Vertikales Testen Funktional orientiertes Testen Vorteil: Zeitvorteil: sobald eine Funktionalität über alle Schichten fertig erstellt ist, kann getestet werden begrenzte Komplexität, keine spezielle Testsoftware notwendig

Testvorgehen III: Horizontales Testen Schichtenweises Testen Top-Down (Outsight In) – vom GUI her testen Bottom-Up (Insight Out) – vom Backend her testen Vorteil: Eingrenzung der Komplexität Nachteil: Spezielle Testsoftware notwendig

Testfallermittlung

Testfallermittlung Problem: immense Anzahl der Testfälle Geschickte Ermittlung und Auswahl: Ziel ist, mit möglichst wenig Fällen möglichst viele Fehler entdecken! Zwei sich ergänzende Arten: exploratives Testen methodisches Testen

Exploratives Testen Intuitives Vorgehen Unsystematische Testtechnik Ad-hoc Testen Zufallstest Abhängig von der Erfahrung des Testers Error guessing  herausspüren von Fehlern Sollte in jedem Falle dokumentiert sein Keine systematische Testabdeckung möglich!

Methodisches Testen Whitebox Test Greybox Test Blackbox Test Verzweigungen Anweisungen Greybox Test Komponente Blackbox Test Verhalten Anwendungsfälle Schnittstellen

Whitebox (Glassbox) Testverfahren Innere Struktur bekannt  Strukturtest Einsatz vor allem beim Unit-Test Nachweisbare Testabdeckung (Testüberdeckung): Anweisungsabdeckung Zweigabdeckung Bedingungsabdeckung Pfadabdeckung

Ablaufgraph I Anweisung, Anweisungsblock Bedingungen if ... then ... else case

Ablaufgraph II Schleifen do while repeat until

Testabdeckungsanalyse

Testabdeckung/Testüberdeckung 100%-ige Anweisungsabdeckung: Alle Anweisungsblöcke werden mit mindestens einem Testfall durchlaufen 100%-ige Zweigabdeckung: Alle Zweige werden mit mindestens einem Testfall durchlaufen 100%-ige Bedingungsabdeckung (Termabdeckung): Für jede Termkombinationen gemäss der Wahrheitstabelle gibt es einen Testfall: 100%-ige Pfadabdeckung: Alle mögliche Programmpfade werden mit je einem Testfall abgedeckt (meist nicht möglich) Problematik bei Schleifen (Keinmal, Einmal, Mehrmals, Max. Anzahl) Term 1 Verknüpfung mit (A=5) (B=7) AND OR Testfall 1 wahr Testfall 2 falsch Testfall 3 Testfall 4

Nachweis der Testabdeckung Nachweis mittels Coverage Monitor Instrumentalisieren des Programms Ausführen aller Testfälle Auswerten des Testabdeckungsgrads

Blackbox Testverfahren Interne Funktionsweise unbekannt oder für Test irrelevant Wichtig für die Bestimmung der Testfälle: Schnittstellen: Input Output erwartetes Verhalten Einsatz: Unit-Test (Blackbox ist die einzelne Komponente) Systemtest (Blackbox ist das ganze System) Techniken: Äquivalenzklassenbildung Grenzwertanalyse Zustandsbezogene Tests

Äquivalenzklassenbildung Wertebereich mit gleichartigen Aktionen Vorgehen zur Bildung: Auf Zahlengerade pro Parameter beschriebene Werte abtragen Äquivalenzklassen herauslesen (von einem Wert zum nächst folgenden Wert) Äquivalenzklassen überschneiden sich nie Vollständig: keine Lücken auf Zahlengerade Zuordnen der Aktionen je Äquivalenzklasse Beispiel: Modul mit Nettowarenwertberechnung gültiger Bruttowarenwertbereich: 5 – 10000 Beträge zwischen 1000 und 10000 erhalten 5 % Rabatt Beträge über 5000 erhalten zusäztlich 200 Bonus

Grenzwertanalyse Ergänzend zur Äquivalenzklassenbildung Ermitteln von Testfällen rund um die Grenzen der Äquivalenzklassen Je Äquivalenzklasse je den minimalen und maximalen Wert als konkreten Testfall nehmen Zusätzlich sind mögliche Fehler bzw. Extremwerte zu ermitteln

Zustandsbezogener Test I Einsatz in der objektorientierten Programmierung (OOP) neuer MA [Anzahl < Max - 1] neuer MA * MA geht [Anzahl > 1] Start neuer MA [Anzahl = Max - 1] neuer MA niemand im Büro Einige sind anwesend Volle Besetzung MA geht [Anzahl = 1] MA geht Ende Zustandsbeschreibung Zustandsübergang [Anzahl = 1] Bedingung unter welcher Zustandsübergang vorgenommen wird

Zustandsbezogener Test I Ableiten der Testfälle anhand des Übergangsbaumes: I Zustände: I = Initial (Ausgangsbasis) N = Niemand im Büro E = Einige sind anwesend V = Volle Besetzung F = Fehler, nicht erlaubt D = Deleted (Beendigt) Zustandsübergänge: i = init (Starten) + = MA kommt - = MA geht d = delete (Beenden) i N d - D + F E - [Anzahl = 1] + [Anzahl = Max – 1] + [Anzahl < Max – 1] - [Anzahl > 1] V N E - + F E

Übungen Fallstudien 3 - Teststrategie 4 und 5 – Whitebox-Test 6 und 7 – Black-Box-Test