2.4 KiB
2.4 KiB
Implementing for Maintainability
Motivation and Introduction
- Unit und Integration Testing ist ein bekannter Ansatz um Qualität sicherzustellen
- Gut-getestete Anwendungen:
- 1 line of code = 1-3 lines of test code
- kann auf bis zu 1:10 hochgehen
- Produkt- und Testcode werden parallel geschrieben
- guten Code schreiben ist schwer
Black-/White-Box Testing
Black-Box-Testing
Nur das Interface ist bekannt, nicht der Inhalt
- Methode vom Software-Testing, das die Funktion analysiert, ohne den Mechanismus zu kennen
- Normalerweise rund um die Spezifikationen und Anforderungen
- Was soll die Anwendung tun, nicht wie tut sie es
White-Box-Testing
Das Interface und alle Mechanismen sind bekannt
- Testmethodik, die verifiziert, wie die Anwendung arbeitet
- Tests sind am Sourcecode ausgerichtet, nicht an den Anforderungen
Pros / Cons
- White-Box-Testing ist systematischer und anspruchsvoller
- Analyse des Codes kann zu Fehlerentdeckungen führen, die zuvor übersehen wurden
- Testergebnisse sind oft spröde
- Sind sehr verknüpft mit der Implementierung des Codes
- Solche Tests produzieren viele false-positives und sind nicht gut für die Metrik der Resistenz gegen Refactoring
- Können häufig nicht rückgeschlossen werden zu einem Verhalten, dass wichtig ist für eine Business-Person
- Starkes Zeichen, dass die Tests nicht viel Wert hinzufügen
- Black-Box-Testing hat gegensätzliche Vor-/Nachteile
Black-/White-Box-Testing sind Konzepte, die auf verschiedene Test-Typen angewendet werden können
Testing Quadrants Matrix
Quadrant 1: Technologie-fokussierte Tests, die das Development leiten
-
Developer Tests:
- Unit tests
- Verifizieren Funktionalität eines kleinen Subsets des Systems
- Component-/Integration Tests:
- Verifizieren Verhalten eines größeren Teils
- Unit tests
-
Tests sind nicht für den Kunden
Unit Testing
- Unit Tests sind die essenzielle Basis einer guten Test-Suite
- Verglichen mit anderen, sind sie einfach zu erstellen und warten
- Viele Unit-Tests :)
Goals of Testing during Implementation
Aktiviere nachhaltiges Wachstum des Software-Projekts
- Nachhaltigkeit ist wichtig
- Projektwachstum ist am Anfang einfach
- Das Wachstum zu halten ist schwer