Software Engineering und Projektmanagement 2.0 VO

Ähnliche Dokumente
Software Testen 2.0 VL

Software Testen 2.0 VL

Testautomatisierung. Lessons Learned. qme Software. Gustav-Meyer-Allee Berlin. Telefon 030/ Telefax 030/

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

,$ -. "+0 *+*+ ! / -#$%$. #$%'' $ () 1 2$ #$%$! 1 2$3 )!

Qualitätsmanagement im Projekt

Testen Prinzipien und Methoden

T2 Fundamentaler Testprozess

Systematisches Testen von Software

Senior Consulting. Senior Consulting Strategical, Conceptual and Technical Consulting Seite 1

T1 - Fundamentaler Testprozess

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Testen - Konzepte und Techniken

Fragebogen: Abschlussbefragung

Automatische Testfallgenerierung aus Modellen. 8. Neu-Ulmer Test-Engineering-Day Martin Miethe

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Software Engineering II (IB) Testen von Software / Modultests

Testen. SEPR Referat: Testen - Oliver Herbst

SDD System Design Document

Vector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R

Testmanagement in IT-Projekten

Testphase. Das Testen

SERVICE SUCHE ZUR UNTERSTÜTZUNG

Programmiertechnik II

Testen im Software- Entwicklungsprozess

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Testen und Testautomatisierung in agilen Projekten

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern

Prozess-Modelle für die Softwareentwicklung

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Softwaretechnik. Fomuso Ekellem WS 2011/12

Whitebox-Tests: Allgemeines

T3 Testen im Software- Lebenszyklus

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12

Klausur zu den Teilgebieten Software-Management und Software-Qualitätsmanagement

SEP 114. Design by Contract

Programmieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011


1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Einführung von Testautomatisierung reflektiert. Erkenntnisse eines Linienmanagers zu Herausforderungen und Fallgruben

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version:

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Theoretische Grundlagen der Informatik WS 09/10

Requirements Engineering WS 11/12

Einführung und Motivation

Qualitätssicherung im Lebenszyklus des itcs. Anspruch und Wirklichkeit.

das usa team Ziegenberger Weg Ober-Mörlen Tel Fax: mail: lohoff@dasusateam.de web:

Software - Testung ETIS SS05

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

Internet Explorer Version 6

Reporting Services und SharePoint 2010 Teil 1

Requirements Engineering für IT Systeme

Test. Dipl. Wirtsch. Ing. Alexander Werth 9-1

Übungsklausur vom 7. Dez. 2007

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Vortrag Diplomarbeit. Testentwurf in komplexen softwareintensiven Systemen mit der Klassifikationsbaummethode. von Rebecca Tiede

Organisation des Qualitätsmanagements

Qualitätsmanagement. Grundlagen

Validierung und Verifikation!

Data Mining: Einige Grundlagen aus der Stochastik

SOZIALVORSCHRIFTEN IM STRAßENVERKEHR Verordnung (EG) Nr. 561/2006, Richtlinie 2006/22/EG, Verordnung (EU) Nr. 165/2014

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Registrierung am Elterninformationssysytem: ClaXss Infoline

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Besicomm Leistungserfassung

Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1

WINDOWS 10 Upgrade. Beispiel: Desktop-Ausschnitt von vorhandenem WIN 8.1 (rechte Ecke der Taskleiste)

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

Was meinen die Leute eigentlich mit: Grexit?

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

Medizinprodukt 1.0. Lehren aus der Neuentwicklung von Medizinprodukte-Software. Matthias Hölzer-Klüpfel

Mitarbeiterbefragung als PE- und OE-Instrument

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Effizienzsteigerung von Softwaretests durch Automatisierung

Grundlagen Software Engineering

Teststrategie festlegen und Teststufen aufeinander abstimmen

Grundbegriffe der Informatik

FUTURE NETWORK REQUIREMENTS ENGINEERING

Spezifikation für Coaching Funktion in OpenOLAT

Was können Schüler anhand von Primzahltests über Mathematik lernen?

EINE PLATTFORM

S.M. Hartmann GmbH IT Solutions

