Wieso ist das Austesten nicht möglich?
Schon das Testen von einfachen Programmen kann aufgrund des Zustandsraumes schwierig ein. Ein Programm mit 3 ganzzahligen 16-Bit-Eingabewerten hätte 2⁴⁸ mögliche Ausführungen, was bei 100.000 Testfällen pro Sekunde eine Testdauer von 90 Jahren ergibt.
Was ist ein Mangel?
Anforderung / berechtigte Erwartung nicht angemessen erfüllt
Nichtkonformität bzgl. beabsichtigtem oder festgelegtem Gebrauch
Was ist ein Fehler?
Nichterfüllung einer festgelegten Anforderung
Was ist eine Fehlerwirkung (failure)?
Ein Ereignis in welchem eine Komponente oder ein System eine geforderte Funktion nicht im spezifizierten Rahmen ausführt.
Wirkung eines Fehlerzustands, die nach *außen* sichtbar auftritt.
Abweichung zwischen erwartetem Ergebnis und Istergebnis.
Was ist ein Fehlerzustand?
Eine Unzulänglichkeit oder ein Mangeln in einem Arbeitsergebnis, sodass es seine Anforderungen oder Spezifikation nicht erfüllt.
Inkorrektes Teilprogramm; inkorrekte Anweisung, inkorrekte Datendefinition
Was ist ein Defekt?
Das gleiche wie Fehlerzustand (defect).
Was ist eine Fehlhandlung?
Die menschliche Handlung, die zu einem falschen Ergebnis führt.
Die menschliche Handlung: Entwicker: führt zu Fehlerzustand in der Software; Anwender: Fehlbedienung mit unterwünschtem Ergebnis
Unwissentlich, versehentlich oder absichtlich ausgeführte Handlung oder Unterlassung, die ggf. zu einer Beeinträchtigung der Softwarefunktion führt
Was sind die (Haupt-)Qualitätsmerkmale nach dem ISO-Qualitätsmodell?
Was sind die allgemeinen Zielsetzungen und Grundsätze des Testens?
Warum ist Testen Teil der Qualitätssicherung?
Wie trägt Test zu einer höheren Qualität bei?
Testen misst die Qualität: z. B. anhand der Anzahl gefundener Fehlerwirkungen
Testen erhöht indirekt die Qualität: da Fehler/zustände) vor der Auslieferung entdeckt und korrigiert werden können.
Test erhöht indirekt die Prozessqualität: da Fehler dokumentiert, analysiert und damit Fehlhandlungen in Zukunft vermieden werden können.
Testen erhöht das Vertrauen in die Qualität des Systems: wenn wenige oder keine Fehler gefunden werden.
Was ist der Unterschied zwischen Testen und Debugging?
Wie ist der Testprozess aufgebaut?
Testplanung
Testüberwachung und -steuerung
Testanalyse
Testentwurf
Testrealisierung
Testdruchführung
Testabschluss
Was bedeutet Rückverfolgbarkeit im Kontext des Testens?
Der Grad, zu dem eine Beziehung zwischen mehreren Arbeitsergebnissen hergestellt werden kann.
Was ist eine Testbasis?
Welche psychologischen Probleme gibt es beim Testen?
Warum ist Testen notwendig?
Was sind die sieben Grundsätze des Testens?
Was sind die Auswirkungen des Kontextes auf den Testprozess?
Warum ist die Rückverfolgbarkeit zwischen Testbasis und Testarbeitsergebnissen wichtig?
Bewertung der Testüberdeckung
Auswirkungsanalyse von Änderungen
Nachvollziehbarkeit von Tests
Verständlichkeit von Testfortschrittsberichten und Testabschlussberichten verbessern
IT-Governance-Kriterien erfüllen
Wie sieht die Ursachenkette für Fehler aus?
Fehlhandlung einer Person (error) -> Fehlerzustand (defect) -> Fehlerwirkung (failure)
Was ist Testen?
Der Prozess, der aus allen Aktivitäten des Lebenszyklus besteht (sowohl statisch als auch dynamisch), die sich mit
• der Planung,
• Vorbereitung
• Implementierung [Anm.: fehlt in den Folien] und
• Bewertung
eines Softwareprodukts und dazugehöriger Arbeitsergebnisse befassen.
Was sind Ziele des Testprozesses?
Sicherstellen, dass alle Arbeitsergebnisse im Testprozess
• allen festgelegten Anforderungen genügen,
• ihren Zweck erfüllen und
• etwaige Fehlerzustände finden.
Mögliche weitere Ziel des Testens:
– Arbeitsergebnisse bewerten: Anforderungen, User- Stories, Architekturdesign und Code
– Vollständigkeit des Testobjekts prüfen
– Fehlerzustände vermeiden
– Die Risikostufe mangelhafter Softwarequalität reduzieren (z.B. für unentdeckte Fehlerwirkungen)
– Validieren des Testobjekts gegen Erwartungen der Stakeholder
– Den Stakeholdern Informationen für fundierte Entscheidungen geben, insbesondere bezüglich des Qualitätsniveaus des Testobjekts
– Vertrauen in das Qualitätsniveau der Software schaffen
Was bedeutet Validierung?
Bestätigung durch Bereitstellung eines objektiven Nachweises, dass die Anforderungen für einen spezifischen beabsichtigten Gebrauch oder eine spezifische beabsichtigte Anwendung erfüllt worden sind.
Was bedeutet Verifizierung/Verifikation?
Bestätigung durch Bereitstellung eines objektiven Nachweises, dass festgelegte Anforderungen erfüllt worden sind.
Haben wir das System richtig realisiert?
Was ist Qualität?
Der Grad, in dem ein System, eine Komponente oder ein Prozess die Kundenerwartungen und -bedürfnisse erfüllt.
Der Grad, in dem ein Satz inhärenter Merkmale Anforderungen erfüllt.
Was ist Softwarequalität?
Gesamtheit der Funktionalitäten und Merkmale eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen.
Qualitätsmerkmale beziehen sich auf funktionale und nicht-funktionale Anforderungen
Welche Produkt-Qualitätsmerkmale gibt es nach ISO 25010?
Funktionalität
Zuverlässigkeit
Gebrauchstauglichkeit
(Informations-)Sicherheit
Kompatibilität
Übertragbarkeit
Änderbarkeit
Performanz / Effizienz
Was bedeutet das Qualitätsmerkmal Funktionalität und welche Untermerkmale gehören dazu?
Bedeutung: Vorhandensein von Funktionen, die festgelegte Anforderungen erfüllen
Angemessenheit: Die Fähigkeit eines Softwareprodukts für spezifizierte Aufgaben und Zielsetzungen der Benutzer einen geeigneten Satz Funktionen zu liefern.
Genauigkeit: Die Fähigkeit eines Softwareprodukts, die richtigen oder vereinbarten Ergebnisse oder Wirkungen mit dem benötigten Grad an Genauigkeit zu liefern.
Was bedeutet das Qualitätsmerkmal Zuverlässigkeit und welche Untermerkmale gehören dazu?
Bedeutung: Der Grad, zu dem spezifizierte Funktionen unter den festgelegten Bedingungen oder während einer bestimmten Zeitspanne ausgeführt werden.
Reife: System erfüllt die Anforderungen an die Zuverlässigkeit im Normalbetrieb
Fehlertoleranz: System erhält ein spezifiziertes Leistungsniveau auch bei Fehlfunktionen oder trotz Fehleingaben (z. B. falsche Bedienung) aufrecht.
Wiederherstellbarkeit: System stellt bei einer Fehlerwirkung das spezifizierte Leistungsniveau wieder her und gewinnt die direkt betroffenen Daten wieder
Was bedeutet das Qualitätsmerkmal Gebrauchstauglichkeit und welche Untermerkmale gehören dazu?
Bedeutung: Der grad, zu dem ein System genutzt werden kann. – durch bestimmte Benutzer, – in einem bestimmten Nutzungskontext, – um festgelegte Ziele effektiv, effizient und zufriedenstellend zu erreichen.
Verständlichkeit: Merkmale von Software, die sich auf den Aufwand für den Benutzer beziehen, das Konzept und die Anwendung zu verstehen.
Erlernbarkeit: Merkmale von Software, die sich auf den Aufwand für den Benutzer beziehen, die Anwendung zu erlernen.
Bedienbarkeit: Merkmale von Software, die sich auf den Aufwand für den Benutzer beziehen, der bei der Bedienung und Ablaufsteuerung entsteht.
Was bedeutet das Qualitätsmerkmal Sicherheit und welche Untermerkmale gehören dazu?
Bedeutung: Merkmale von Software, die sich auf ihre Eignung beziehen, unberechtigten Zugriff, sowohl versehentlich als auch vorsätzlich, auf Programme und Daten zu verhindern.
Vertraulichkeit: Merkmale von Software, bestimmte Informationen nur einem eingeschränkten Empfängerkreis zugänglich zu machen
Integrität: Merkmale von Software, alle Funktionen ohne unbeabsichtigte Nebenwirkungen durchzuführen
Authentizität: Merkmale von Software, ihren Ursprung korrekten zu belegen (Signaturen, Prüfsummen)
Was bedeutet das Qualitätsmerkmal Kompatibilität und welche Untermerkmale gehören dazu?
Bedeutung: ? [Anm.: ggf. im Glossar nachschlagen]
Interoperabilität (1/3): Merkmale von Software, die sich auf ihre Eignung beziehen, mit vorgegebenen Systemen zusammenzuwirken.
Interoperabilität (2/3): Die Fähigkeit eines Softwareprodukts, mit einer oder mehreren spezifizierten Komponenten zusammenzuwirken
Interoperabilität (3/3): Der Grad, zu dem zwei oder mehr Komponenten oder Systeme Informationen austauschen und diese nutzen können.
Was bedeutet das Qualitätsmerkmal Übertragbarkeit und welche Untermerkmale gehören dazu?
Bedeutung: Merkmale, die sich auf die Eignung der Software beziehen, von einer Umgebung in eine andere übertragen zu werden.
Anpassbarkeit: Der Grad, zu dem eine Komponente oder ein System auf unterschiedliche oder sich weiterentwickelnde Hardware- und Softwareumgebungen angepasst werden kann.
Installierbarkeit: Die Fähigkeit eines Softwareprodukts, in einer spezifizierten Umgebung installierbar zu sein
Konformität: Die Fähigkeit eines Softwareprodukts, anwendungsspezifische Normen oder Vereinbarungen oder gesetzliche Bestimmungen und ähnliche Vorschriften zu erfüllen.
Austauschbarkeit: Die Fähigkeit eines Softwareprodukts, an Stelle einer anderen spezifizierten Software zum selben Zweck in der gleichen Umgebung genutzt zu werden.
Was bedeutet das Qualitätsmerkmal Änderbarkeit und welche Untermerkmale gehören dazu?
Bedeutung: Merkmale, die sich auf den Aufwand beziehen, der zur Durchführung vorgegebener Änderungen notwendig ist.
Analysierbarkeit: Der Grad, zu dem für eine Komponente oder ein System die Auswirkungen beabsichtiger Änderungen bewertet, die Ursachen von Mängeln oder Fehlerwirkungen diagnostiziert, oder die zu ändernden Teile identifiziert werden können.
Modifizierbarkeit: Die Fähigkeit eines Softwareprodukts, die Durchführung spezifizierter Änderungen zu ermöglichen
Stabilität: Der Grad, zu dem eine Komponente oder System effektiv und effizient geändert werden kann, ohne dabei Fehlerzustände einzubauen oder die Qualität zu mindern.
Testbarkeit: Der Grad der Effektivität und Effizienz, zu dem Tests für eine Komponente oder ein System entworfen und durchgeführt werden können.
Was bedeutet das Qualitätsmerkmal Performanz/Effizienz und welche Untermerkmale gehören dazu?
Performanz: Der Grad, zu dem eine Komponente oder ein System Zeit, Ressourcen und Kapazität verbraucht während sie/es seine vorgesehenen Funktionen ausführt.
Effizienz: Eingesetzte Mittel im Verhältnis zu dem Ausmaß, in dem Benutzer spezifische Ziele erreichen.
Untermerkmale: Zeitverhalten, Verbrauchsverhalten, Kapazität, ...
Was sind die 7 Grundsätze des Testens?
Grundsatz 1: Test zeigt die Anwesenheit von Fehlerzuständen, nicht deren Abwesenheit.
Grundsatz 2: Vollständiges Testen ist nicht möglich.
Grundsatz 3: Frühes Testen spart Zeit und Geld
Grundsatz 4: Häufung von Fehlerzuständen
Grundsatz 5: Vorsicht vor dem Pestizid-Paradoxon
Grundsatz 6: Testen ist kontextabhängig
Grundsatz 7: Trugschluss: "Keine Fehler" bedeutet ein brauchbares System.
Wie sollte man Tests priorisieren?
Bottom line: Prioritise tests so that whenever you stop testing, you have done the best testing in the time available.
Wie ist das V-Modell aufgebaut?
Was ist der Testprozess?
Menge der Testaktivitäten
eigenständiger Prozess
eng verzahnt mit Softwareentwicklung
Was ist eine Teststrategie?
Welche Testaktivitäten im Testprozess?
Einsatz der Aktivitäten
Wann finden welche Aktivitäten statt?
Welche kontextabhängige Faktoren, können den Testprozess beeinflussen?
Verwendetes Softwareentwicklungslebenszyklus-Modell
Mögliche Teststuffen und Testarten
Produkt- und Projektrisiken
Geschäftsbereich
Betriebliche Restriktionen (Budget, Ressourcen, Komplexität, Deadlines, Fristen, vertragliche und regulatorische Anforderungen).
Richtlinien und Praktiken des jeweiligen Unternehmens
Geforderte interne und externe Standards
Wie ist der Testprozess aufgebaut und welche Aktivitäten sind enthalten?
Was macht man bei der Testplanung?
Festlegung der Teststrategie: Testziele, Umfang, Risiken des Testens festlegen, Testvorgehensweise spezifizieren (Techniken, Testobjekte, Überdeckung, Testmittel, ...)
Detaillierung der Testplanung (Testressourcen, Intensivität, Testverfahren, Endekriterien, Priorisierung, Werkzeuge)
Testplanung und Teststrategie im (Master-)testkonzept festhalten
Was ist ein Testkonzept und was soll es üblicherweise enthalten?
Testkonzept (1/2): Informationen über Testbasis, auf die sich die anderen Testarbeitsergebnisse via Rückverfolgbarkeitsinformationen beziehen werden
Testkonzept (2/2): Endekriterien, die während der Testüberwachung und -steuerung genutzt werden.
Inhalte: Hintergrund/Testziele, Referenzierte Dokumente, Testvorgehensweise, Berichterstattung, Abhängigkeiten, Endekriterien, ...
Was macht man bei der Testüberwachung und -steuerung?
Testüberwachung: Fortschrittsüberwachung (bzgl. Testplanung), Nutzung von Überwachungsmetriken und Endekriterien (definiert im Testkonzept)
Teststeuerung: Ergreifung notwendiger Maßnahmen zur Erreichung der Ziele, die im Testkonzept definiert wurden
Arbeitsergebnisse: Testfortschrittsbericht, Testabschlussberichte
Was macht man bei der Testanalyse?
Testanalyse: "Was wird getestet?"
Review der Testbasis (Anforderungen, Architektur, Entwurf, Schnittstellen, ...)
Bewertung der Testbarkeit von Anforderungen und System
Risikoanalyse
Identifikation von Features und Feature-Sets, die getestet werden müssen
Detaillierung ovn Testzielen zu konkreten Testbedingungen
Definition und Priorisierung der Testbedingungen für jedes Feature
Erfassung von bidirektionaler Rückverfolgbarkeit zwischen jedem Element der Testbasis und den zugehörigen Testbedingungen
Arbeitsergebnisse: definierte/priorisierte Testbedingungen, Rückverfolgbarkeit von Testbedingungen und Testbasis
Was macht man beim Testentwurf?
Testentwurf: "Wie wird es getestet?"
Testentwurfsverfahren: Spezifikation von (Mengen von) Testfällen
Priorisierung von (Mengen von) Testfällen
Identifizierung von notwendigen Testdaten
Entwurf der Testumgebung (Infrastruktur, Werkzeuge, ...).
Sicherstellung der Rückverfolgbarkeit
Definition von Testfällen, u. a. Definition von Vorbedingungen, erwartetem Ergebnis und Nachbedingung
Entwurf der Testumgebung
Identifizierung der Infrastruktur und Werkzeuge
Was macht man bei der Testrealisierung?
Testrealisierung: "Ist alles für die Durchführung der Tests bereit?"
Entwicklung und Priorisierung von Testabläufen
Zusammenstellung/Erstellung der Testsuiten aus den Testabläufen
Anordnen der Testsuiten innerhalb eines Testausführungsplans
Aufbau der Testumgebung
Verifizierung, dass alles, was benötigt wird, korrekt aufgesetzt ist
Vorbereitung von Testdaten und Sicherstellung, dass sie ordnungsgemäß in die Testumgebung geladen sind
Verifizierung und Aktualisierung der bidirektionalen Rückverfolgbarkeit
Die Erstellung automatisierter Testskripte
Welche Arbeitsergebnisse resultieren aus der Testrealisierung?
Testabläufe und die Aneinanderreihung dieser Testabläufe
Testsuiten: mehrere Testfälle, bei der die Nachbedingungen des einen Tests die Vorbedingungen des folgenden Tests erfüllen
Testausführungsplan: Plan für die Ausführung von Testabläufen & Testabläufe mit ihrem Kontext
Was macht man bei der Testdurchführung?
Testdurchführung: Testsuiten entsprechend des Testausführungsplan durchführen.
Aufzeichnung der IDs und Versionen der Testelemente des Testobjekts, der Testwerkzeuge und Testmittel
Durchführung der Tests entweder manuell oder durch Nutzung von Testausführungswerkzeugen
Vergleich der Istergebnisse mit den erwarteten Ergebnissen
Fehlerschweregrad (Fehlerklasse) bestimmten
Priorität für die Beseitigung festlegen
Ursachenanalyse der Anomalien (z. B. Fehlerzustände im Code, Fehler im Testfall, falsch positive Ergebnisse, fehlerhafte Testumgebung)
Bericht über Fehlerzustände auf Grundlage der beobachteten Fehlerwirkungen
Aufzeichnung der Ergebnisse der Testdurchführung (z. B. bestanden, fehlgeschlagen, blockiert)
Wiederholung von Testaktivitäten (z.B. korrigierter Test, Fehlernachtests, Regressionstests)
Verifizierung und Aktualisierung der bidirektionalen Rückverfolgbarkeit zwischen Test{basis,bedingungen,fällen,abläufen,ergebnissen}.
Testende erreicht?
Überdeckungsgrad erreicht? (Problem: unerreichbarer Programmcode)
Welche Arbeitsergebnisse resultieren aus der Testdurchführung?
Dokumentation des Status individueller Testfälle oder Testabläufe (z. B. ausführbar, bestanden, fehlgeschlagen, blockiert, geplant, ausgelassen usw.)
Ggfs. Fehlerberichte
Testprotokoll (1/4): Was wurde wann, von wem, wie intensiv und mit welchem Ergebnis getestet?
Testprotokoll (2/4): Testdurchführung muss auch für nicht beteiligte Personen nachvollziehbar sein
Testprotokoll (3/4): genutzt Testelemente, Testwerkzeuge und Testmittel
Testprotokoll (4/4): Auswertung mit Hinblick auf die im Testkonzept festgelegten Endekriterien
Nachweis, ob die geplante Teststrategie tatsächlich umgesetzt wurde
Weiterer Aufwand gerechtfertigt?: Faktoren für das Testende in der Praxis (Zeit und Kosten); Entscheidung: mehr Teests? Definierte Endekriterien anpassen?
Was macht man beim Testabschluss?
Testabschluss: Daten aus beendeten Testaktivitäten sammeln, um Erfahrungen, Testmittel und andere relevante Informationen zu konsolidieren.
Prüfung: 1. alle Fehlerberichte abgeschlossen? 2. Erstellung von Änderungsanforderungen für bestehende Fehler
Abschluss und Archivieren der Testumgebung, der Testdaten, der Testinfrastruktur und anderer Testmittel für spätere Wiederverwendung
Übergabe der Testmittel an die Wartungsteams, andere Projektteams oder Stakeholder
"lessons learned": gewonnene Erkenntnisse analysieren, notwendige Änderungen für zukünftige Iteratoinen, Produktreleases und Projekte bestimmen
Verbesserung des Testprozesses durch Umsetzung der Erkenntnisse
Erstellung des Testabschlussberichts
Welche Arbeitsergebnisse resultieren aus dem Testabschluss?
Testabschlussberichte
offene Punkte zur Verbesserung in nachfolgenden Projekten
finalisierte Testmittel
Was bedeutet vertikale Rückverfolgbarkeit?
Rückverfolgung von Anforderungen von der Entwicklungsdokumentation bis zu den Komponenten.
Was bedeutet horizontale Rückverfolgbarkeit?
Rückverfolgung von Anforderungen einer Teststufe über die Ebenen der Testdokumentation (z.B. Testkonzept, Testentwurfsspezifikation, Testfallspezifikation, Testablaufspezifikation oder Testskripte).
Welche Kriterien für Testfälle gibt es?
Testfälle zur Prüfung des erwarteten, spezifizierten Verhaltens ("Positivtest")
Testfälle zur Prüfung der spezifizierten Ausnahme- und Fehlersituationen ("Negativtest")
Testfälle zur Prüfung von unspezifizierten Ausnahmen ("Negativtest" bzw. "Robustheitstest")
Worin besteht der Unterschied zwischen abstrakten und konkrete Testfälle?
Abstrakte Testfälle: Testfälle, die abstrakt (ohne konkrete Werte) beschrieben sind, bspw. durch Formeln/Wertebereiche der Eingabewerte.
Welche Möglichkeiten gibt es, um die erwarteten Ergebnisse eines Testobjektes zu spezifizieren ("Testorakel")?
Tester leitet das erwartete Ergebnis ab: Aus Eingabedaten & Spezifikation des Testobjekts
Formale Spezifikation: Falls vorhanden. Ausführbarer Prototyp werkzeuggestützt erzeugen
Back-to-back-Test: Mehrfache Implementierung von unabhängigen Entwicklern, Vergleich der Ergebnisse aller Programmversionen.
Benutzungshandbuch
Getestete Vorgängerversionen, Programme mit ähnlicher Funktionalität
Toleranzbereich festlegen, Plausibilität prüfen
Erfahrung nutzen
System selbst (Nutzungsprofil erstellen) -> schlechteste Möglichkeit
Was ist ein Testfall?
(Vorbedingung, Eingabe, Ausgabe, Nachbedingung)
Alternativ: (Eingabewert, erwartetes Ergebnis, Vorbedingungen, Nachbedingungen).
Was ist ein Testorakel?
Ein Testorakel bestimmt die Soll-Werte für jeden Testfall vor Testdurchführung
Was ist eine Fehlermaskierung?
Warum ist jeder Test eine stichprobenartige Prüfung?
Was ist die Zuverlässigkeit eines Systems?
Was bedeutet bidirektionale Rückverfolgbarkeit?
Warum sollte ein Entwickler nicht seine eigenen Programme testen?
Last changed6 years ago