Introduction Flashcards
Define the terms Failure, Error and Fault. Give examples for each term and explain how fault, error, and failure relate to each other.
- Im Kontext von Software-Tests:
- Failure: Beobachtbare Abweichung von der Spezifikation.
- Fault: “Defekt” oder “Flaw” eines Systems: Programmier- oder Designfehler, durch den das System nicht seiner Spezifikation entspricht.
- Error: Menschlicher Fehler, der zu einem Fehlerzustand im System führt.
- Im Kontext der Fehlerbehandlung (Fault-tolerance):
- Failure: Beobachtbare Abweichung von der Spezifikation.
- Error: Teil des Systemzustands, der zu einem Ausfall führen kann.
- Fault: “Defekt” oder “Flaw” eines Systems: Programmier- oder Designfehler, durch den das System nicht seiner Spezifikation entspricht.
Der Fault in diesem Codebeispiel liegt in der fehlerhaften Bedingung der if-Anweisung in Zeile 3, da sie “balance < 500” statt “balance <= 500” prüft;
- Fault: falscher Zustand
- Error (FT-speak): Saldo = 500 führt zur Aktivierung des Fehlers
Error (Testing-speak): kann nicht eindeutig bestimmt werden. Könnte ein Tippfehler sein oder ein Missverständnis der Spezifikation sein. - Failure: Erlaubt den Withdrawal
Explain why software is tested and what can be achieved.
Software wird getestet, um Fehler und Bugs zu identifizieren und zu beheben, wodurch die Qualität und Zuverlässigkeit des Systems verbessert und mögliche negative Auswirkungen von Softwarefehlern minimiert werden.
Name the elements of a test.
Die Elemente eines Tests sind üblicherweise Testobjekt, Testeingabe, Testausführung, erwartetes Ergebnis und tatsächliches Ergebnis.
Name the different levels of testing.
Die verschiedenen Testebenen umfassen Komponententests (Component Tests), bei denen einzelne Softwareeinheiten wie Klassen geprüft werden, Integrationstests (Integration Tests), die Schnittstellen zwischen Komponenten testen, und Systemtests (System Tests), die überprüfen, ob das System den Anforderungen entspricht.
Explain the idea of risk-oriented testing.
Risikoorientiertes Testen berücksichtigt die individuellen Risiken verschiedener Softwarekomponenten und priorisiert Tests für riskantere Software intensiver. Dabei werden die Wahrscheinlichkeit eines Fehlers und die damit verbundenen Kosten, wie z.B. Bußgelder, Reparaturkosten oder Auswirkungen auf den Ruf, in die Teststrategie einbezogen.
Although many techniques for ensuring software quality have been developed, software faults still exist. What are the main reasons?
- Software ist komplex.
- Zu viele Features, zu wenig Zeit, abnehmender Nutzen für die Behebung seltener Fehler.
- Bugs werden oft durch schlechte Spezifikationen, Design und schlechte Eingaben von Benutzern, System (Firmware)-Umgebung, Alterung ausgelöst.
- Menschen machen Fehler. Selbst in von professionellen Programmierern entwickelter Software werden in der Regel 100-150 “Fehler” pro 1000 Codezeilen gesehen.
Using the introduced terms, state the goal of software testing and how that goal is conceptually achieved.
- Ziel: Fehlersuche
- Methode: Fehlererkennung und Rückschluss auf das Vorhandensein von Fehlern durch Rückverfolgung der causal chain
Using the introduced terms, state the goal of software testing and debugging and how that goal is conceptually achieved.
- Ziel: Fault Beseitigung
- Methode: Fehlerlokalisierung durch Error Analyse (im Sinne von fehlertolerantem Rechnen) & Korrektur