Educase. Release Notes 1.7: Neue Funktionen und Verbesserungen. Base-Net Informatik AG Wassergrabe 14 CH-6210 Sursee

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Anforderungen an die HIS

HP Software für SAP Solutions

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Anleitung zum DKM-Computercheck Windows Defender aktivieren

Kapitel 3: Einführung Projektmanagement

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS Ohne Gewähr -

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Online Schulung Anmerkungen zur Durchführung

Performance Analyse in einem komplexen Softwaresystem Gebhard Ebeling

Über den Link erreichen Sie unsere Einstiegsseite:

Transkript:

Software Engineering und Projektmanagement 2.0 VO Der Therac-25 Fall Prominentes Literaturbeispiel zum Versagen des Tests Strahlentherapiegerät für die Krebstherapie SW-Fehler verursachte Überbestrahlung: Normale Therapie 1 Gray Tödlich ab 10 Gray SW-Fehler verursachte 40-200 Gray Vorlesung Integration und Test 2009W www.inso.tuwien.ac.at Mind. 3 bestätigte Todesfälle Entwicklung und Test von nur einer Person! Notwendigkeit der Unabhängigkeit des Tests bei entsprechenden Risiko INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Stellenwert von Softwaretests Keine Software ist frei von Fehlern Testen von Software gehört zu den wichtigsten Aktivitäten des Software-Entwicklungsprozesses Systematisches Testen notwendig Eine gut geplante Testphase ist die Grundlage für ein erfolgreiches Projekt Ziel ist es, Fehler so früh wie möglich zu finden Softwaretests sind eine dynamische und produktorientierte Qualitätssicherungstechnik Aufgrund wachsender Komplexität und hohe Abhängigkeiten von Softwaresystemen, wird der Softwaretest strategisch immer bedeutender 2 Definition Softwaretests Definition nach IEEE 610.12, 1990 : Software testing is a formal process carried out by a specialized testing team in which a software unit, several integrated software units or an entire software package are examined by running the programs on a computer. All the associated tests are performed according to approved test procedures on approved test cases. 3 4

Ziele des Softwaretests Grundsätze des Softwaretests (nach ISTQB) 1. Ziel ist es, Testfälle zu identifizieren, mit denen die höchste Wahrscheinlichkeit gegeben ist, festzustellen, ob das Softwaresystem korrekt funktioniert 2. Ein guter Test ist jener, der eine möglichst hohe funktionale oder nichtfunktionale Abdeckung hat 1. Grundsatz: Testen zeigt die Anwesenheit von Fehlern 2. Grundsatz: Vollständiges Testen ist nicht möglich 3. Grundsatz: Mit dem Testen frühzeitig beginnen 4. Grundsatz: Häufung von Fehlern 3. Beim Softwaretest sollen Fehler von Programmen identifiziert werden. 4. Wenn ein Test einen Fehler gefunden hat, war er erfolgreich 5. Grundsatz: Wiederholungen haben keine Wirksamkeit 6. Grundsatz: Testen ist abhängig vom Umfeld 7. Grundsatz: Trugschluss: Keine Fehler bedeutet ein brauchbares System 5 6 Beispiel für die Fehlerverteilung in Stadt21 Test- und Integrationsstufen Strategie der Zerlegung der gestellten Aufgabe in beherrschbare Teile bei der Herstellung von Softwaresystemen Zerlegung in Teststufen ermöglicht eine frühe Prüfung von unterschiedliche Teilen des zu entwickelnden Systems Teststufen können durch folgenden Aspekte charakterisiert werden:! allgemeine Ziele! Arbeitsergebnisse, als Grundlage für daraus abgeleitete Testfälle (Testbasis)! das eigentliche Testobjekt (Testgegenstand)! auftretende Fehlerwirkungen und zustände, die identifiziert werden sollten! Anforderungen an den Testrahmen; Werkzeugunterstützung;! spezifische Ansätze und Verantwortlichkeiten 7 8

