1 / 33

Software-Testen

Software-Testen. Husain Aljazzar. 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.

ollie
Télécharger la présentation

Software-Testen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  25. Ä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

  26. Ä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

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

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

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

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

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

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

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

More Related