Husain Aljazzar, Software Engineering, Universität Konstanz

Slides:



Advertisements
Ähnliche Präsentationen
Durch Softwareprüfung zu Produktqualität
Advertisements

Prüfung objektorientierter Programme -1
Integrations- und Funktionstests im Rahmen des V-Modelles
Submodell Softwareentwicklung (SE)
Phasen und ihre Workflows
Qualitätssicherung von Software (SWQS)
Die Softwarelebenszyklen
Testplanung.
Produktmodelle im Service Engineering
Evaluierung und Implementierung der Automated Test Life-Cycle Methodology (ATLM) am Beispiel der IT3-Software Vorträger: Ling Yan.
Sequenzdiagramm.
Prof. Dr. Holger Schlingloff
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Qualitätssicherung von Software
Qualitätssicherung von Software
Dynamische Testverfahren
Universität Stuttgart Institut für Kernenergetik und Energiesysteme MuSofT LE Capability Maturity Model Tailoring Tailoring bedeutet ungefähr: Maßschneidern.
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.
Was ist und wie prüft man Qualität
Erfahrungen aus Tests komplexer Systeme
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Einzeltests im Rahmen des V-Modelles Aufgaben Überprüfung des Programmcodes mit Hilfe.
Prüfung von SW-Komponenten – Überblick
Funktionalität Vorhandensein vor Funktionen mit festgelegten Eigenschaften. Diese Funktionen erfüllen die definierten Anforderungen. Richtigkeit - Liefern.
Schulung der Mitarbeiter
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Die SE Umgebung des Jahres 2003 am IKE Elemente der SE Umgebung –Omondo als Casetool.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Testgetriebene Entwicklung
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 LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 1 Durch Softwareprüfung zu Produktqualität.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme System- und Abnahmetests Inhalt Testen des Systems unter Mitwirkung des Auftraggebers.
RUP-Elemente (Schlüsselkonzepte)
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,
Testen, Analysieren und Verifizieren von Software
Nicht-Lineare Regression
Deklaratives Debugging (Seminar Software Engineering) Tim Sender Deklaratives Debugging Seminar Software Engineering.
Rational Unified Process (RUP) - Definitionen
Der Testprozess als Bestandteil des SE Prozesses:
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
Software Risk Evaluation Method (SRE)
eXtreme Programming (XP)
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan: m : Anforderungsanalyse Dokument m :
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Anpassung des RUP an ein konkretes Projekt - 1
Vorgehensmodelle: Schwergewichtige Modelle
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Spezifikation von Anforderungen
Software-Projektführung
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Portfolio des Competence Center ECS
grundlagen der Wirtschafts- informatik
Agenda 13: Begrüßung & Einführung in das Thema
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Wilhelm Klein, März 2010 Entwickeln mit Methode Projekt Manager Projektplanung Steuerung und Kontrolle Bereitstellung (Hardware und Software) Qualitätssicherung.
Wasserfallmodell und Einzelbegriffe
HFWI System Development Teil B Der Softwareentwicklungsprozess
PRO:CONTROL Ziel des Moduls Arbeitspakete
TDD mit MSTest Stefan Lieser
Unified Process Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Planung von Softwareprojekten Dozent: Christoph Stollwerk WS 2014/2015.
Gegenstand der Psychologie
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Software - Testung ETIS SS05.
Performanz- und Lasttests Formale Methoden
Semesterprojekt Präsentation Thema 1 Test-Arten
Formale Methoden Semesterprojekt Präsentation Thema 1 Test-Arten Fernstudium Master WI, MWI 10F Jan te Kock,
© Till Hänisch, 2002 BA Heidenheim Vorgehensmodelle Wie entsteht Software ?
SEMINARVORTRAG Von Jonas Robers METHODEN UND TOOLS ZUR ERFASSUNG VON TESTFÄLLEN.
Software-Delivery auf Knopfdruck IBM Cloud & DevOps.
 Präsentation transkript:

Husain Aljazzar, Software Engineering, Universität Konstanz Software-Testen Husain Aljazzar Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Notationen Störfall (= Ausfall, Versagen – Engl. failure): jegliche Abweichung des beobachteten Verhaltens vom spezifizierten Verhalten. Defekt (= Fehler, Bug – Engl. fault): die mechanische oder algorithmische Ursache zu einem Störfall. Husain Aljazzar, Software Engineering, Universität Konstanz

Software-Qualitätssicherung Fehlervermeidungstechniken versuchen zu verhindern, dass Defekte in das System eingebaut werden, z.B. Verifikation. Fehlerentdeckungstechniken unterstützen das Aufspüren von Fehlern in dem System, z.B. Überprüfung und Testen. Fehlertoleranztechniken unterstellen, dass ein System Systemstörfälle trotz Defekte zur Laufzeit vermeiden kann, z.B. redundante Systeme. Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Überprüfung Inspektion (Engl. Inspection) Durchgang (Engl. Walk-through) Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Testen Testen ist eine Fehlerentdeckungstechnik, in der das implementierte SW-System mit verschiedenen Eingaben getestet wird. In den Entwicklungsphasen wird versucht Störfälle zu verursachen um Defekte aufzudecken.  Ein guter Test ist ein Test, der möglichst viele Fehler identifiziert. Nach der Entwicklung wird versucht zu zeigen, dass das implementierte SW-System die Anforderungen erfüllt (keine Störfälle bzw. Defekte enthält) Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Testen Definitionen Testen ist der systematische Versuch, in der implementierten Software, Defekte auf geplante Weise zu finden. Testen ist das Verfahren, in dem gezeigt wird, dass keine Defekte vorhanden sind. Was ist der Unterschied zwischen den beiden Definitionen? Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Test-Konzepte Testkomponente, Testling: die zu testende SW-Komponente Testfall: eine Reihe von Eingaben und erwarteten Ergebnissen, die eingesetzt wird, um Störfälle zu verursachen und Defekte aufzudecken. Testsuite (oder Testsequenz): eine Reihe von Testfällen Testabschnitt: eine Reihe von Testsuites, die in einer Testumgebung ausgeführt werden können. Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Test-Konzepte Teststumpf, Platzhalter (Engl. Test Stub): eine Komponente, von der der Testling abhängt. Testtreiber: eine Komponente, die einen Testrahmen zur Verfügung stellt, der die Interaktion mit dem Testling ermöglicht. Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Arten des Testens Modultest (unit testing) Integrationstest (integration testing) Systemtest (system testing) Abnahmetest oder auch Kunden-Akzeptanztest genannt (acceptance test) Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Arten des Testens Modultest Testen eines einzelnen Moduls (z.B. eine Java-Klasse einschließlich Hilfsklassen) I.d.R. wird pro Testfall eine Methode des Moduls getestet. Integrationstest Mehrere Komponenten werden zusammengetestet. Ziel: Auffinden von Fehlern beim Zusammenspiel von individuell bereits getesteten Komponenten. Systemtest Testen des gesamten Systems als eine Einheit Ziel ist es, Fehler bezüglich der Anforderungen zu identifizieren. Abnahmetest Eine besondere Ausprägung des Systemtests Unter Beobachtung, Mitwirkung oder Führung des Kunden Evtl. mit echten Daten In der realen bzw. realitätsnahen Einsatzumgebung Ziel ist es zu zeigen, dass das implementierte System die Anforderungen erfüllt (keine Defekte bzw. Störfälle enthält) Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Testprozess Oft gemeinsam in einem Dokument Testplanung Testplan Testvorschrift Testdokumentation Testdurchführung Testbericht Husain Aljazzar, Software Engineering, Universität Konstanz

Testdokumentation – Testplan Verwaltungstechnische Gesichtspunkte des Testens Zielrichtung Vorgehensweise Budget Zeitplan Personalplan Hardware-Ressourcen Dokumentiert welche Anforderungen und Komponenten sollen getestet werden. Husain Aljazzar, Software Engineering, Universität Konstanz

Testdokumentation – Testvorschrift Beschreibung der Testfälle der Arbeit zur Vorbereitung der Testumgebung Festlegung der Testreihenfolge (Testsuites, Testabschnitte) Vorlage: Balzert, Lehrbuch der Software-Technik – Band 2, Seite 549 Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Eigentlich ist das eine Vorlage für eine vereinigtes Dokument mit dem Testplan und der Testvorschrift! Husain Aljazzar, Software Engineering, Universität Konstanz