Teststufenkonzept! A-symmetriemodell Test- und Integrationsstufen Strategie der Zerlegung der gestellten Aufgabe in beherrschbare Teile bei der Herstellung von Softwaresystemen Zerlegung in Teststufen ermöglicht eine frühe Prüfung von unterschiedliche Teilen des zu entwickelnden Systems Teststufen können durch folgenden Aspekte charakterisiert werden:! allgemeine Ziele! Arbeitsergebnisse, als Grundlage für daraus abgeleitete Testfälle (Testbasis)! das eigentliche Testobjekt (Testgegenstand)! auftretende Fehlerwirkungen und zustände, die identifiziert werden sollten! Anforderungen an den Testrahmen; Werkzeugunterstützung;! spezifische Ansätze und Verantwortlichkeiten 9 10 Testen in der iterativen Entwicklung - Typische Teststufen Komponententest Prüfung von separat testbaren Komponenten (z.b. Modulen, Programmen, Objekten, Klassen) auf vorhandene Fehler Isolation der einzelnen Komponenten vom Rest des Systems mit Hilfe von Platzhaltern (Stubs) bzw. Simulatoren und Testtreiber 11 12

Integrationstest Integrationstest cont. Prüft die Schnittstellen zwischen Komponenten Es können mehrere Integrationsstufen zum Einsatz gelangen, wobei diese Testobjekte unterschiedlichster Größe betreffen können Mit der Größe des Integrationsumfangs wächst auch die Schwierigkeit der Isolation von Fehlerwirkungen in Komponenten oder Systemen Inkrementelle Integrationsstrategien vs. Big-Bang-Strategie Können auf der Systemarchitektur, auf funktionalen Aufgaben, Transaktionsverarbeitungssequenzen oder weiteren Aspekten des Systems oder seiner Komponenten basieren Unterscheidung zwischen horizontaler und vertikaler Integration Bottom-Up-Integrationstests vs. Top-Down-Integrationstests 13 14 Systemtest Akzeptanztest Fokus liegt im spezifizierten Verhalten eines Gesamtsystems oder eines Produktes Systemtests sollten funktionale und nichtfunktionale Anforderungen an das System abdecken Systemtests basieren auf:! Anforderungsspezifikationen! Anwendungsfällen oder sonstigen Beschreibungen eines Systems! Geschäftsprozessen! Risikoanalysen! Erfahrungen im Produktionsumfeld! Systemressourcen Fokus des Abnahmetests liegt darin, die Erbringung der vom Auftraggeber und Auftragnehmer vereinbarten Leistungen nachzuweisen Wird meist von Kunden oder Benutzern eines Systems durchgeführt Arten von Abnahmetests:! Anwender-Abnahmetest! Betrieblicher Abnahmetest! Regulatorischer und vertraglicher Abnahmetest! Alpha- und Beta-Test (oder Feldtest) 15 16

Typische Quellen für Testfälle Testabdeckung Ziel der Verifikation von Softwaresystemen ist eine möglichst hohe Abdeckung (Coverage) des Systems mit den entsprechenden Testfällen Testfallselektion notwendig, da eine vollständige taxative Aufzählung aller möglichen Systemzustände aufgrund der Komplexität von Systemen unmöglich ist Ziel ist es, mittels formeller und deterministischer Verfahren die Menge an Testfällen zu identifizieren, die mit höchster Wahrscheinlichkeit Fehler finden bzw. die größtmögliche Abdeckung erreichen Zwei Ansätze von Abdeckung: strukturelle Abdeckung (White-Box-Tests) und funktionale Abdeckung (Black- Box-Tests) 17 18 Strukturelle Methoden Funktionale Methoden Anweisungsüberdeckungstest (C0 -Test)! Alle Knoten eines Kontrollflussgraphen werden von zumindest einem Testfall abgedeckt Zweigüberdeckungstest (C1-Test)! Zumindest jede Kante des Kontrollflussgraphen muss einmal durchlaufen werden Einfacher Bedingungsüberdeckungstest (C2-Test)! Die Auswertung jeder einzelnen atomaren Entscheidung muss einmal den Wert wahr und einmal den Wert falsch annehmen Mehrfach-Bedingungsüberdeckungstest (C3-Test)! Es wird versucht, zusätzlich zu den atomaren Teilentscheidungen und der Gesamtentscheidung auch alle zusammengesetzten Teilentscheidungen gegen wahr und falsch zu prüfen Pfad-Überdeckungstests (C4-Test)! Es müssen alle unterschiedlichen Pfade des Testobjektes in zumindest einem Testfall durchlaufen werden Äquivalenzklassenanalyse! Einteilung möglicher Ein- und Ausgabewerte in Klassen gleichem Systemverhalten! Es werden Werte von Klassen gewählt, bei denen angenommen wird, dass Fehler auftreten, die auch bei allen anderen möglichen Werten der Klasse auftreten können Grenzwertanalyse! Spezialfall der Äquivalenzklassenanalyse! Tatsache, dass Fehler besonders oft an den Grenzen der Äquivalenzklassen auftreten

