Software Testen 2.0 VL



Ähnliche Dokumente
Software Engineering und Projektmanagement 2.0 VO

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

T2 Fundamentaler Testprozess

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

T1 - Fundamentaler Testprozess

SDD System Design Document

Systematisches Testen von Software

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

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

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

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

Testen Prinzipien und Methoden

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

Fragebogen: Abschlussbefragung

Qualitätsmanagement im Projekt

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

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

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Testen 2.0 VL

Testmanagement in IT-Projekten

Whitebox-Tests: Allgemeines

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

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

Testphase. Das Testen

SEP 114. Design by Contract

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


T3 Testen im Software- Lebenszyklus

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

Testen im Software- Entwicklungsprozess

Testen. SEPR Referat: Testen - Oliver Herbst

Reporting Services und SharePoint 2010 Teil 1

Internet Explorer Version 6

Requirements Engineering WS 11/12

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

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

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

SERVICE SUCHE ZUR UNTERSTÜTZUNG

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

Testen und Testautomatisierung in agilen Projekten

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

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

Übungsklausur vom 7. Dez. 2007

Teststrategie festlegen und Teststufen aufeinander abstimmen

Besicomm Leistungserfassung

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

Software Engineering II (IB) Testen von Software / Modultests

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Testen - Konzepte und Techniken

Prozess-Modelle für die Softwareentwicklung

Lieber SPAMRobin -Kunde!

Fragebogen zur Anforderungsanalyse

Das Persönliche Budget in verständlicher Sprache

BSV Ludwigsburg Erstellung einer neuen Internetseite

Performance Analyse in einem komplexen Softwaresystem Gebhard Ebeling

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Einführung und Motivation

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

IKP Uni Bonn Medienpraxis EDV II Internet Projekt

Test-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

Theoretische Grundlagen der Informatik WS 09/10

Software - Testung ETIS SS05

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

Anleitung. Schritt für Schritt: iphone und ipad. Richten Sie Ihr -Konto mit Ihrem iphone oder ipad Schritt für Schritt ein.

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

Online Schulung Anmerkungen zur Durchführung

Die Softwareentwicklungsphasen!

Organisation des Qualitätsmanagements

Wie oft soll ich essen?

Was meinen die Leute eigentlich mit: Grexit?

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

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert.

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

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Die Gesellschaftsformen

Mitarbeiterbefragung als PE- und OE-Instrument

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

Firewalls für Lexware Info Service konfigurieren

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Firewalls für Lexware Info Service konfigurieren

Zusammenfassung der Testarten

Fallbeispiel. Auswahl und Evaluierung eines Software- Lokalisierungstools. Tekom Herbsttagung 2004 Angelika Zerfaß

HP Software für SAP Solutions

2. Psychologische Fragen. Nicht genannt.

Effizienzsteigerung von Softwaretests durch Automatisierung

Agile Enterprise Development. Sind Sie bereit für den nächsten Schritt?

Die integrierte Zeiterfassung. Das innovative Softwarekonzept

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Programmiertechnik II

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

Transkript:

Software Testen 2.0 VL Software Testen VO2 2009W http://www.inso.tuwien.ac.at/lectures/software_testen INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien

Folie: 2 Lernziele Ziele und Grundsätze des Softwaretests: Was sind die Ziele und Nicht-Ziele des Softwaretests? Test- und Integrationsstufen: Warum sind Test und Integration in Software-Projekten stufenweise organisiert und was sind die Ziele der einzelnen Stufen? Funktionale und nichtfunktionale Testmethoden: Welche Methoden unterstützen mich beim Testentwurf, um eine möglichst hohe Testabdeckung zu erreichen? Testautomatisierung: Wann und wie setze ich Testautomatisierung richtig ein? Testprozess: Wie plane und organisiere ich Softwaretests im Rahmen des Entwicklungsprozesses?

Folie: 3 Ziele des Softwaretests 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 3. Beim Softwaretest sollen Fehler von Programmen identifiziert werden. 4. Wenn ein Test einen Fehler gefunden hat, war er erfolgreich

Folie: 4 Grundsätze des Softwaretests (nach ISTQB) 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 5. Grundsatz: Wiederholungen haben keine Wirksamkeit 6. Grundsatz: Testen ist abhängig vom Umfeld 7. Grundsatz: Trugschluss: Keine Fehler bedeutet ein brauchbares System

Folie: 5 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

Testen in der iterativen Entwicklung - Typische Teststufen 6

Fehlermanagement 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

Folie: 8 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

Folie: 9 Integrationstest 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

Folie: 10 Integrationstest cont. Bottom-Up-Integrationstests vs. Top-Down- Integrationstests

Folie: 11 Systemtest 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

Folie: 12 Akzeptanztest 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)

Typische Quellen für Testfälle 13

Folie: 14 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)

Strukturelle 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

Funktionale Methoden Ä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 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) 17

Zustandsbasierte Methoden Zustandsbasierte Testmethoden Basieren auf Zustandsautomaten, die oft als UML-Zustandsdiagramme oder Prozessgrafiken dargestellt werden Coverage: State-Coverage, Transition-Coverage, Event-Coverage, Path-Coverage 18

Funktionale Methoden 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.

Beispiel Klassifikationsbaummethode im CTE 20

Informelle Testmethoden 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

Nichtfunktionale Softwaretests 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 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

Testautomatisierung 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 25

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

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)

Automatisierte GUI-Tests 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 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