VSK
Verteilte Systeme & Komponenten
Verteilte Systeme & Komponenten
-
- 1 / 92
-
Flashcards
Was sind Integrationstests?
- Tests, welche die Schnittstellen und das Zusammenspiel der Systemkomponenten testen.
- Erfordern, dass die einzelnen Komponenten bereits getestet sind (Unit-Tests)
Was muss während den Integrationstests bei einer Komponente getestet werden?
Interfaces:
- Objekt Kompatibilität (Typen und Wertebereich)
- Aufruf-Sequenzen
- Wer validiert Inputs? Aufrufer oder Aufgerufener?
Datenabhängigkeit:
- Die Datenabhängigkeiten für alle Komponenten ermitteln und testen
CallGraph Abdeckung:
- Für Komponenten, welche von verschiedenen Aufrufern genutzt werden, müssen alle Aufrufvarianten getestet werden.
Welche Integrationsstrategien gibt es?
- Bottom-Up the Small: Kleinere Teilsysteme "von unten auf" integrieren
- Top-Down the Controls: Fehlende Komponenten mit Stubs ersetzen
- Big-Bang the Backbone: Alle nötigen Komponeten auf einen Schlag integrieren
- Continuous Integration: Neue Komponenten laufend integrieren und testen.
Was sind System Tests?
- Prüfen die gesamte Wirkungskette im Softwareprodukt --> alles was nicht mit Unit- und Integrationstests abgedeckt werden kann.
- Potentiell lieferbares Produkt:
- Muss ausserhalb der IDE lauffähig sein
- muss über eine Bedienschnittstelle verfügen
- muss mit anderen Applikationen und Systemen interagieren
- Systemtests testen die möglichen Kombinationen, welche im Konfigurationsmanagement definiert worden sind.
- Auch nicht funktionale Anforderungen werden abgedeckt: Last-, Performance-, Stress-, Security-Tests
- Werden aus Backlog, UseCase-Beschreibungen und der Definition of Done abgeleitet.
Was sind Regressionstests?
- Tests, welche nach jeder Änderung des Systems erneut ausgeführt werden.
- Dadurch können Race-Conditions erkannt werden.
- Integrations- und Systemtests werden als Regressionstests wieder ausgeführt.
Was sind die Unterschiede zwischen Reviews, Audits und Akzeptanztests?
- Review: Überprüfung eines Artefakts (Dokumentation, Code, ..) --> Produkt Qualität
- Audit: Beweis, dass ein Prozess besteht (z.B. Dokumentierung) --> Prozess Qualität
- Akzeptanztest: Black-Box Testing --> Validierung (in Scrum als Review referenziert)
Wie ist ein Meilenstein definiert?
"Ein geplanter Punkt im Projektablauf an dem vorher festgelegte (Zwischen-)Ergebnisse vorliegen, die es erlauben den Projektfortschritt zu messen."
- Jeder Meilenstein hat Artefakte (Dokumente, SW-Komponenten, ..)
- Meilenstein ist erreicht, wenn Artefakte vorliegen und die Überprüfung (Review / Test) erfolgreich war.
Welche Review Typen gibt es?
Sortiert nach Formalität und Struktur:
- Inspection (streng, wohldefiniert)
- Team Review (geplant und strukturiert, etwas weniger formal)
- Walkthrough (Author stellt Werk einer Gruppe vor)
- Pair Programming (zwei Entwickler arbeiten zusammen am selben Projekt)
- Peer Deskcheck (eine Person prüfe das Arbeitsergebnis)
- Passaround (Kopien werden an div. Personen versandt und derren Feedback eingeholt)
- Ad Hoc Review (normaler Bestandteil der Teamarbeit)
Für was wird ein Konfigurations-Management benötigt?
Konfigurations-Management definiert die kompatiblen Konfigurationen (Hardware, Software, Einstellungen, Firmware, Doku) um Änderungen an der Konfiguration kontrolliert durchführen zu können.
Was ist ein Software Configuration Item (SCI)?
Eine Aggregierung von Software, welche als einzelnes SCI behandelt wird. Dieses SCI beinhaltet:
- Code
- Pläne
- Spezifikationen
- Code Library
- Daten und Daten-Verzeichnisse
- Installations-, Wartungs- und Betriebsanleitungen
Was bedeuten die SCM Begriffe Version, Revision, Baseline und Release?