software testing und qualitätssicherung
TRANSCRIPT
![Page 1: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/1.jpg)
Software Technik
Christian Baranowski
HTWG Konstanz
Software Testing
![Page 2: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/2.jpg)
Requirement Analysis
Testing
System Design
Coding
Delivery
Wasserfallmodell
![Page 3: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/3.jpg)
WiederholungGrundlagen Software
Qualitätssicherung
![Page 4: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/4.jpg)
Was ist Software Qualität ?Funktionalität
Benutzbarkeit
Zuverlässigkeit
Portabilität
Wartbarkeit
Effizienz
![Page 5: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/5.jpg)
Was soll sichergestellt werden?
Fehlerwirkung (Failure)Nach außen sichtbare Fehlverhalten
Fehlerzustand (Bug)Zustand in der Anwendung der zu einer Fehlerwirkung führen kann.
Fehlhandlung (Error, Misstake)Irrtum bei der Software-Entwicklung.
FehlermaskierungWirkung eines Fehlers (Fehlerzustand) ist nach außen nicht sichtbar, weil er durch einen weiteren Fehler verborgen (überlagert / maskiert) wird.
![Page 6: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/6.jpg)
Wege zu guter Software
analytische Qualitätssicherung
konstruktive Qualitätssicherung
Methoden die dazu dienen eine Anwendung strukturiert (analytisch) nach Fehlerwirkungen, Fehlerzuständen und Fehlermaskierung zu untersuchen. Die Qualität wird gemessen. Anzahl der Fehlerwirkungen, Fehlerzuständen und Fehlermaskierung bestimmt.
Methoden die dazu dienen die Wahrscheinlichkeit für Fehlhandlungen zu minimieren. D.h. die Methoden führen dazu dass es zu einer geringeren Fehlerwahrscheinlichkeit im Projekt kommt.
![Page 7: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/7.jpg)
Software Tests
![Page 8: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/8.jpg)
Fragestellung beim Testen
ValidationIst es die richtige Software?
VerifikationDie Software ist richtig!
TestIst die Software richtig?
DebuggingWarum ist die Software nicht richtig?
![Page 9: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/9.jpg)
• dynamische Testverfahren
• statische Testverfahren
Testmethoden
![Page 10: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/10.jpg)
• Black-Box Testen
• Gray-Box Testen
•White-Box Testen
Testmethoden
![Page 11: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/11.jpg)
Testmethoden
Client tier Presentation tier Business logic tier
GU
I
Clie
nt lo
gic
Mar
shal
ling
De-
Mar
shal
ling
Pre
sent
atio
n
Ser
ializ
atio
n
De-
Ser
ializ
atio
n
Bus
ines
s lo
gic
O/R
map
ping
Database tier
Modul / Komponententest
Integrationstest
Systemtest
SUT (System Under Test)
![Page 12: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/12.jpg)
Systemtest
Komponententest
Integrationstest
Testmethoden
![Page 13: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/13.jpg)
Kosten zur Fehlerbehebung
Anforderungsanalyse Systementwurf Umsetzung Integrationstest Systemtest Betrieb
Kosten (€)
Fehler frühzeitig in einem Projekt (Entwicklungsprozess) zu finden spart Geld !!!
![Page 14: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/14.jpg)
Komponententests (Modultests) und Testabdeckung
![Page 15: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/15.jpg)
Komponententest Charakter •Was wird getestet ? (Testobjekt)
-Klasse / Komponente (mehre Klassen mit definierter Schnittstelle)
•Wer testet? (Tester)
-Entwickler (White-Box / Gray-Box) / Tester (Black-Box)
•Welche Qualitätseigenschaft (ISO9126) wird geprüft?
-Funktionalität, Robustheit, Effizienz
•Mit welchen Werkzeugen wird getestet?
-xUnit Frameworks und Coverage Messung z.B. Cobertura, Emma
![Page 16: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/16.jpg)
Test Design Pattern vier Phasen Test
Setup SUT in einen definierten Zustand bringen.
ExerciseSUT aufrufen mit Test Parametern (Daten).
Verify Prüfen ob das SUT im erwarteten Zustand ist.
Teardown SUT und Testumgebung aufräumen.
![Page 17: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/17.jpg)
JUnitpublic class QuicksortTest {
! Quicksort<Integer> quicksortSUT;
! @Before! public void setUp() {! ! quicksortSUT = new Quicksort<Integer>(new IntComperator());! }
! @Test! public void testSort() throws Exception {! ! quicksortSUT.sort(new Integer[] { 5, 8, 2, 4, 7 });! ! assertArrayEquals(new Integer[] { 2, 4, 5, 7, 8 }, values);! }
! @After! public void tearDown() {! ! quicksortSUT = null;! }
}
Phase 1: Setup
Phase 2: Exercise
Phase 3: Verify
Phase 4: tearDown
![Page 18: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/18.jpg)
White-Box Testen
Test Coverage / Testabdeckung
![Page 19: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/19.jpg)
Testabdeckung
„Als Testabdeckung bezeichnet man das Verhältnis an tatsächlich getroffenen Aussagen eines Tests gegenüber den theoretisch möglich treffbaren Aussagen bzw. der Menge der gewünschten treffbaren Aussagen.“ - Wikipedia
![Page 20: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/20.jpg)
Testabdeckung (100 %)public boolean aAndbOrC(boolean A, boolean B, boolean C) {! return (A && B) || C;}
Erwartet A B Cfalse false false falsetrue false false truefalse false true falsetrue false true truefalse true false falsetrue true false truetrue true true falsetrue true true true
![Page 21: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/21.jpg)
vollständige Testabdeckung
„Eine vollständige Testabdeckung stellt eine Ausnahme dar, weil die Anzahl möglicher Testfälle sehr schnell ungeheuer groß wird (durch kombinatorische Explosion). Ein vollständiger Funktionstest für eine einfache Funktion, die zwei 16-Bit-Werte als Argument erhält, würde schon 2^(16+16), also ca. 4 Milliarden Testfälle bedeuten, um die Spezifikation vollständig zu testen.“ - Wikipedia
![Page 22: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/22.jpg)
Testabdeckung beim White-Box Testen
![Page 23: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/23.jpg)
Statement Coverage (Anweisungsüberdeckung)
public static boolean aAndBOrC(boolean A, boolean B, boolean C) { if(A && B){ return true; } else if(C) { return true; } else { return false; } }
![Page 24: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/24.jpg)
Statement Coverage (Anweisungsüberdeckung)
A && B true
C true
false
![Page 25: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/25.jpg)
Statement Coverage (Anweisungsüberdeckung)
A && B true
C true
false
Erwartet A B C
true true true false
1.
1.
![Page 26: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/26.jpg)
Statement Coverage (Anweisungsüberdeckung)
A && B true
C true
false
Erwartet A B C
true true true false
true false false true
1.
2. 1.
2.
![Page 27: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/27.jpg)
Statement Coverage (Anweisungsüberdeckung)100 %
A && B true
C true
false
Erwartet A B C
true true true false
true false false true
false false false false
1.
2.3.
1.
2.
3.
![Page 28: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/28.jpg)
Statement Coverage (Anweisungsüberdeckung)
public static boolean aAndBOrC(boolean A, boolean B, boolean C) { if(A && B || C){ return true; } else { return false; } }
![Page 29: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/29.jpg)
Statement Coverage (Anweisungsüberdeckung)100%
A && B || C true
false
Erwartet A B C
true false false true
false false false false
1.
2.
1.
2.
![Page 30: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/30.jpg)
Statement Coverage (Anweisungsüberdeckung)
public static int sum(int values[], int offset){ int result = 0; for (int value : values) { if(offset > 0){ if(offset < value) result += offset; } result += value; } return result; }
![Page 31: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/31.jpg)
Statement Coverage (Anweisungsüberdeckung)100%
result = 0
for (value : values)
offset > 0 offset < value
result += value
return result
result += offset
Erwartet values offset
3 [2] 1
![Page 32: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/32.jpg)
Statement Coverage (Anweisungsüberdeckung)100 %
result = 0
for (value : values)
offset > 0 offset < value
result += value
return result
result += offset
Erwartet values offset
3 [2] 1
![Page 33: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/33.jpg)
Branch Coverage 100 % (Zweigabdeckung)
result = 0
for (value : values)
offset > 0 offset < value
result += value
return result
result += offset Erwartet values offset
3 [2] 1
2 [2] 0
2 [2] 2
![Page 34: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/34.jpg)
100% Pfadabdeckung
100 % Pfadabdeckung wird in der Regel nicht erreicht (halting problem)
![Page 35: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/35.jpg)
Testabdeckung automatisiert bestimmen
![Page 36: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/36.jpg)
Übung 1I
•Erstellen Sie einen Unit Test für die Demo Quicksort Implementierung
•Messen Sie die Code Abdeckung in Eclipse
![Page 37: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/37.jpg)
Black-Box Testen
![Page 38: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/38.jpg)
Äquivalenzklassenbildung
„Ziel der Äquivalenzklassenbildung ist es, Äquivalenzklassen zu bilden und so eine hohe Fehlerentdeckungsrate mit einer möglichst geringen Anzahl von Testfällen zu erreichen.“ - Wikipedia
![Page 39: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/39.jpg)
Äquivalenzklassenbildung Beispiel Artikel verkaufen
![Page 40: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/40.jpg)
ÄquivalenzklassenbildungParameter Äquivalenzklasse Repräsentant
Basar Nummer gÄK1_01: [0,...,MAX_LONG] 100Basar Nummer
uÄK1_02: [-MAX_LONG,..., 0[uÄK1_03: NaN
-1„abc“
Preis gÄK2_01: [0,...,MAX_LONG]gÄK2_02: X,50 | X = [0,..., MAX_LONG]gÄK2_03: X,5 | X = [0,..., MAX_LONG]gÄK2_04: X,00 | X = [0,..., MAX_LONG]
100,500,511,00
Preis
uÄK2_05: [-MAX_LONG,...,0]uÄK2_06: X,Y | X = [-MAX_LONG,..., 0[ Y = [-MAX_LONG,..., MAX_LONG]uÄK2_07: X,Y | X = [0,..., MAX_LONG] Y = ]0,..., 5[uÄK2_08: X,Y | X = [0,..., MAX_LONG] Y = ]5,..., 50[uÄK2_09: X,Y | X = [0,..., MAX_LONG] Y = ]50,..., MAX_LONG[uÄK2_10: X,Y | X = [0,..., MAX_LONG] Y = NaNuÄK2_11: NaNuÄK2_12: X,Y | X = NaN Y = [0,..., MAX_LONG]
-1-1,100
100,2
100,40
100,510
100,“abc„
“abc„
“abc„,50
BeschreibunggÄK3_01: [NULL...TEXT] “abc„
![Page 41: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/41.jpg)
Äquivalenzklassenbildungabgeleitete TestfälleTestfall Basar Nummer Preis Beschreibung Summe (hinzugefügt)
1 100 10 abc 10 Euro
2 100 0,50 abc 0,50 Euro
3 100 0,5 abc 0,50 Euro
4 100 11,00 abc 11,00 Euro
5 -1 10 abc 0,00 Euro
6 abc 10 abc 0,00 Euro
7 100 -1 abc 0,00 Euro
8 100 -1,100 abc 0,00 Euro
9 100 100,2 abc 0,00 Euro
10 100 100,40 abc 0,00 Euro
11 100 100,510 abc 0,00 Euro
12 100 100,abc abc 0,00 Euro
13 100 abc abc 0,00 Euro
14 100 abc,50 abc 0,00 Euro
Tipp: gute Tester nutzen Sonderzeichen z.B. &“§$%äöü nicht abc!!!
![Page 42: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/42.jpg)
Statische TestverfahrenCode Reviews
![Page 43: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/43.jpg)
Walkthrough
•Autor stellt seinen Code Dokument vor.
•Autor ist der Moderator
•Vorteile:
•Wenig Vorbereitungsaufwand
•Prüfung findet durch spontane Fragen statt.
![Page 44: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/44.jpg)
Inspektion•Formalste Form eines Review
•oft formale Vorprüfung
•Gutachter bekommen die Dokumente vorab
•Gutachter prüfen erst einzeln
•Anschließende Sitzung mit Autor, Gutachtern und Moderator
![Page 45: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/45.jpg)
Technisches Review•Autor nimmt am Review nicht teil
•Gutachter stimmen ab
•Prüfen gegen Spezifikation
•Gutachter prüfen einzeln vorab
![Page 46: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/46.jpg)
Informelles Review
•Gutachter bekommt Dokument zum lesen und gibt schriftliche Rückmeldung
![Page 47: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/47.jpg)
Zusammenfassung Reviews
Grad der Formalisierung
geringster höchsten mittel gering
AnwesendAutorPrüfer
AutorGutachterModerator
GutachterModerator
einzelne Gutachter
AnwendbarkeitCode
DokumenteLernen
Dokumente Dokumente CodeDokumente
Vorbereitung kaum Formale Prüfung Formale Prüfung kaum
Walkthrough Inspektion TechnischesReview
InformellesReview
![Page 48: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/48.jpg)
Statische TestverfahrenNamens Konventionen
![Page 49: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/49.jpg)
Namens Konventionen
• Klassennamen • beginnt mit einem Großbuchstaben, danach in Kleinbuchstaben
weiter • beginnt ein neuer wesentlicher Teil des Klassennamens, wird er
mit einem Großbuchstaben verdeutlicht
• Beispiele• Color, Button, TextField, String
![Page 50: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/50.jpg)
Namens Konventionen
• Methodennamen • beginnt mit einem Kleinbuchstaben, weiter klein geschrieben• beginnt ein neuer wesentlicher Teil wird er mit einem
Großbuchstaben verdeutlicht
• Beispiele• equals(), setColor(), drawOval()...
![Page 51: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/51.jpg)
Namens Konventionen
• Konstantennamen • komplett in Großbuchstaben
• Beispiele• LEFT, PI, BLOD
![Page 52: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/52.jpg)
Integrationsstrategien
Test A Test B
Test C
Test D Test E
Test F
Test G Test A- G
Big-bang
![Page 53: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/53.jpg)
Integrationsstrategien
Test C Test E Test F Test G
Test A- G
Test B, E, F
Test D, G
Bottom-up
![Page 54: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/54.jpg)
Integrationsstrategien
DatabaseSeller DAOTest Treiber
Setup
execute
verify
SUT
![Page 55: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/55.jpg)
Integrationsstrategien
![Page 56: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/56.jpg)
Integrationsstrategien
Test A
Test A, B, C, D
Test A- G
Top-down
![Page 57: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/57.jpg)
Top-Down Integrationstest Pattern Test Doubles
gesamtes SUT dieses soll ohne die DB geprüft werden
![Page 58: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/58.jpg)
Top-Down Integrationstest Pattern Test Doubles
Test Doubles:- Dummy- Mock Object
TOP Down Integration
![Page 59: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/59.jpg)
Integrationsstrategien
Backbone Integration
![Page 60: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/60.jpg)
IntegrationsstrategienContinuous Integration
betrachten wir noch in einer der folgendenVorlesung
![Page 61: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/61.jpg)
Integrationstests
![Page 62: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/62.jpg)
Test Charakterisierung
•Was wird getestet ? (Testobjekt)
•Wer testet? (Tester)
•Welche Qualitätseigenschaft (ISO9126) wird geprüft?
•Mit welchen Werkzeugen wird getestet?
![Page 63: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/63.jpg)
Integrationstest Charakter •Was wird getestet ? (Testobjekt)
-Zusammenspiel von zwei oder mehrere Module.-Passen die Schnittstellen?
•Wer testet? (Tester)
-Entwickler (White-Box / Gray-Box) / dezidierte Tester (Black-Box)
•Welche Qualitätseigenschaft (ISO9126) wird geprüft?
-Robustheit, Portabilität,Funktionalität, Wartbarkeit, Effizienz
•Mit welchen Werkzeugen wird getestet?
-JUnit, DBunit, Mocking Frameworks
![Page 64: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/64.jpg)
Systemtests und Akzeptanztests
![Page 65: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/65.jpg)
Systemtests Charakter •Was wird getestet ? (Testobjekt)
-komplettes System (vollständiger Integrationstest)-bis zur Systemgrenze
•Wer testet? (Tester)
- dezidierte Tester (Black-Box)
•Welche Qualitätseigenschaft (ISO9126) wird geprüft?
-Funktionalität, Effizienz, Benutzbarkeit, Robustheit, Portabilität
•Mit welchen Werkzeugen wird getestet?
-JUnit, FIT, Selenium ... HP Test Runner, GUIdancer ...
![Page 66: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/66.jpg)
funktionale Systemtest / Akzeptanztests mit FIT
![Page 67: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/67.jpg)
Überblick Fit Framework for Integrated Tests
FIT wurde entwickelt von Ward Cunningham WIKI-Erfinder...
![Page 68: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/68.jpg)
Motivation von Fit Tests
• Automatisierung von Akzeptanztests mittels Tabellen.
• Framework für Datengetriebene Tests – Data-Driven-Test (xUnit Test Patterns - Gerard Meszaros)
![Page 69: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/69.jpg)
Testen mit Fit TabellenFit Tests für einen Beispiel Zinsrechner
![Page 70: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/70.jpg)
Betrag
10
Testen mit Fit TabellenFit Tests als Column Test Tabelle
![Page 71: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/71.jpg)
Betrag Zinssatz
10 2,5
Testen mit Fit TabellenFit Tests als Column Test Tabelle
![Page 72: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/72.jpg)
Betrag Zinssatz Laufzeit
10 2,5 2
Testen mit Fit TabellenFit Tests als Column Test Tabelle
![Page 73: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/73.jpg)
Betrag Zinssatz Laufzeit Summe
10 2,5 2 10,51
Testen mit Fit TabellenFit Tests als Column Test Tabelle
![Page 74: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/74.jpg)
Testen mit Fit TabellenFit Tests als Column Test Tabelle
Betrag Zinssatz Laufzeit Summe()
10 2,5 2 10,51
Eingehende - Werte Prüfung eines Ergebnis
Testfall
![Page 75: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/75.jpg)
Testen mit Fit TabellenFit Tests als Column Test Tabelle
Betrag Zinssatz Laufzeit Summe()
10 2,5 2 10,51
10 10 3 25,94
10 10 10 100000
... ... ... ...
Testfälle
![Page 76: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/76.jpg)
Testen mit Fit TabellenFit Tests als Column Test Tabelle
Gelb =Ausnahme - Fehler im Test
Grün = erfolgreicher Test
Rot = Fehler in der Anwendung
![Page 77: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/77.jpg)
Testen mit Fit TabellenFit Test als Action Tabelle
fit.Ac?onFixturefit.Ac?onFixturefit.Ac?onFixture
start ZinsenAc(onFixtureZinsenAc(onFixture
enter Betrag 10
enter Zinssatz 2,5
enter Laufzeit 2
press SubmitSubmit
check Summe 10,51
Anbindung an die Applikation (Java)
Argumente
Objekt / Auswahl / Target
Testfall
Befehle / Kommandos
![Page 78: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/78.jpg)
Testen mit Fit TabellenFit Test als Action Tabelle
Prüfung
Eingaben
Aktion - Zinsen Berechnen
Anwendung Starten
![Page 79: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/79.jpg)
Fit Designdrei Klassen Framework
![Page 80: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/80.jpg)
Fit Tabellen und Applikation verknüpfen
![Page 81: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/81.jpg)
Fit Tabellen und Applikation verknüpfen
onlinerechner.ZinsenFixtureonlinerechner.ZinsenFixtureonlinerechner.ZinsenFixtureonlinerechner.ZinsenFixtureBetrag Zinssatz Laufzeit Summe()10 2,5 2 10,5110 10 3 25,9420 10 10 100000... ... ... ...
![Page 82: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/82.jpg)
Fit Tabellen und Applikation verknüpfen
SUTAnbindung an SUT
![Page 83: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/83.jpg)
Fit Tabellen und Applikation verknüpfen
public class ZinsenFixture extends ColumnFixture {
private Zinsen zinsen = new Zinsen();
public double betrag; public double zinsatz; public double laufzeit;
public double summe() { zinsen.setBetrag(betrag); zinsen.setLaufzeit(laufzeit); zinsen.setZinssatz(zinsatz); return zinsen.berechneZinsen(); } }
Eingehende - Werte
SUT
Prüfung - Ausgabe
Basis Klasse für Fit Extension
Anbindung an SUT
![Page 84: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/84.jpg)
Fit Tabellen und Applikation verknüpfen
fit.Ac?onFixturefit.Ac?onFixturefit.Ac?onFixture
start onlinerechner.ZinsenAc(onFixtureonlinerechner.ZinsenAc(onFixture
enter Betrag 10
enter Zinssatz 2,5
enter Laufzeit 2
press berechneZinsenberechneZinsen
check Summe 10,51
GOF - Dekorierer-Muster
![Page 85: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/85.jpg)
Fit Tabellen und Applikation verknüpfen
![Page 86: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/86.jpg)
Fit Tabellen und Applikation verknüpfen
public class ZinsenActionFixture extends Fixture { Zinsen zinsen = new Zinsen(); double summe; public void betrag(double betrag) { zinsen.setBetrag(betrag); }… public void berechneZinsen() { summe = zinsen.berechneZinsen(); } public double summe() { return summe; }}
Eingaben / Enter
Aktion / Press
Ausgabe Prüfung / Check
![Page 87: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/87.jpg)
OberflächentestsEinführung in Selenium
Selenium Core
Selenium IDE
Selenium RC
![Page 88: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/88.jpg)
Selenium Core
open /JugsBase/zinsrechner.jsp
type betrag 20.0
type zinsatz 22.0
type laufzeit 100.0
clickAndWait submit
assertTextPresent 8649939365.27 Euro
Action - TabelleSelenium Befehl
Target
Argumente
am Beispiel eines Zinsrechner
![Page 89: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/89.jpg)
Selenium IDECapture & Replay Tests mit Selenium
Action Tabelle
![Page 90: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/90.jpg)
Selenium Remote ControlAnbindung Selenium in Java Code als Test Treiber
JAVA, PHP...
Selenium Server
Selenium Core
HTTP Proxy SUTWebapplikation
BrowserFirefox, IE
![Page 91: Software Testing und Qualitätssicherung](https://reader034.vdocuments.site/reader034/viewer/2022042700/558cb2bfd8b42a557a8b45e2/html5/thumbnails/91.jpg)
Übung 1I
•Erweitern Sie den Basar FIT Test so dass auch für den zweiten Kunden mehre Buchung durchgeführt werden.