SOTE220170602.notebook
1
June 02, 2017
Eine Alternative zu ANT (als BuildManagementWerkzeug) ist MAVEN
Beispiel für ein MAVENBuildScript (pom.xml)
Dependencies sind die einzubeziehenden "Bibliotheken" (jarDateien) Maven identifiziert diese Dateien eindeutig über die GAVParameter• G: groupip• A: Artifactid• V: Version
Maven lädt diese automatische von einem zentralen Repository (z.B. http://search.maven.org) und löst dabei Abhängigkeiten der Bibliotheken rekursiv auf.
Mit Maven lassen sich genau wie mit ANT Aufgaben automatisieren (Kompilieren, Testen, Packen, Deployen usw.).
SOTE220170602.notebook
2
June 02, 2017
Ein Integrationsserver wie Jenkins führt entweder "eventbasiert" (z.B. bei einem Commit) oder zeitgesteuert (z.B. jede Nacht) die BuildScript automatisch aus und erzeugt zugehörige Berichte:
Historie der "Builds"
SOTE220170602.notebook
3
June 02, 2017
Testen
JUnitTests
Integrationstests
= Komponententests
Systemtests
Akzeptanztest BetaTest
WhiteBoxTest
BlackboxTestLastTest
StressTest
UsabilityTeste
Pentrationstests
Sortiert nach Lebenszyklusphase Sortiert nach Testziel Sortiert nach der Methode, um an Testfälle zu kommen
SOTE220170602.notebook
4
June 02, 2017
1. UnitTests (Komponententests, Modultests)
1. Wer (Tester): Entwickler selbst2. Was (Testobjekt): Einzelne Komponenten, Funktionen3. Auf was (Testziel): siehe rechts (ISO 25010)4. Wie (Testmethode, Testwerkzeuge): JUnit, NUnit, ...
SOTE220170602.notebook
5
June 02, 2017
Eine notwendige Voraussetzung, dass ein Test einen Fehler findet, ist, dass der Code überhaupt durchlaufen.
CodeCoverage / Abdeckungsgrade• Anweisungsabdeckung (statement coverage) :
Prozentzahl der beim Testen durchlaufenen Anweisungen (hier: 100%)
• Zweigabdeckung (branch coverage) : Prozentzahl der beim Testen durchlaufenen Zweige (hier: < 100%)
• Einfache Bedingungsabdeckung : 100% falls jede der atomaren Teilbedingungen einmal den Wert true und einmal den Wert false annimmt.
• Mehrfachbedingungsabdeckung: 100% falls alle Kombinaqtionen von atomaren Teilbedingungen getestet wurden
System.out.println(""); //1
for(int i = 0; i < 10; i++ ) //2
if(a.equals("...") //3
...
if( (a.equals("SOTE1")) || (b == 3)) ...
SOTE220170602.notebook
8
June 02, 2017
Zyklomatische Komplexität = McCabeMaß
:= Anzahl unhängiger Pfade durch einen Programmgraf
:= Anzahl der Kanten (Pfeile) Anzahl der Knoten + 2
= 10 8 + 2
= 4
Top Related