Was ist der Unterschied zwischen Validation und Verifikation?
Validation: Überprüfung auf das vom Anwender gewünschte Verhalten (das richtige System gebaut?)
Verifikation: Werden die festgelegten Spezifikationen erfüllt (ist das System richtig gebaut?)
Nennen Sie zwei Ziele der N-Versionen-Programmierung.
Eine Version kann als Orakel für die Korrektheit der Ausgaben einer anderen Version herangezogen werden (geht ab 2 Versionen)
Robustheit der ausgelieferten Software kann erhöht werden durch gleichzeitige Berechnung eines benötigten Ergebnisses durch mehrere Versionen einer Software
Liefern verschiedene Versionen unterschiedliche Ergebnisse, so wird Mehrheitsentscheidung verwendet (geht ab 3 Versionen)
Erklären Sie die Begriffe Fehlerzustand, Fehlerwirkung und Fehlhandlung.
Fehlerzustand (fault): inkorrektes Teilprogramm, inkorrekte Anweisung oder Datendefinition, die Ursache für Fehlerwirkung ist
Fehlerwirkung (failure): Wirkung eines Fehlerzustandes, der bei der Ausführung (nach außen) auftritt und eine Abweichung vom erwünschten Verhalten darstellt
Fehlhandlung (error): (menschliche) Handlung, die zu einem Fehlerzustand führt
Nennen Sie zwei mögliche Testüberdeckungsmetriken für Statecharts
Zustandsüberdeckung
Transitionsüberdeckung
Pfadüberdeckung
Trigger der Zustände
Was gibt ein Vorwärts-Slice an?
Ein Vorwärts-Slice zu einer Anweisung n, die einer Variable v einen Wert zuweist, bestimmt alle die Stellen eines Programms, die von einer Änderung des zugewiesenen Wertes (Berechnungsvorschrift) betroffen sein könnten.
Nennen Sie zwei manuelle, statische Testverfahren und erklären Sie diese in einem Satz!
Inspektion: stark formalisiertes Verfahren. Dokumente werden nach genau festgelegter Vorgehensweise durch ein Gutachterteam untersucht ( ” Programminspektion“ zählt auch).
Technisches Review: Weniger formale manuelle Prüfmethode als Inspektion mit weniger Aufwand aber ähnlich großem Nutzen.
Walkthrough: unstrukturierte Vorgehensweise; Autor des Dokuments liest vor, Gutachter stellen spontan Fragen (auch ”informelles Review“ genannt).
Was ist eine Software-Produktlinie?
Eine Software-Produktlinie (SPL) ist eine Menge ”verwandter“ Softwaresysteme für eine bestimmte Anwendungsdomäne die auf Basis einer gemeinsamen Plattform (Rahmenwerk) entwickelt werden
Was ist ein ”optimistisches“ Sperrkonzept bei der Versionsverwaltung und wie wird es realisiert?
In einem optimistischen Sperrkonzept sind parallele Veränderungen (schreibende Zugriffe) auf eine Dateiversion zulässig. Die Realisierung funktioniert mittels Dreiwegeverschmelzung mit manueller Konfliktbehebung
Nennen Sie zwei Versionsmanagementsysteme, die vor Git eingesetzt wurden
SCCS (Source Code Control System)
RCS (Revision Control System)
CVS (Concurrent Version System)
SVN (Subversion)
Definieren Sie die Begriffe ”Produktmetrik“ und ”Prozessmetrik“ kurz.
Produktmetriken: Messen Eigenschaften der Software (Qualit¨at, Standards etc.)
Prozessmetriken: Messen Eigenschaften des Entwicklungsprozesses (Dauer, Kosten, Kundenzufriedenheit etc.)
Nennen Sie zwei der sieben Grundsätze des Testens und erklären Sie diese kurz.
Testen zeigt die Anwesenheit von Fehlern (und nie die Abwesenheit)
Vollständiges Testen ist nicht möglich
Mit dem Testen frühzeitig beginnen
Häufung von Fehlern (in bestimmten Programmteilen)
Zunehmende Testresistenz (gegen existierende Tests)
Testen ist abhängig vom Umfeld
Trugschluss: Keine Fehler bedeutet ein brauchbares System
Erklären Sie die Begriffe Precondition, Invariante und Postcondition bezüglich objektorientiertem Testens. Ergibt es Sinn, Invarianten nach Aufruf eines Modifiers zu prüfen? Begründen Sie ihre Antwort kurz.
Precondition: Bedingungen, die vor Aufruf einer bestimmten Methode (ggf. auch Destruktor) gelten sollen
Invarianzen: Bedingungen, die immer, also vor und nach jeder Methode (ggf. auch Konstruktor, Destruktor) gelten müssen.
Postconditions: Bedingungen, die nach Aufruf einer bestimmten Methode (ggf. auch Konstruktor,Destruktor) gelten sollen.
Ja, denn Invarianten müssen nach Aufruf eines Modifiers wieder gelten
Warum wird in der Praxis oft paarweises Testen statt kombinatorisches Testen verwendet? Welche Auswirkungen hat das auf die Fehleraufdeckungsrate?
Die Anzahl der Tests bei gründlichem Testen kann schnell sehr groß werden (ggf. exponentiell)
Die meisten Fehler werden durch den Zusammenhang von zwei Komponenten ausgelöst, wodurch sich die Fehleraufdeckungsrate kaum verschlechtert.
Last changed5 months ago