Testdokumentation – Beschreibung eines Testfalls Testfallbezeichner Testobjekte (Im Systemtest: der Bezeichner des Systems) Eingabespezifikation Ausgabespezifikation Berechnet von Hand oder durch das zu ersetzende System (Oracle) Umgebungserfordernisse Hardware- und Software-Konfiguration, Testtreiber, etc… Besondere prozedurale Anforderungen Einschränkungen, Zeitlimits, … Abhängigkeit zwischen Fällen Husain Aljazzar, Software Engineering, Universität Konstanz

Testdokumentation – Testbericht Testzusammenfassung Eine Übersicht über den Test Testprotokoll Enthält die Ergebnisse aller Testläufe I.d.R. entsteht durch Ergänzung der Testvorschrift mit den Ergebnissen. Liste der Problemmeldungen Eine Liste der gefundenen Störfälle Liste der SW-Komponenten Liste der getesteten Komponenten Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Modultest Planung: nach dem Feinentwurf bzw. vor der Implementierung Dokument: Modultestplan + Modultestvorschrift Durchführung: nach der Implementierung Dokument: Modultestbericht Framework für Modeltest ist JUnit In unserem Projekt ist ein systematisches Modultesten nicht zwingend aber empfohlen. Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Integrationstest Planung nach dem Feinentwurf, vor der Modultestplanung Dokument: Integrationstestplan einschließlich Integrationsstrategie + Integrationstestvorschrift Durchführung: Bei der Modulintegration, d.h. nach dem Modultest Dokument: Inegrationstestbericht Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Systemtest Planung nach der Anforderungsanalyse vor dem Entwurf Dokument: systemtestplan + Systemtestvorschrift Durchführung: Nach der Systemintegration vor der Lieferung Dokument: Systemtestbericht Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Abnahmetest Planung nach der Anforderungsanalyse vor dem Entwurf Dokument: Abnahmetestplan + Abnahmetestvorschrift Durchführung: Nach dem Systemtest bei der Lieferung Dokument: Abnahmetestbericht Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz In D1 am Freitag 04.05.2007 Systemtestplanung Systemtestplan Systemtestvorschrift Abnahmetestplanung Abnahmetestplan Abnahmetestvorschrift Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Systemtest Funktionstest findet Unterschiede zwischen den funktionalen Anforderungen und dem implementierten System. Testfälle werden aus dem Anwendungsfallmodell (Use-Cases-Model) abgeleitet. Leistungstest überprüft der Leistungsanforderungen (performance requirements) Testfälle werden aus dem Pflichtenheft abgeleitet Härtetest testet das System in Stresssituationen Volumentest testet den Speicherverbrauch des Systems Sicherheitstest testet die Sicherheitsaspekte im System Zeitvorgabentest testet Antwortzeiten des System Erholungstest testet die Fähigkeit des Systems, sich von Fehlerzuständen zu erholen. Husain Aljazzar, Software Engineering, Universität Konstanz

Herausforderung des Testens Es ist unmöglich ein SW-System vollständig zu testen. Unentscheidbares Problem Zeit- und Kostenbeschränkungen  Auswahl von Testfällen Husain Aljazzar, Software Engineering, Universität Konstanz

