Softwaretesting HF
Softwaretesting ZbW
Softwaretesting ZbW
-
- 1 / 95
-
Cartes-fiches
Was ist Softwaretesting?
Qualität einer Software messen oder sichtbar machen
Welche Vorteile hat Softwaretesting?
durch testing verringern sich die Risiken beim Einsatz der Software, da mögliche Fehler während des Testens aufgedeckt werden
Nenne die Prinzipien des Softwaretestens
1. Testen zeigt die Anwesenheit von Fehlern
2. Vollständiges Testen ist nicht möglich
3. Mit dem testen frühzeitig beginnen
4. Häufung von Fehlern
5. Zunehmende Testresistenz
6. Testen ist abhängig vom Umfeld
7. Trugschluss: Keine Fehler bedeutet ein brauchbares System
Welche Teile beeinhaltet die Testautomatisierung?
Unit Tests
Integration Tests
GUI Tests
Was gilt als Fehler?
- Resultat entspricht nicht der festgelegten, korrekten Situation
- nichterfüllung einer festgelegten Anforderung
Was gilt als Mangel?
- gestellte Anforderung oder berechtigte Erwartung wird nicht angemessen erfüllt
- Beeinträchtigung der Verwendbarkeit bei gleichzeitiger Erfüllung der Funktionalität oder die Nichterfüllung einer angemessenen Erwartung
Was ist ein Testorakel?
Eine Informationsquelle, ob die Ausgabe eines Programms(oder einer Funktion/Methode) korrekt ist oder nicht
Was kann ein Testorakel sein?
- ein Programm
- eine Dokumentation
- ein dokumentierter Algorithmus
- ein menschlicher Domänenexperte
- eine Art zu sagen, dass die Ausgabe korrekt ist
Nenne die Ursachenkette für Fehler
- Fehlhandlung(error)
- Fehlerzustand(defect)
- Fehlerwirkung(failure)
Was ist eine Fehlhandlung(error)?
- menschliche Handlung z.B. Schreibfehler eines Entwicklers, welcher zu einem falschen Ergebnis führt
Was ist ein Fehlerzustand(defect)?
- inkorrekter Teil eines Programms oder Dokumentes
- z.B. inkorrekte Anweisung oder Datendefinition, welche die Funktion des Produkt beeinträchtigen kann
Was ist eine Fehlerwirkung(failure)?
- Wirkung eines Fehlerzustandes, der bei der Ausführung nach aussen in Erscheinung tritt
- Abweichung einer Komponente oder eines Systems von der erwarteten Lieferung, Leistung oder Ergebnis
Was ist mit der Fehlermaskierung gemeint?
- Fehlerzustand wird durch einen oder mehrere Defekte in anderen Teilen des Programms kompensiert
- Fehlerwirkung tritt erst ein, nachdem die maskierenden Fehlerzustände korrigiert wurden
Was versteht man unter Debugging?
- lokalisieren und beheben eines Defektes
- Fehlerbereinigung/Fehlerkorrektur
- Defekte bzw. Fehlerzustände lokalisieren
Was versteht man unter Testing?
- Fehlerwirkungen, welche auf Defekte hinweisen systematisch aufdecken
- Fehlerwirkungen nachweisen
- Qualität bestimmen
- Vertrauen in das Programm erhöhen
- Analysieren des Programms oder Dokumente, um Fehlerwirkungen vorzubeugen
Nach was wird eine Testmethode benannt?
- nach der Methode, welche zur Spezifikation oder Durchführung der Tests eingesetzt wird
Worin unterscheidet man im Testumfang?
- es wird lediglich nach dem Unfang unterschieden(z.B. Volltest, Regressiostest)
Zwischen welchen Qualitätsmerkmalen wird unterschieden?
- Funktionale
- Nicht-Funktionale
Welches sind Funktionale Qualitätsmerkmale?
- Funktionalität
Welches sind Nicht-Funktionale Qualitätsmerkmale?
- Zuverlässigkeit
- Benutzbarkeit
- Effizienz
- Änderbarkeit
- Übertragbarkeit
Welche Vorteile hat ein Testing Framework?
- bietet für die meisten Fragen eine Lösung
- enthält Grundfunktionalitäten für das leichte und strukturierte schreiben von Tests
- enthält Test-Runner für das Ausführen von UT
- enthält Test-Runner für das Auswerten von UT
Was sind die Ziele eines Testing Frameworks?
- Code Qualität verbessern
- tieferes Verständnis für funktionalte Anforderungen von Klassen und Methoden aufbauen
Was ist ein Unit Test?
Das testen, der funktionalen Einzelteile von Programmen auf ihre korrekte Funktionalität
Nenne einige Eigenschaften eines Unit Tests
- wird fast immer mithilfe eines UT Frameworks erstellt
- einfach zu schreiben und schnell in der Ausführung
- vertrauenswürdig, lesbar und wartbar
- konsistente Ergebnisse, solange Produktionscode nicht geändert wird
Was ist eine Unit of Work?
- Summe aller Aktionen, welche zwischen dem Aufruf einer öffentlichen Methode innerhalb eines Systems und einem erkennbaren Endresultat beim Test dieses Systems stattfinden
Für was steht SUT und was wird damit gemeint?
- SUT = System under Test oder auch Class under Test (CUT) / Code under Test
- Dass was man testet wird als SUT bezeichnet
Was ist der Grundsatz eines Unit Tests?
- nur gute schreiben, da schlechte Zeitverschwendung sind
Nenne einige Eigenschaften eines guten Unit Tests
- automatisiert und wiederholbar
- einfach zu implementieren
- auch in Zukunft noch relevant
- Möglichkeit für jeden, den Test auf einen Knopfdruck laufen zu lassen
- Schnell
- Konsistente Resultate (immer gleichen Wert als Rückgabe)
- Volle Kontrolle über getestete Unit
- Komplett isoliert (läuft unabhängig von anderen Tests)
- Bei Fehlschlag, einfach zu erkennen, was erwartet wurde und wie das Problem lokalisiert werden kann
Nenne einen Nachteil eines Integrationstests
- Integrationstests erhöhen das Risiko des testens zu vieler Dinge auf einmal
Nenne einige Eigenschaften eines Integrationtests
- nicht schnell
- nicht konsistent
- beeinhalten eine oder mehrere Abhängigkeiten der zu testenden Unit
Wie sieht die Prioritätenverteilung eines Integrationtests aus?
1. Zuverlässigkeit
2. Effizienz
3. Änderbarkeit
Welche Teile umfasst der Fundamentale Testprozess?
- Planung und Steuerung
- Analyse und Design
- Realisierung und Durchführung
- Auswertung und Bericht
- Abschluss
Was gehört zur Planung im Fundamentalen Testprozess?
- Zielsetzung der Tests
- Ressourcen einplanen
- Mitarbeiter und Zeit planen
- Hilfsmittel/Geräte
- Schulungen
- Teststrategie
- Priosetzung anhand Risikoanalyse
- Testende/kriterien festlegen
Was gehört zur Steuerung im Fundamentalen Testprozess?
- Fortwährende Überwachung der Testaktivitäten
- Abweichungen zur Planung berichten
- Durchführung von Aktivitäten, dass die Ziele dennoch erreicht werden können
Was gehört zur Testanalyse im Fundamentalen Testprozess?
- Testbarkeit prüfen
- Testbarkeit feststellen
- Risiko berücksichtigen
- Traceability/Rückverfolgbarkeit sicherstellen
Was gehört zum Testdesign im Fundamentalen Testprozess?
- Spezifikation der Testfälle in zwei Schritten:
Logische Testfälle definieren, welche in konkrete Testfälle abgeleitet werden können
pro Testmethode werden die logischen Testfälle anhand der Testbasis zugewiesen
- Pro Testfall die Ausgangslage und das Erwartete Verhalten festlegen
Was gehört zur Testrealisierung und Durchführung im Fundamentalen Testprozess?
- Testinfrastruktur im Detail realisieren
- von logischen Testfällen zu konkreten Testfällen
- Hauptfunktionen zuerst testen(smoke-test)
- durchführung der Tests exakt protokollieren
- Protokollierung von unterschieden zwischen tatsächlichen und vorausgesagtem Ergebnis
- Wichtige Testfälle zuerst
Was gehört zur Testauswertung und Bericht im Fundamentalen Testprozess?
- Aktivität im Testprozess bewerten
- Kriterien für das Testende überprüfen
- Metriken mit Testwerkzeugen ermitteln
- Dead Code kann 100%igen Test des Testobjekts verhindern
- Fehlerfindungsrate als Testendkriterium
Was gehört zum Abschluss im Fundamentalen Testprozess?
- Analyse des Berichts der letzten Phase
- Archivierung der Testmittel für spätere Releases
Was bringt ein Szenario im bezug auf Unit of Work?
- Unterscheidung der Tests einer Unit of Work