Eine Alternative zu ANT (als BuildManagementWerkzeug ... · Historie der "Builds"...

Post on 12-Sep-2019

2 views 0 download

Transcript of Eine Alternative zu ANT (als BuildManagementWerkzeug ... · Historie der "Builds"...

SOTE2­2017­06­02.notebook

1

June 02, 2017

Eine Alternative zu ANT (als Build­Management­Werkzeug) ist MAVEN

Beispiel für ein MAVEN­Build­Script (pom.xml)

Dependencies sind die einzubeziehenden "Bibliotheken" (jar­Dateien) Maven identifiziert diese Dateien eindeutig über die GAV­Parameter• G: group­ip• A: Artifact­id• 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.).

SOTE2­2017­06­02.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 Build­Script automatisch aus und erzeugt zugehörige Berichte:

Historie der "Builds"

SOTE2­2017­06­02.notebook

3

June 02, 2017

Testen

JUnit­Tests

Integrationstests

= Komponententests

Systemtests

Akzeptanztest Beta­Test

White­Box­Test

Blackbox­TestLast­Test

Stress­Test

Usability­Teste

Pentrationstests

Sortiert nach Lebenszyklusphase Sortiert nach Testziel Sortiert nach der Methode, um an Testfälle zu kommen

SOTE2­2017­06­02.notebook

4

June 02, 2017

1. Unit­Tests (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, ...

SOTE2­2017­06­02.notebook

5

June 02, 2017

Eine notwendige Voraussetzung, dass ein Test einen Fehler findet, ist, dass der Code überhaupt durchlaufen.

Code­Coverage / 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)) ...

SOTE2­2017­06­02.notebook

6

June 02, 2017

siehe nächste Seite

SOTE2­2017­06­02.notebook

7

June 02, 2017

Die Coverage­Grade lassen sich automatisiert bestimmen:

SOTE2­2017­06­02.notebook

8

June 02, 2017

Zyklomatische Komplexität = McCabe­Maß

:= Anzahl unhängiger Pfade durch einen Programmgraf

:= Anzahl der Kanten (Pfeile) ­ Anzahl der Knoten + 2

= 10 ­ 8 + 2

= 4

SOTE2­2017­06­02.notebook

9

June 02, 2017

2. Integrationstests

1. Wer (Tester): 2. Was (Testobjekt): 3. Auf was (Testziel): 4. Wie (Testmethode, Testwerkzeuge):

Fortsetzung in der nächsten Stunde.