Auswahl von Systemtestfällen Testfälle werden aus den Anwendungsfällen abgeleitet. Interessante Testfälle sind Anwendungsfallinstanzen (Szenarien), die für den Benutzer von Bedeutung sind und mit hoher Wahrscheinlichkeit zum Aufdecken vieler Fehler führen. Wie findet man solche Testfälle: Äquivalenztest Grenztest Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Äquivalenztest Ziel: Minimierung der Anzahl der Testfälle Annahme: Bei „ähnlichen“ Eingaben verhält sich das System ähnlich. Alle möglichen Eingaben werden in Äquivalenzklassen aufgeteilt. Aus jeder Äquivalenzklasse wird ein Testfall ausgewählt. Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Äquivalenztest Bestimmung der Äquivalenzklassen Kriterien Abdeckung und Disjunktion: Jede mögliche Eingabe gehört zu genau einer Äquivalenzklasse Repräsentation: Wenn eine Eingabe einer Klasse zu einem Störfall führt, dann führen alle Eingaben dieser Klasse zu diesem Störfall. Es gibt immer mindestens zwei Äquivalenzklassen: Gültige Eingaben Ungültige Eingaben Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Beispiel Mögliche Äquivalenzklassen im Studienberatungssystem: Registrierung von Benutzern Registrierung eines Studenten bzw. Administrators Gültige bzw. ungültige Registrierungsdaten Anmeldung von Benutzern Gültige bzw. ungültige Anmeldung Planung eines IE-Bachelor-Studiums … Planung eines IE-Master-Studiums Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Grenztest Eine spezielle Art des Äquivalenztests, bei der die Testfälle an den Grenzen der Äquivalenzklassen ausgewählt werden. Annahme: Sonderfälle werden oft bei der Entwicklung übersehen, z.B. Registrierung des ersten Studenten bzw. Administrators Die erstmalige Anmeldung eines Benutzers Planung der letzten Prüfung Abdecken eines Themengebiets Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Korrektur Testen deckt Störfälle auf aber nicht automatisch die verursachende Defekte (Bugs). Debugging (Fehlersuche): Falls ein Test einen Störfall aufdeckt, muss der Entwickler das Testobjekt untersuchen, um die Ursache zu finden Korrektur: Eine Änderung, die den Defekt behebt. Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Regressionstest Wenn ein Defekt korrigiert wir, kann durch die entsprechende Änderung andere Störfälle verursacht werden Wiederholen des durchgeführten Tests Husain Aljazzar, Software Engineering, Universität Konstanz

Husain Aljazzar, Software Engineering, Universität Konstanz Abnahmetest Das Ziel ist zu zeigen, dass das implementierte System die Anforderungen erfüllt. Abnahmetest basiert auf Definition 2 des Testens Testen ist das Verfahren, in dem gezeigt wird, dass keine Defekte vorhanden sind. Erfolgt unter Führung des Kunden. Testfälle Aus normalen Betrieb Teilmenge aus dem Systemtest Testfälle für die Verarbeitung der Geschäftsvorgänge einer typischen Zeitperiode, z.B. Semester, ganzes Studium Abnahmetest muss im Auftrag (bei der Abgabe des Pflichtenheft) festgelegt werden. Husain Aljazzar, Software Engineering, Universität Konstanz

Prinzipien des SW-Testens Testen ist der Prozess sowohl zur Aufdeckung von Defekten als auch zur Bewertung der SW-Qualität. Ein guter Testfall ist einer, der mit guter Wahrscheinlichkeit zum Aufdecken möglichst vieler neuer Defekte führt. Testergebnisse müssen genau analysiert werden Testfallbeschreibung muss das zu erwartende Ergebnis spezifizieren Testfälle sollen sowohl gültige als auch ungültige Eingaben abdecken Die Wahrscheinlichkeit, dass unaufgedeckte Defekte noch existieren, ist proportional zur Anzahl der bereit aufgedeckten Defekte Der Test soll von einem Team durchgeführt, das möglichst unabhängig vom Entwicklungsteam ist. (In unserem Projekt ist dieses schwer einzuhalten) Tests sollen wiederholbar und wiederverwendbar sein. Testen soll geplant werden. Testaktivitäten sollen in den SW-Entwicklungsprozess integriert werden. Testen ist eine kreative und anspruchsvolle Tätigkeit. Husain Aljazzar, Software Engineering, Universität Konstanz

System- und Abnahmetest im Studienberatungssystem Nach der Definition der Anforderungen Erstellung eines Testplans für Systemtest Zeiteinteilung, welche Merkmale sollen getestet werden, Hardware, wer test was? Erstellung einer Systemtestvorschrift Auswahl von Testfällen Nach der Planung des Systemtests Verhandelt mit dem Gruppenbetreuer über den Abnahmetest: Termin, Dauer, welche Szenarien, etc… Husain Aljazzar, Software Engineering, Universität Konstanz