Definitionen Flashcards
Sach- und Folgeziele des Testens
Testen ist eine Aufgabe mit dem Sachziel, die Qualität einer Software nachweisbar zu bewerten (Transparenz zu schaffen).
Folgeziele
- Qualitätsrisiken reduzieren
- Prüfen, ob Anforderungen erfüllt sind
- Vertrauen in das Qualitätsniveau der Software schaffen
- Infos zum Qualitätsniveau unterstützt die Entscheidungsfindung
Testobjekt und Testelement
Testobjekt - Das zu testende Arbeitsobjekt
Testelement - Teil des Testobjekts, das in einem Testprozess verwendet wird
Debugging
Debugging hat das Ziel, ausgehend von einer wahrgenommenen Fehlerwirkung, die Ursache zu finden, zu analysieren und zu beheben
Debugging ist NICHT Bestandteil des Testens!
Unterscheidung Qualitätssicherung und Testen
Qualitätssicherung kann als vorbeugende Maßnahme verstanden werden
Testen dient als prüfende Maßnahme zur Qualitätssteuerung und -lenkung.
Zusammenhang zwischen Fehlerhandlung, Fehlerzustand und Fehlerwirkung.
Fehlerhandlung (Error)
menschlicher Irrtum, der zu einem Fehler in einem Arbeitsergebnis führen kann
Fehlerzustand (Defect)
Unzulänglichkeit in einem Arbeitsergebnis, welche die Notwendigkeit einer Korrektur bedarf
Fehlerwirkung (Failure)
Tatsächliches Verhalten einer Software weicht bei einer Ausführung aufgrund eines Fehlers vom erwarteten Verhalten ab
7 Grundsätze des Softwaretestens
- Testen zeigt die Anwesenheit von Fehlern (Fehlerzuständen), nicht deren Abwesenheit.
- Vollständiges Testen ist NICHT möglich!
- Frühes Testen spart Zeit und Geld
- Häufung von Fehlern - Fehler treten nicht gleichverteilt auf
- Pestizid-Paradoxon (Fehlerfindungseffektivität sinkt)
- Testen ist kontextabhängig
- Trugschluss “keine Fehler bedeutet ein brauchbares System”
Phasen des Testprozesses
Testplanung
(Testziele - Testvorgehensweise - Testkonzept)
Testanalyse - Was wird getestet?
(Bewertung der vorhandenen Testbasis - Testbedingungen)
Test(fall)entwurf - Wie wir getestet?
(Abstrakte Testfälle - Bedarf Testfälle - Entwurf Testumgebung - Bedarf Infrastruktur und Werkzeuge)
Testrealisierung - Ist alles für die Durchführung der Tests bereit?
(Testdaten generieren - Konkrete Testfälle - Testabläufe - Testsuites - Testausführungsplan - Testumgebung - Infrastruktur und Werkzeuge)
Testdurchführung
(Testprotokoll - Abweichungen)
Testabschluss
(Testabschlussbericht - Testmittel archivieren - Lessons Learned)
Begleitend findet die Testüberwachung und -steuerung statt (Testfortschrittsberichte)
Testmanagement
- Planung
- Überwachung & Steuerung
- Abschluss
Zusammenhand Testabläufe - Testsuites
Testablauf
Eine Folge von Testfällen in der Reihenfolge ihrer Durchführung, mit allen erforderlichen Aktionen zur Herstellung der Vorbedingungen und zum Aufräumen nach der Durchführung
Testsuite
Eine Menge von Testfällen oder Testabläufen, welche in einem bestimmten Testzyklus ausgeführt werden sollen
Merkmale für gut integriertes Testen im Softwareentwicklungslebenszyklus
Zu jeder Entwicklungsaktivität gibt es eine Aktivität im Testen
Jede Teststufe hat spezifische Testziele
Testanalyse und -entwurf für eine Teststufe beginnen während der zugehörigen Entwicklungsaktivität
Tester nehmen an der Diskussion zur Definition & Verfeinerung von Anforderungen teil
Tester sind früh am Review von Arbeitsergebnissen beteiligt
Definition und Merkmale einer Teststufe
Eine spezifische Instanziierung des Testprozesses
Merkmale:
- Spezifische Ziele
- Testbasis
- Testobjekt
- Typische Fehler und Fehlerwirkungen die gefunden werden
- spezifische Ansätze und Verantwortlichkeiten
- Anforderungen an die Testumgebung, Infrastruktur & Tools
Definition Komponententest
Testen der einzelnen Hardware- oder Softwarekomponente
Komponente: Kleinste Einheit eines Systems, die für sich alleine getestet werden kann.
Definition Komponentenintegrationstest
Testen der Schnittstellen und des Zusammenwirkens integrierter Komponenten
Definition Systemtest
Testen eines integrierten Systems
Definition Systemintegrationstest
Testen der Verbindung und Interaktion von Systemen
Definition Abnahmetest
Testen hinsichtlich der definierten Anforderungen
Entscheidung auf der Basis der Abnahmekriterien ermöglichen, ob ein System anzunehmen ist oder nicht
Definition Testart & 4 Testarten
Eine Gruppe von Testaktivitäten basierend auf bestimmten Testzielen mit dem Zweck, eine Komponente oder ein System auf spezifische Merkmale zu prüfen.
4 Testarten
Testen mit funktionalen Qualitätsmerkmalen (Vollständigkeit, Angemessenheit, Korrektheit)
Test mit nicht-funktionalen Qualitätsmerkmalen (Usability, Performance)
Testen der Struktur und Architektur der Software auf Korrektheit und Vollständigkeit (White-Box)
Testen bei Änderungen
- Fehlernachtest (Wiederholt nur Test, der vorher negativ war)
- Regressionstest (Überprüfung aller beeinflussten Komponenten, meist automatisiert)
Definition Wartungstest und die Auslöser
Testen der Änderungen an einem LAUFENDEN System der der Auswirkungen einer geänderten Umgebung auf ein LAUFENDES System
Auslöser
Modifikationen
- Verbesserungen, z.B. releasegesteuert - adaptive maintenance
- Korrigierende Änderungen und Notfalländerungen - corrective maintenance
- Änderung der betr. Umgebungen, Aktualisierung Standardsoftware - perfective maintenance
Migration
Außerbetriebnahme
Statisches Testen vs. Dynamisches Testen
Statisches Testen
- Testobjekt wird NICHT ausgeführt
- Manche Ergebnisse können nur statisch getestet werden
- Statische Tests können manuell oder automatisiert erfolgen
- -> Fehler
Dynamisches Testen
- Testobjekt wird ausgeführt
- Black-Box -> Fehlerwirkung
- White-Box -> Fehler
Unterschiede statische und dynamische Tests
Statische und dynamische Tests können die gleichen Ziele verfolgen
Sie ergänzen sich gegenseitig, da sie unterschiedliche Fehlerarten finden
Statische Tests finden Fehler direkt
Statische Tests
- Interne Qualität kann über statische Tests besser sichergestellt werden
- Wartbarkeit
- Sicherheitsprobleme / Zugriffssicherheit
Dynamische Tests
- bestimmte Last- und Performancefehler / -probleme
Hauptaktivitäten des Reviewprozess
- Planung
- Reviewbeginn
- Individuelles Review
- Befundkommunikation und -analyse
- Fehlrbehebung und -bericht
Reviewarten
mit steigender Formalisierung:
- Informeller Review
- Walk-through
- Technischer Review
- Inspektion (formaler Review)
Reviewverfahren für individuelles Review
nach steigender Formalität und steigendem Aufwand:
- Ad-hoc
- Checklistenbasiert (abhängig vom Prüfauftrag unterschiedliche Listen für die Prüfer)
- Szenarien und Dry-Runs (“Was passiert wenn…?”)
- Rollenbasiert (Muss zur pers. Expertise passen)
- Perspektivisch (Ableitung erster Arbeitsschritte, Fortsetzung von Rollenbasiert)
Inhalte eines Testkonzeptes
Umfang, Ziele und Risiken des Testens
Testvorgehensweise
Integration des Testaktivitäten in die Softwarelebenszyklusaktivitäten
Was ist zu testen?
Wer testet?
Testplan - Zeitliche Planung
Metriken für Testüberwachung und -steuerung
Budget
Detaillierungsgrad und Struktur der Testdokumentation
Welche Teststrategien gibt es?
analytische Teststrategie modellbasierte Teststrategie methodische Teststrategie prozesskonforme Teststrategie beratungsunterstützte Teststrategie regressionsvermeidende Teststrategie reaktive Teststrategie
Testausführungsplan
Zeitplan für die Ausführung von Testsuiten innerhalb eines Testzyklus
abstrakter Testfall - konkreter Testfall - Testreihenfolge - Testsuite - TAP
Konfigurationsmanagement
Zweck des Konfigurationsmanagements ist es, die Integrität der Komponenten oder des Systems, der Testmittel und ihrer Beziehungen sicherzustellen
Ziele und Inhalte von Fehler- / Abweichungsberichten
Ziele
- Hinweise für die Identifikation und Behebung von Fehlern festhalten
- Infos zur Bewertung der Qualität
- Hinweise zur Verbesserung der PRozesse (root-cause-analysis)
Inhalte
- Kennung
- Titel & Zusammenfassung
- Datum
- Identifikation des Testelements und der -umgebung
- Phase (des Projekts)
- Beschreibung des Fehlers
- Erwartetes vs. beobachtetes Ergebnis
- Status
- Dringlichkeit / Priorität
Ziele eines Pilotprojekts zur Einführung eines Werkzeugs im Unternehmen
Ausgangssituation
- Werkzeug wurde ausgewählt
- Machbarkeitsstudie erfolgt
Ziele des Pilotprojektes
- Tiefgreifende Kenntnis über das Werkzeug sammeln
- Passt das Werkzeug in bestehende Prozesse und Methoden?
- Werkzeugeinsatz standardisieren (–> Nutzungskonzept)
- Nutzen und Kosten im konkreten Einsatz bewerten
- Werkzeug für Metriken vorbereiten
Erfaolgsfaktoren für die Einführung und Nutzung von Werkzeugen
- Werkzeug schrittweise einführen
- Prozesse anpassen und verbessern, sodass sie zur Nutzung des Werkzeugs passen
- Für Nutzer Schulungen, Coaching, etc. anbieten
- Richtlinien für die Nutzung definieren
- Nutzung und Nutzen des Werkzeugs fortführend überwachen
- Erkenntnisse von Benutzern sammeln
Testprozessschritte und die Arbeitsergebnisse
TESTPLANUNG
- Testziele
- Testvorgehensweise
- Testkonzept
TESTANALYSE
- Bewertung Testbarkeit
- Testbedingungen
TESTENTWURF
- Abstrakte Testfälle
- Bedarf Testdaten
- Entwurf Testumgebung
- Bedarf Infrastruktur & Werkzeuge
TESTREALISIERUNG
- Testdaten
- konkrete Testfälle
- Testabläufe
- Testsuites
- Testausführungsplan
- Impl. Infrastruktur & Werkzeuge
- Impl. Testumgebung
TESTDURCHFÜHRUNG
- Testprotokoll
- Testabweichung
TESTABSCHLUSS
- Testabschlussbericht
- Testmittel
- Lessons Learned
TESTÜBERWACHUNG UND -STEUERUNG
- Testfortschrittsbericht