Beispiel Äquivalenzklassen- und Grenzwertanalyse Zustandsbasierte Methoden An on-line Shop accepts orders only from 0! to 1000!. For orders starting from above 800! a discount of 10% is automatically granted. Make the ECP and BVA of this function. Mark valid and invalid ECs and BVs. ECs! Values < 0 (invalid)! Values from 0,00 to 800 " (valid)! Values from 800,01 to 1000 " (valid)! Values > 1000,00 " (invalid) BVs! -0,01 " (invalid)! 0,00 " (valid)! 800 " (valid)! 800,01 " (valid)! 1000,00 " (valid)! 1000,01 " (invalid)! Zustandsbasierte Testmethoden! Basieren auf Zustandsautomaten, die oft als UML-Zustandsdiagramme oder Prozessgrafiken dargestellt werden! Coverage:! State-Coverage,! Transition-Coverage,! Event-Coverage,! Path-Coverage 21 22 Funktionale Methoden Beispiel Klassifikationsbaummethode im CTE Klassifikationsbaummethode! Die Klassifikationsbaummethode wird zur systematischen Unterstützung von Blackbox-Tests angewandt! Es werden die Testfälle anhand möglicher Eingabebereiche oder Systemzustände in sogenannten Klassifikationen eingeteilt! Klassifikationen werden wiederum in disjunkte Teilmengen zerlegt! Testfälle werden durch Kombination verschiedener Klassen erstellt, wobei von jeder Klassifikation nur eine Klasse gewählt wird! Folgende Kombinationen von Klassen sind bei der Erstellung von Testfällen möglich:! Minimale Kombination: Jede Klasse jeder Klassifikation wird mindestens einmal verwendet.! Maximale Kombination: Jede Klasse wird mit jeder Klasse aus anderen Klassifikationen kombiniert.! Paarweise Kombination: Jeweils zwei Klassifikationen werden vollständig miteinander kombiniert.! Tripelweise Kombination: Analog zur paarweisen Kombination werden jeweils drei Klassifikationen miteinander vollständig kombiniert. 24

