Testgetriebene Entwicklung - mit JUnit & FIT: wie Software änderbar bleibt
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Heidelberg
dpunkt-Verl.
2006
|
Ausgabe: | 1. Aufl. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis Klappentext |
Beschreibung: | Literatur- und URL-Verzeichnis Seite 321-324 |
Beschreibung: | XIV, 331 S. |
ISBN: | 3898642208 9783898642200 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV021251432 | ||
003 | DE-604 | ||
005 | 20231218 | ||
007 | t | ||
008 | 051205s2006 |||| 00||| ger d | ||
020 | |a 3898642208 |9 3-89864-220-8 | ||
020 | |a 9783898642200 |9 978-3-89864-220-0 | ||
035 | |a (OCoLC)175099191 | ||
035 | |a (DE-599)BVBBV021251432 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
049 | |a DE-1051 |a DE-92 |a DE-Aug4 |a DE-355 |a DE-M347 |a DE-860 |a DE-522 |a DE-526 |a DE-634 |a DE-11 |a DE-19 |a DE-188 |a DE-B768 | ||
084 | |a ST 233 |0 (DE-625)143620: |2 rvk | ||
100 | 1 | |a Westphal, Frank |e Verfasser |4 aut | |
245 | 1 | 0 | |a Testgetriebene Entwicklung - mit JUnit & FIT |b wie Software änderbar bleibt |c Frank Westphal |
250 | |a 1. Aufl. | ||
264 | 1 | |a Heidelberg |b dpunkt-Verl. |c 2006 | |
300 | |a XIV, 331 S. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Literatur- und URL-Verzeichnis Seite 321-324 | ||
650 | 0 | 7 | |a Komponententest |0 (DE-588)4674453-8 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Automation |0 (DE-588)4003957-2 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a JUnit |0 (DE-588)4773076-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Test-First-Ansatz |0 (DE-588)4674451-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Komponententest |0 (DE-588)4674453-8 |D s |
689 | 0 | 1 | |a Automation |0 (DE-588)4003957-2 |D s |
689 | 0 | 2 | |a Test-First-Ansatz |0 (DE-588)4674451-4 |D s |
689 | 0 | 3 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a JUnit |0 (DE-588)4773076-6 |D s |
689 | 1 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Regensburg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014572823&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
856 | 4 | 2 | |m Digitalisierung UB Regensburg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014572823&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |3 Klappentext |
999 | |a oai:aleph.bib-bvb.de:BVB01-014572823 |
Datensatz im Suchindex
_version_ | 1804135020901695488 |
---|---|
adam_text | Inhaltsverzeichnis
1 Einleitung 1
1.1 Was ist Testgetriebene Entwicklung?.................2
1.2 Warum Testgetriebene Entwicklung?.................4
1.3 Über dieses Buch................................7
1.4
2 Testgetriebene Entwicklung,
über die Schulter geschaut 9
2.1 Eine Programmierepisode ........................10
2.2 Testgetriebenes Programmieren....................11
2.3 Möglichst einfaches Design.......................12
2.4 Ein wenig Testen, ein wenig Programmieren...........13
2.5 Evolutionäres Design............................14
2.6 Natürlicher Abschluss einer Programmierepisode ......16
2.7
2.8 Abschließende Reflexion.........................19
2.9 Häufige Integration.............................20
2.10 Rückblende...................................20
3
3.1 Download und Installation .......................21
3.2 Ein erstes Beispiel ..............................22
3.3 Anatomie eines Testfalls .........................23
3.4 Test-First.....................................24
3.5 JUnit in
3.6 Das JUnit-Framework von innen...................27
3.7
3.8 »AssertionFailedError«..........................29
Inhaltsverzeichnis
3.9
3.10 Lebenszyklus eines Testfalls ......................34
3.11 »TestSuite«...................................36
3.12 »TestRunner«.................................38
3.13 Zwei Methoden, die das Testen vereinfachen .........39
3.14 Testen von
3.15 Unerwartete
3.16 JUnit 4 ......................................44
4 Testgetriebene Programmierung 51
4.1 Die erste Direktive .............................51
4.2 Der Testgetriebene Entwicklungszyklus .............52
4.3 Die Programmierzüge...........................53
4.4 Beginn einer Testepisode.........................54
4.5 Ein einfacher Testplan...........................55
4.6 Erst ein neuer Test..............................56
4.7 ... dann den Test fehlschlagen sehen ................57
4.8 ... schließlich den Test erfüllen ....................59
4.9 Zusammenspiel von Test- und Programmcode ........60
4.10 Ausnahmebehandlung...........................61
4.11 Ein unerwarteter Erfolg..........................62
4.12 Ein unerwarteter Fehlschlag ......................64
4.13 Vorprogrammierte Schwierigkeiten.................68
4.14 Kleine Schritte gehen............................72
5
5.1 Die zweite Direktive ............................73
5.2 Die Refactoringzüge ............................74
5.3 Von übel riechendem Code........................75
5.4 ... über den Refactoringkatalog....................76
5.5 ... zur Einfachen Form...........................77
5.6 Überlegungen zur Refactoringroute.................78
5.7 Substitution einer Implementierung.................79
5.8 Evolution einer Schnittstelle ...................... 80
5.9 Teilen von Klassen .............................83
5.10 Verschieben von Tests...........................85
5.11 Abstraktion statt Duplikation..................... 86
5.12 Die letzte Durchsicht............................90
5.13 Ist Design tot?.................................91
Inhaltsverzeichnis
5.14 Richtungswechsel...............................95
5.15 ... und der wegweisende Test......................96
5.16
5.17 Vom Bekannten zum Unbekannten.................99
5.18 Retrospektive.................................106
5.19 Tour de Design
5.20 Durchbrüche erleben...........................108
6 Häufige Integration 109
6.1 Die dritte Direktive............................109
6.2 Die Integrationszüge ...........................110
6.3 Änderungen mehrmals täglich zusammenführen.......111
6.4 ... das System von Grund auf neu bauen ............113
6.5 ... und ausliefern ..............................114
6.6 Versionsverwaltung (mit CVS oder Subversion).......116
6.7 Build-Skript mit
6.8 Build-Prozess-Tuning...........................121
6.9 Integrationsserver mit CruiseControl...............122
6.10 Aufbau einer Staging-Umgebung..................124
6.11 Teamübergreifende Integration ...................124
6.12 Gesund bleiben ...............................125
7 Testfälle schreiben
von
7.1 Aufbau von Testfällen..........................127
7.2 Benennung von Testfällen .......................129
7.3 Buchführung auf dem Notizblock .................129
7.4 Der erste Testfall..............................130
7.5 Der nächste Testfall............................130
7.6 Erinnerungstests ..............................131
7.7 Ergebnisse im Test festschreiben, nicht berechnen.....131
7.8 Erst die Zusicherung schreiben ...................132
7.9 Features testen, nicht Methoden ..................133
7.10 Finden von Testfällen ..........................134
7.11 Generierung von Testdaten ......................134
7.12 Implementierungsunabhängige Tests...............136
7.13 Kostspielige Setups ............................137
7.14 Lange Assert-Ketten oder mehrere Testfälle?.........138
7.15 Lerntests ....................................139
Inhaltsverzeichnis
7.16 Minimale
7.17 Negativtests ................................. 142
7.18 Organisation von Testfällen ..................... 143
7.19 Orthogonale Testfälle.......................... 144
7.20 Parameterisierbare Testfälle ..................... 150
7.21 Qualität der Testsuite.......................... 153
7.22
7.23 Reihenfolgeunabhängigkeit der Tests ..............162
7.24 Selbsterklärende Testfälle ....................... 164
7.25
7.26 Szenarientests ................................ 166
7.27 Testexemplare................................ 166
7.28 Testsprachen................................. 168
7.29 Umgang mit Defekten.......................... 169
7.30 Umgang mit externem Code..................... 172
7.31 Was wird getestet? Was nicht? ................... 173
7.32 Zufälle und Zeitabhängigkeiten ..................173
8 Isoliertes Testen
durch
8.1 Verflixte Abhängigkeiten!.......................176
8.2 Was ist die
8.3 Mikrointegrationstest versus strikter
8.4 Vertrauenswürdige Komponenten................. 179
8.5 Austauschbarkeit von Objekten .................. 182
8.6 Stub-Objekte................................. 183
8.7 Größere Unabhängigkeit........................ 184
8.8 Testen durch Indirektion........................185
8.9 Stub-Variationen..............................189
8.10 Testen von Mittelsmännern......................190
8.11 Self-Shunt...................................191
8.12 Testen von innen.............................. 193
8.13 Möglichst frühzeitiger Fehlschlag.................194
8.14 Erwartungen entwickeln........................195
8.15 Gebrauchsfertige Erwartungsklassen...............197
8.16 Testen von Protokollen.........................198
8.17 Mock-Objekte................................201
8.18 Wann verwende ich welches Testmuster? ...........204
8.19 Crashtest-Dummies............................207
Inhaltsverzeichnis
8.20 Dynamische
8.21
8.22 Überspezifizierte Tests..........................211
8.23 Überstrapazierte
8.24 Systemgrenzen im Test..........................212
9 Entwicklung mit Mock-Objekten 215
9.1
9.2 Von außen nach innen..........................216
9.3 Wer verifiziert wen?............................217
9.4 Schnittstellen finden auf natürlichem Weg...........218
9.5 Komponierte Methoden.........................220
9.6 Vom
9.7 Viele schmale Schnittstellen......................223
9.8 Kleine fokussierte Klassen.......................224
9.9 Teil und
9.10 nereimmargorP sträwkcüR ......................226
9.11 Schüchterner Code und das Gesetz von Demeter......228
9.12 Fassaden und Mediatoren als Abstraktionsebene......229
9.13 Rekonstruktion...............................230
10 Akzeptanztests mit FIT 233
10.1 Von einer ausführbaren Spezifikation...............234
10.2 Download
10.3 Schritt für Schritt für Schritt .....................235
10.4 ... zum ausführbaren Anforderungsdokument........242
10.5 Die drei
10.6 »ActionFixture« ..............................243
10.7 Richtung peilen, Fortschritt erzielen ...............247
10.8
10.9 Nichts als Fassade.............................251
10.10 Die
10.11 Aktion: Neue Aktion...........................254
10.12 »ColumnFixture« .............................256
10.13 Fixture-Interkommunikation.....................258
10.14 Negativbeispiele...............................259
10.15 Transformation:
10.16
10.17 Einfacher Schlüssel ............................266
xiv Inhaltsverzeichnis
10.18 Mehrfacher Schlüssel .......................... 269
10.19 Abfragemethoden einspannen.................... 270
10.20
10.21 »ExampleTests« .............................. 274
10.22 »AUFiles« ................................... 276
10.23 Setup- und Teardown
10.24 Das FIT-Framework von innen................... 278
10.25 »FileRunner« ................................ 279
10.26
10.27
10.28 Annotationsmöglichkeiten in Dokumenten.......... 284
10.29 »TypeAdapter«............................... 289
10.30 »ScientificDouble« ............................ 293
10.31 Domänenspezifische Grammatiken................ 293
10.32 »ArrayAdapter« .............................. 294
10.33 »
10.34 Domänenspezifische
10.35
10.36 Stichproben reiner Geschäftslogik................. 300
10.37 Integrationstests gegen Fassaden und Services........ 300
10.38 Oberflächentests.............................. 302
10.39 Kundenfreundliche Namen...................... 304
10.40 FitNesse .................................... 304
10.41 FitLibrary................................... 306
10.42 Akzeptanztesten aus Projektsicht ................. 307
11 Änderbare Software 309
11.1 Konstantes Entwicklungstempo .................. 310
11.2 Kurze Zykluszeiten............................ 315
11.3 Neue Geschäftsmodelle......................... 316
Literatur 321
Werkzeugkasten 323
Index 325
Frank
Testgetriebene Entwicklung
mitJUnit&FIT
Testgetriebene Entwicklung geht von einem fehl¬
schlagenden Test aus. Software wird in kleinen
sicheren Schritten entwickelt, die abwechselnd
darauf abzielen, eine neue Anforderung zu
implementieren (den fehlschlagenden Test also
zu erfüllen) und das Design zu verbessern (und
dabei weiterhin alle Tests zu bestehen).
• Wenn frühes und häufiges Testen wichtig
ist, warum schreiben wir nicht für jedes neue
Feature zuerst einen automatisierten Test? So
können wir während der Entwicklung jederzeit
unsere Tests ausführen und lernen, ob unser
Code wie gewünscht funktioniert.
• Wenn Design wichtig ¡st, warum investieren
wir dann nicht Tag für Tag darin? So können wir
dafür sorgen,
und nicht mit der Zeit zunehmend degeneriert.
« Wenn Anforderungsdefinition wichtig ist,
warum ermöglichen wir unseren Kunden dann
nicht, in einem ausführbaren Anforderungs¬
dokument Testfälle für konkrete Anwendungs¬
beispiele zu spezifizieren? So können wir doku¬
mentieren, welche Funktionalität tatsächlich
gefordert ¡st, und anschließend verifizieren, ob
die Erwartungen des Kunden erfüllt werden.
Das Buch führt mit praktischen Beispielen in
die Testgetriebene Entwicklung mit den
Open-Source-Werkzeugen JUnit und FIT ein.
Aus dem Inhalt:
•
• Testgetriebene Programmierung
•
• Häufige Integration (CruiseControl u.a.)
• Testfälle schreiben von
• Isoliertes Testen durch Mock-Objekte
• Akzeptanztests mit FIT
(Framework
|
adam_txt |
Inhaltsverzeichnis
1 Einleitung 1
1.1 Was ist Testgetriebene Entwicklung?.2
1.2 Warum Testgetriebene Entwicklung?.4
1.3 Über dieses Buch.7
1.4
2 Testgetriebene Entwicklung,
über die Schulter geschaut 9
2.1 Eine Programmierepisode .10
2.2 Testgetriebenes Programmieren.11
2.3 Möglichst einfaches Design.12
2.4 Ein wenig Testen, ein wenig Programmieren.13
2.5 Evolutionäres Design.14
2.6 Natürlicher Abschluss einer Programmierepisode .16
2.7
2.8 Abschließende Reflexion.19
2.9 Häufige Integration.20
2.10 Rückblende.20
3
3.1 Download und Installation .21
3.2 Ein erstes Beispiel .22
3.3 Anatomie eines Testfalls .23
3.4 Test-First.24
3.5 JUnit in
3.6 Das JUnit-Framework von innen.27
3.7
3.8 »AssertionFailedError«.29
Inhaltsverzeichnis
3.9
3.10 Lebenszyklus eines Testfalls .34
3.11 »TestSuite«.36
3.12 »TestRunner«.38
3.13 Zwei Methoden, die das Testen vereinfachen .39
3.14 Testen von
3.15 Unerwartete
3.16 JUnit 4 .44
4 Testgetriebene Programmierung 51
4.1 Die erste Direktive .51
4.2 Der Testgetriebene Entwicklungszyklus .52
4.3 Die Programmierzüge.53
4.4 Beginn einer Testepisode.54
4.5 Ein einfacher Testplan.55
4.6 Erst ein neuer Test.56
4.7 . dann den Test fehlschlagen sehen .57
4.8 . schließlich den Test erfüllen .59
4.9 Zusammenspiel von Test- und Programmcode .60
4.10 Ausnahmebehandlung.61
4.11 Ein unerwarteter Erfolg.62
4.12 Ein unerwarteter Fehlschlag .64
4.13 Vorprogrammierte Schwierigkeiten.68
4.14 Kleine Schritte gehen.72
5
5.1 Die zweite Direktive .73
5.2 Die Refactoringzüge .74
5.3 Von übel riechendem Code.75
5.4 . über den Refactoringkatalog.76
5.5 . zur Einfachen Form.77
5.6 Überlegungen zur Refactoringroute.78
5.7 Substitution einer Implementierung.79
5.8 Evolution einer Schnittstelle . 80
5.9 Teilen von Klassen .83
5.10 Verschieben von Tests.85
5.11 Abstraktion statt Duplikation. 86
5.12 Die letzte Durchsicht.90
5.13 Ist Design tot?.91
Inhaltsverzeichnis
5.14 Richtungswechsel.95
5.15 . und der wegweisende Test.96
5.16
5.17 Vom Bekannten zum Unbekannten.99
5.18 Retrospektive.106
5.19 Tour de Design
5.20 Durchbrüche erleben.108
6 Häufige Integration 109
6.1 Die dritte Direktive.109
6.2 Die Integrationszüge .110
6.3 Änderungen mehrmals täglich zusammenführen.111
6.4 . das System von Grund auf neu bauen .113
6.5 . und ausliefern .114
6.6 Versionsverwaltung (mit CVS oder Subversion).116
6.7 Build-Skript mit
6.8 Build-Prozess-Tuning.121
6.9 Integrationsserver mit CruiseControl.122
6.10 Aufbau einer Staging-Umgebung.124
6.11 Teamübergreifende Integration .124
6.12 Gesund bleiben .125
7 Testfälle schreiben
von
7.1 Aufbau von Testfällen.127
7.2 Benennung von Testfällen .129
7.3 Buchführung auf dem Notizblock .129
7.4 Der erste Testfall.130
7.5 Der nächste Testfall.130
7.6 Erinnerungstests .131
7.7 Ergebnisse im Test festschreiben, nicht berechnen.131
7.8 Erst die Zusicherung schreiben .132
7.9 Features testen, nicht Methoden .133
7.10 Finden von Testfällen .134
7.11 Generierung von Testdaten .134
7.12 Implementierungsunabhängige Tests.136
7.13 Kostspielige Setups .137
7.14 Lange Assert-Ketten oder mehrere Testfälle?.138
7.15 Lerntests .139
Inhaltsverzeichnis
7.16 Minimale
7.17 Negativtests . 142
7.18 Organisation von Testfällen . 143
7.19 Orthogonale Testfälle. 144
7.20 Parameterisierbare Testfälle . 150
7.21 Qualität der Testsuite. 153
7.22
7.23 Reihenfolgeunabhängigkeit der Tests .162
7.24 Selbsterklärende Testfälle . 164
7.25
7.26 Szenarientests . 166
7.27 Testexemplare. 166
7.28 Testsprachen. 168
7.29 Umgang mit Defekten. 169
7.30 Umgang mit externem Code. 172
7.31 Was wird getestet? Was nicht? . 173
7.32 Zufälle und Zeitabhängigkeiten .173
8 Isoliertes Testen
durch
8.1 Verflixte Abhängigkeiten!.176
8.2 Was ist die
8.3 Mikrointegrationstest versus strikter
8.4 Vertrauenswürdige Komponenten. 179
8.5 Austauschbarkeit von Objekten . 182
8.6 Stub-Objekte. 183
8.7 Größere Unabhängigkeit. 184
8.8 Testen durch Indirektion.185
8.9 Stub-Variationen.189
8.10 Testen von Mittelsmännern.190
8.11 Self-Shunt.191
8.12 Testen von innen. 193
8.13 Möglichst frühzeitiger Fehlschlag.194
8.14 Erwartungen entwickeln.195
8.15 Gebrauchsfertige Erwartungsklassen.197
8.16 Testen von Protokollen.198
8.17 Mock-Objekte.201
8.18 Wann verwende ich welches Testmuster? .204
8.19 Crashtest-Dummies.207
Inhaltsverzeichnis
8.20 Dynamische
8.21
8.22 Überspezifizierte Tests.211
8.23 Überstrapazierte
8.24 Systemgrenzen im Test.212
9 Entwicklung mit Mock-Objekten 215
9.1
9.2 Von außen nach innen.216
9.3 Wer verifiziert wen?.217
9.4 Schnittstellen finden auf natürlichem Weg.218
9.5 Komponierte Methoden.220
9.6 Vom
9.7 Viele schmale Schnittstellen.223
9.8 Kleine fokussierte Klassen.224
9.9 Teil und
9.10 nereimmargorP sträwkcüR .226
9.11 Schüchterner Code und das Gesetz von Demeter.228
9.12 Fassaden und Mediatoren als Abstraktionsebene.229
9.13 Rekonstruktion.230
10 Akzeptanztests mit FIT 233
10.1 Von einer ausführbaren Spezifikation.234
10.2 Download
10.3 Schritt für Schritt für Schritt .235
10.4 . zum ausführbaren Anforderungsdokument.242
10.5 Die drei
10.6 »ActionFixture« .243
10.7 Richtung peilen, Fortschritt erzielen .247
10.8
10.9 Nichts als Fassade.251
10.10 Die
10.11 Aktion: Neue Aktion.254
10.12 »ColumnFixture« .256
10.13 Fixture-Interkommunikation.258
10.14 Negativbeispiele.259
10.15 Transformation:
10.16
10.17 Einfacher Schlüssel .266
xiv Inhaltsverzeichnis
10.18 Mehrfacher Schlüssel . 269
10.19 Abfragemethoden einspannen. 270
10.20
10.21 »ExampleTests« . 274
10.22 »AUFiles« . 276
10.23 Setup- und Teardown
10.24 Das FIT-Framework von innen. 278
10.25 »FileRunner« . 279
10.26
10.27
10.28 Annotationsmöglichkeiten in Dokumenten. 284
10.29 »TypeAdapter«. 289
10.30 »ScientificDouble« . 293
10.31 Domänenspezifische Grammatiken. 293
10.32 »ArrayAdapter« . 294
10.33 »
10.34 Domänenspezifische
10.35
10.36 Stichproben reiner Geschäftslogik. 300
10.37 Integrationstests gegen Fassaden und Services. 300
10.38 Oberflächentests. 302
10.39 Kundenfreundliche Namen. 304
10.40 FitNesse . 304
10.41 FitLibrary. 306
10.42 Akzeptanztesten aus Projektsicht . 307
11 Änderbare Software 309
11.1 Konstantes Entwicklungstempo . 310
11.2 Kurze Zykluszeiten. 315
11.3 Neue Geschäftsmodelle. 316
Literatur 321
Werkzeugkasten 323
Index 325
Frank
Testgetriebene Entwicklung
mitJUnit&FIT
Testgetriebene Entwicklung geht von einem fehl¬
schlagenden Test aus. Software wird in kleinen
sicheren Schritten entwickelt, die abwechselnd
darauf abzielen, eine neue Anforderung zu
implementieren (den fehlschlagenden Test also
zu erfüllen) und das Design zu verbessern (und
dabei weiterhin alle Tests zu bestehen).
• Wenn frühes und häufiges Testen wichtig
ist, warum schreiben wir nicht für jedes neue
Feature zuerst einen automatisierten Test? So
können wir während der Entwicklung jederzeit
unsere Tests ausführen und lernen, ob unser
Code wie gewünscht funktioniert.
• Wenn Design wichtig ¡st, warum investieren
wir dann nicht Tag für Tag darin? So können wir
dafür sorgen,
und nicht mit der Zeit zunehmend degeneriert.
« Wenn Anforderungsdefinition wichtig ist,
warum ermöglichen wir unseren Kunden dann
nicht, in einem ausführbaren Anforderungs¬
dokument Testfälle für konkrete Anwendungs¬
beispiele zu spezifizieren? So können wir doku¬
mentieren, welche Funktionalität tatsächlich
gefordert ¡st, und anschließend verifizieren, ob
die Erwartungen des Kunden erfüllt werden.
Das Buch führt mit praktischen Beispielen in
die Testgetriebene Entwicklung mit den
Open-Source-Werkzeugen JUnit und FIT ein.
Aus dem Inhalt:
•
• Testgetriebene Programmierung
•
• Häufige Integration (CruiseControl u.a.)
• Testfälle schreiben von
• Isoliertes Testen durch Mock-Objekte
• Akzeptanztests mit FIT
(Framework |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Westphal, Frank |
author_facet | Westphal, Frank |
author_role | aut |
author_sort | Westphal, Frank |
author_variant | f w fw |
building | Verbundindex |
bvnumber | BV021251432 |
classification_rvk | ST 233 |
ctrlnum | (OCoLC)175099191 (DE-599)BVBBV021251432 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 1. Aufl. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02153nam a2200469 c 4500</leader><controlfield tag="001">BV021251432</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20231218 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">051205s2006 |||| 00||| ger d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3898642208</subfield><subfield code="9">3-89864-220-8</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783898642200</subfield><subfield code="9">978-3-89864-220-0</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)175099191</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV021251432</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1051</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-522</subfield><subfield code="a">DE-526</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-188</subfield><subfield code="a">DE-B768</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 233</subfield><subfield code="0">(DE-625)143620:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Westphal, Frank</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Testgetriebene Entwicklung - mit JUnit & FIT</subfield><subfield code="b">wie Software änderbar bleibt</subfield><subfield code="c">Frank Westphal</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Heidelberg</subfield><subfield code="b">dpunkt-Verl.</subfield><subfield code="c">2006</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XIV, 331 S.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Literatur- und URL-Verzeichnis Seite 321-324</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Komponententest</subfield><subfield code="0">(DE-588)4674453-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Automation</subfield><subfield code="0">(DE-588)4003957-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">JUnit</subfield><subfield code="0">(DE-588)4773076-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Test-First-Ansatz</subfield><subfield code="0">(DE-588)4674451-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Komponententest</subfield><subfield code="0">(DE-588)4674453-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Automation</subfield><subfield code="0">(DE-588)4003957-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Test-First-Ansatz</subfield><subfield code="0">(DE-588)4674451-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="3"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">JUnit</subfield><subfield code="0">(DE-588)4773076-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Regensburg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014572823&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Regensburg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014572823&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Klappentext</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-014572823</subfield></datafield></record></collection> |
id | DE-604.BV021251432 |
illustrated | Not Illustrated |
index_date | 2024-07-02T13:39:30Z |
indexdate | 2024-07-09T20:33:52Z |
institution | BVB |
isbn | 3898642208 9783898642200 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-014572823 |
oclc_num | 175099191 |
open_access_boolean | |
owner | DE-1051 DE-92 DE-Aug4 DE-355 DE-BY-UBR DE-M347 DE-860 DE-522 DE-526 DE-634 DE-11 DE-19 DE-BY-UBM DE-188 DE-B768 |
owner_facet | DE-1051 DE-92 DE-Aug4 DE-355 DE-BY-UBR DE-M347 DE-860 DE-522 DE-526 DE-634 DE-11 DE-19 DE-BY-UBM DE-188 DE-B768 |
physical | XIV, 331 S. |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | dpunkt-Verl. |
record_format | marc |
spelling | Westphal, Frank Verfasser aut Testgetriebene Entwicklung - mit JUnit & FIT wie Software änderbar bleibt Frank Westphal 1. Aufl. Heidelberg dpunkt-Verl. 2006 XIV, 331 S. txt rdacontent n rdamedia nc rdacarrier Literatur- und URL-Verzeichnis Seite 321-324 Komponententest (DE-588)4674453-8 gnd rswk-swf Automation (DE-588)4003957-2 gnd rswk-swf JUnit (DE-588)4773076-6 gnd rswk-swf Test-First-Ansatz (DE-588)4674451-4 gnd rswk-swf Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Komponententest (DE-588)4674453-8 s Automation (DE-588)4003957-2 s Test-First-Ansatz (DE-588)4674451-4 s Java Programmiersprache (DE-588)4401313-9 s DE-604 JUnit (DE-588)4773076-6 s Digitalisierung UB Regensburg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014572823&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis Digitalisierung UB Regensburg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014572823&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA Klappentext |
spellingShingle | Westphal, Frank Testgetriebene Entwicklung - mit JUnit & FIT wie Software änderbar bleibt Komponententest (DE-588)4674453-8 gnd Automation (DE-588)4003957-2 gnd JUnit (DE-588)4773076-6 gnd Test-First-Ansatz (DE-588)4674451-4 gnd Java Programmiersprache (DE-588)4401313-9 gnd |
subject_GND | (DE-588)4674453-8 (DE-588)4003957-2 (DE-588)4773076-6 (DE-588)4674451-4 (DE-588)4401313-9 |
title | Testgetriebene Entwicklung - mit JUnit & FIT wie Software änderbar bleibt |
title_auth | Testgetriebene Entwicklung - mit JUnit & FIT wie Software änderbar bleibt |
title_exact_search | Testgetriebene Entwicklung - mit JUnit & FIT wie Software änderbar bleibt |
title_exact_search_txtP | Testgetriebene Entwicklung - mit JUnit & FIT wie Software änderbar bleibt |
title_full | Testgetriebene Entwicklung - mit JUnit & FIT wie Software änderbar bleibt Frank Westphal |
title_fullStr | Testgetriebene Entwicklung - mit JUnit & FIT wie Software änderbar bleibt Frank Westphal |
title_full_unstemmed | Testgetriebene Entwicklung - mit JUnit & FIT wie Software änderbar bleibt Frank Westphal |
title_short | Testgetriebene Entwicklung - mit JUnit & FIT |
title_sort | testgetriebene entwicklung mit junit fit wie software anderbar bleibt |
title_sub | wie Software änderbar bleibt |
topic | Komponententest (DE-588)4674453-8 gnd Automation (DE-588)4003957-2 gnd JUnit (DE-588)4773076-6 gnd Test-First-Ansatz (DE-588)4674451-4 gnd Java Programmiersprache (DE-588)4401313-9 gnd |
topic_facet | Komponententest Automation JUnit Test-First-Ansatz Java Programmiersprache |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014572823&sequence=000003&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014572823&sequence=000004&line_number=0002&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT westphalfrank testgetriebeneentwicklungmitjunitfitwiesoftwareanderbarbleibt |