Kapitel 1: Grundlagen des Testens Flashcards
(40 cards)
Was ist der Zweck des Softwaretestens?
- Fehlerzustände entdecken
- die Qualität der Software evaluieren
Was ist der Unterschied zwischen Testen und Debugging?
Testen identifiziert Fehlerwirkungen, während Debugging die Fehlerursachen findet und behebt.
Warum ist Testen notwendig?
Um Fehlerzustände zu erkennen und die Qualität von Software zu sichern, sowie um gesetzliche und regulatorische Anforderungen zu erfüllen.
Was sind die sieben Grundsätze des Testens?
- Testen zeigt das Vorhandensein, nicht die Abwesenheit von Fehlern.
- Vollständiges Testen ist unmöglich.
- Frühes Testen spart Zeit und Geld.
- Fehlerzustände treten gehäuft auf.
- Tests nutzen sich ab.
- Testen ist kontextabhängig.
- Keine Fehler bedeutet nicht, dass das System brauchbar ist.
Was ist eine Fehlhandlung?
Eine menschliche Aktion, die zu einem Fehlerzustand in einem Softwareprodukt führt.
Welche zwei Hauptrollen gibt es im Testen?
Die Rolle des Testmanagements und die Rolle des Testens.
Was ist eine Fehlerwirkung?
Das beobachtbare Fehlverhalten einer Software aufgrund eines Fehlerzustands.
Was ist eine Testbedingung?
Ein zu testender Aspekt des Systems, z.B. eine Funktion, Transaktion, oder Eigenschaft.
Was bedeutet Überdeckung im Testen?
Der Anteil der Testbasis, der durch die ausgeführten Tests abgedeckt wurde.
Was ist Verifizierung im Testen?
Das Prüfen, ob ein Produkt seine spezifizierten Anforderungen erfüllt.
Was ist Validierung im Testen?
Das Prüfen, ob das Produkt die Bedürfnisse und Anforderungen der Benutzer erfüllt.
Warum sind Software Tests sinnvoll?
- Softwaretests bewerten die Qualität der Software
- helfen, das Risiko einer
Fehlerwirkung im Betrieb zu verringern.
Was sind die Ziele des Testens?
- Evaluieren von Arbeitsergebnissen wie Anforderungen, User Storys, Entwürfe und
Code - Auslösen von Fehlerwirkungen und Finden von Fehlerzuständen
- Sicherstellen der erforderlichen Überdeckung eines Testobjekts
- Verringern des Risikos einer unzureichenden Softwarequalität
- Verifizieren, ob spezifizierte Anforderungen erfüllt wurden
- Verifizieren, ob ein Testobjekt den vertraglichen, rechtlichen und regulatorischen
Anforderungen entspricht - Bereitstellen von Informationen für die Stakeholder, damit diese fundierten
Entscheidungen treffen können - Aufbauen von Vertrauen in die Qualität des Testobjekts
- Validieren, ob das Testobjekt vollständig ist und aus Sicht der Stakeholder wie erwartet
funktioniert.
Worum geht es beim debuggen?
Die Ursache für Fehlerwirkungen zu finden, diese zu analysieren und zu beseitigen.
Was umfasst der typische Debugging-Prozess?
- Reproduzieren einer Fehlerwirkung
- Diagnose (Befund der Grundursache)
- Behebung der Ursache
Was ist ein statischer Test?
Bei statischen Tests wird die Software nicht ausgeführt. Stattdessen werden Dokumente, der Code oder andere Materialien überprüft, um Fehler zu finden. Das kann durch Reviews oder Analysen geschehen.
Was ist ein dynamischer Test?
Bei dynamischen Tests wird die Software tatsächlich ausgeführt. Dabei wird überprüft, ob sie so funktioniert, wie sie soll. Man testet also, ob die Software die gewünschten Ergebnisse liefert
Warum ist testen notwendig?
Testen ist wichtig, weil es sicherstellt, dass die Software wie gewünscht funktioniert und die vereinbarten Ziele in Bezug auf Zeit, Qualität und Budget erreicht werden. Es ist nicht nur die Aufgabe des Testteams; jeder kann helfen, Fehler zu finden. Durch das Testen von Softwareteilen und Dokumentationen entdeckt man Probleme frühzeitig, was teure Fehler und Überraschungen verhindert.
Was ist Qualitätssteuerung?
Qualitätssteuerung ist ein produktorientierter, korrigierender Ansatz, der sich auf jene
Aktivitäten konzentriert, die das Erreichen eines angemessenen Qualitätsniveaus
unterstützen. Testen ist eine der wichtigsten Formen der Qualitätssteuerung, andere sind
formale Methoden (Modellprüfung und Korrektheitsnachweis), Simulation und Prototyping.
Was ist Qualitätssicherung?
Qualitätssicherung ist ein Ansatz, der sich darauf konzentriert, Prozesse zu verbessern, um sicherzustellen, dass am Ende ein gutes Produkt entsteht. Sie basiert auf der Idee, dass, wenn man einen guten Prozess richtig anwendet, das Ergebnis gut sein wird.
Qualitätssicherung betrifft sowohl die Entwicklung als auch das Testen und ist die Verantwortung aller im Projekt Beteiligten.
Die Ergebnisse von Tests werden sowohl in der Qualitätssicherung als auch in der Qualitätskontrolle genutzt. In der Qualitätskontrolle helfen sie dabei, Fehler zu beheben, während sie in der Qualitätssicherung zeigen, wie gut die Entwicklungs- und Testprozesse funktionieren.
Was ist die Grundursache einer Fehlerwirkung?
Eine Grundursache (root cause) ist ein wesentlicher Grund für das Auftreten eines Problems
(z. B. eine Situation, die zu einer Fehlhandlung führt).
Welche sind die Grundsätze des Testens?
- Testen zeigt das Vorhandensein, nicht die Abwesenheit von Fehlerzuständen.
- Vollständiges Testen ist unmöglich.
- Frühes Testen spart Zeit und Geld.
- Fehlerzustände treten gehäuft auf.
- Tests nutzen sich ab.
- Testen ist kontextabhängig.
- Trugschluss: „Keine Fehler“ bedeutet ein brauchbares System.
Was ist die Verifizierung im Testprozess?
Dies ist der Prozess, bei dem überprüft wird, ob das Produkt die spezifizierten Anforderungen erfüllt. Es geht darum, sicherzustellen, dass die Software richtig gebaut wurde und dass alle Schritte im Entwicklungsprozess eingehalten wurden. Man fragt sich also: „Haben wir das Produkt richtig erstellt?“
Was ist die Validierung im Testprozess?
Hierbei wird geprüft, ob das Produkt den Bedürfnissen der Benutzer und anderen Stakeholdern entspricht. Es geht darum zu bestätigen, dass die Software in der realen Anwendung tatsächlich das tut, was die Benutzer erwarten. Man fragt sich also: „Haben wir das richtige Produkt erstellt?“