Informelle Testmethoden Nichtfunktionale Softwaretests Informelle Testmethoden! Es wird ganz oder teilweise auf eine systematische Ableitung von Testfällen verzichtet! Die Durchführung der Tests erfolgt mehr oder minder nach der Intuition des Testers! Informelle Testmethoden beruhen auf der Erfahrung der Tester und sind daher nicht deterministisch und nicht exakt wiederholbar, jedoch sehr oft effektiv in der Fehlerfindung! In der Praxis werden informelle und formelle Methoden daher häufig kombiniert! Die Idee der explorativen Testmethode ist gleichzeitiges Lernen und Testen eines Testobjektes! Informationen, Erfahrungen und Ergebnisse aus diesen Tests fließen anschließend direkt in neue, verbesserte Testfälle ein Der Test für nichtfunktionale Eigenschaften ist in Abhängigkeit vom jeweils untersuchten Qualitätsattribut aufgebaut Zu den wichtigsten nichtfunktionalen Eigenschaften, für die es auch spezialisierte Testverfahren gibt, zählen die Benutzbarkeit (Usability), die Leistungsfähigkeit (Performance) und die Sicherheit (Security) eines Systems Der Test der nichtfunktionalen Eigenschaften erfordert mehr Expertenwissen zu den jeweiligen Testarten als funktionale Performance-Tests Testautomatisierung Sammeln von Informationen über die Leistung und Performance eines Systems unter Last in Bezug auf nichtfunktionale Qualitätskriterien, z.b. Informationen über das Ressourcenverhalten eines Systems Wesentliche Metriken:! Latenz! Durchsatz! Ressourcenverbrauch Lasttest ist ein Spezialfall des Performance-Tests! Konzentriert sich auf die Ermittlung von Erkenntnissen eines zu testenden Systems in Bezug auf Belastung, wobei von der höchstmöglichen zu erwartenden Last ausgegangen wird Vollautomatische Durchführung und Verifikation von Testfällen In erster Linie eine wirtschaftliche Überlegung Initialaufwand für eine automatisierte Durchführung von Testfällen ist in der Regel wesentlich höher als der Initialaufwand für einen manuellen Test Im Gegenzug ist jedoch der Aufwand pro Testlauf im automatisierten Fall deutlich niedriger Der Testvorbereitungsaufwand ist im automatisierten Fall etwa doppelt so hoch ist wie im manuellen Fall. Der Aufwand für die Testdurchführung ist jedoch sehr viel geringer im automatisierten Fall Wartungsaufwand von automatisierten Testfällen im Allgemeinen höher ist als für manuelle Testfälle

Wirtschaftlichkeit der Testautomatisierung Automatisierte Komponententests Automatisierte Komponententests auf Quellcode- oder Schnittstellenebene werden mit speziellen Test- Frameworks durchgeführt Moderne Unit-Test-Frameworks bieten die Möglichkeit, einen Komponententest direkt in der Entwicklungsumgebung zu definieren und ständig parallel zur Entwicklung durchzuführen bzw. auszuwerten Eine wesentliche Funktion eines Unit-Test-Frameworks ist die Bereitstellung von Verifikationsmethoden (assertions), die den exakten Bereich des Testfalls definieren Unit-Test-Frameworks sind häufig mit Code-Coverage- Frameworks gekoppelt, die mithilfe von Instrumentierung die strukturelle Abdeckung der Unit-Tests feststellen 29 Automatisierte GUI-Tests Automatisierte GUI-Tests Simulation des Benutzers über die Benutzerschnittstelle des Systems GUI-Tests sind dadurch definiert, dass sowohl der Point of Control (PoC) als auch der Point of Observation (PoO) die Benutzerschnittstelle des Softwaresystems ist Ein übliches Verfahren zur Bestimmung der Aufbauelemente eines GUI-Tests ist das Capture/Replay- Verfahren Automatisierte GUI-Tests können auch wie normaler Quellcode von Grund auf entwickelt werden (Scripting) Die einzelnen GUI-Protokolle (z.b. Web, Win32, SAP) werden in Protokolladaptern implementiert und sind damit unabhängig vom Testtreiber und den Testfällen selbst

Testdaten Fehlermanagement Testdaten zur Konfiguration des Testaufbaus! Zielsysteme und Testtreiber müssen mit geeigneten Testdaten vorkonfiguriert werden Datengetriebener Test! Trennung von Testfällen und Testdaten! Wiederverwendbarkeit der Testfälle und Testdaten getrennt voneinander! Die Wartbarkeit und Lesbarkeit der Testfälle und Testdaten wird erhöht.! Testfälle und Testdatenmengen können in m:n Verwendung stehen.! Testfälle können definiert werden, auch wenn die konkreten Testdaten noch nicht bekannt sind.! Eine Automatisierung der Testfälle ist leichter herzustellen bzw. es ergeben sich besser zu wartende automatisierte Tests. Strategie: Deterministisch versus Random Typischer Fehlermanagement Prozess 1. Fehler melden 2. Fehler bewerten 3. Fehler zuteilen 4. Fehler beheben 5. Korrektur ausliefern 6. Fehler nachtesten 7. Fehler abschließen