Meffert IT Consulting

JUnit Profi Tipps


JUnit Profi-Tipps kaufen

Zum Buch

Probekapitel

Inhaltsverzeichnis

Verzeichnis der Rezepte

Verzeichnis der Antipatterns

Buchrezension

Bei Amazon ansehen

Als eBook bestellen

JUnit Profi-Tipps - das Buch

Ein kompaktes, in handliche Rezepte unterteiltes Nachschlagewert mit Tipps aus der Profi-Praxis zum Thema JUnit und zu automatisierten Software-Tests. Die vielen Rezepte werden durch Antipatterns - das sind falsche oder suboptimale Lösungswege - abgerundet.

Buchrezension anzeigen

 Probekapitel lesen

 

Aus dem Inhalt

Das  Buch behandelt viele Themen rund um den erfolgreichen Test von Software, darunter auch

  • JUnit 4 - brandneu erschienen und bereits  angemessen gewürdigt

  • Bewährte Techniken - anschaulich beschrieben, langjährig bewährt

  • Verweis auf Referenzprojekte - wie machen es die Profis?

  • Entwurfsmuster und wie sie getestet werden können

  • Beispiele - sowohl positive als auch  negative - aus dem Open-Source Bereich

  • Kompakte Zusammenfassung jedes Abschnitts für ein schnelles Auffinden von Hinweisen

  • Viele Tipps, um klassische Unit-Tests richtig und optimal zu implementieren

  • Erstellen eigener Basistestklassen und Testhierarchien

  • GUI-Tests (Oberflächen testen)

  • Viele weitere Tipps & Tricks

  • Ein klassisches Inhaltsverzeichnis und je ein Verzeichnis der Rezepte und Antipatterns machen das Auffinden hilfreicher Informationen einfach

  • 219 Seiten geballte Information

Zum vollständigen Inhaltsverzeichnis    Als PDF bestellen

Wie das Buch entstand

Ausgangssituation war die jahrelange Beschäftigung mit dem Thema Unit Tests, insbesondere mit Java und JUnit. Die vielen Erfahrungen, die ich während mehrerer umfangreicher Software-Projekte auf diesem Gebiet gesammelt habe, waren Anlass für das Buch. Ein Open-Source Projekt verhalf mir zu weiteren Einsichten: Die daran freiwillig Mitwirkenden waren teils gute bis sehr gute Entwickler und Experten auf ihrem Fachgebiet (etwa in der Biologie). Dennoch wurden viele Unit Tests nur suboptimal oder entgegen der Philosophie von JUnit erstellt. Das führte mit der Zeit zu entarteten Testfällen, die größtenteils umgestrickt werden mussten. Das Buch JUnit Profi-Tipps vermittelt Wissen und Hinweise und hilft so beim Planen und Erstellen optimaler Unit Tests mit JUnit. Aus einer Idee wurde ein Projekt. Nun ist es gereift und hat mir viel Freude bereitet.

Ihnen wünsche ich viel Spaß beim Lesen!

Klaus Meffert

Das komplette Inhaltsverzeichnis

Vorwort
1 Einleitung
1.1 Unit Tests und weitere Spielarten
1.2 Nutzen von Unit Tests
1.3 Aufbau des Buchs
1.4 Die Icons in diesem Buch
2 Grundlagen
2.1 Grundlegende Begriffe
Testkörper und Testklasse
Testfall
Unit Test
JUnit kompakt
assert- und fail-Methoden
Annotationen
2.2 Zeitpunkt der Erstellung von Testfällen
Konventionelle Herangehensweise
Testgetriebene Entwicklung
Temporäre Testfälle
2.3 Der Software-Entwicklungsprozess
3 Erstellung von Unit Tests
3.1 Benennen von Testklassen
3.2 Benennen von Testmethoden
3.3 Konsolenausgaben in Testfällen
3.4 Implementieren eigener Basistestklassen
3.5 Testsuiten
3.6 Verzeichnisstruktur in Projekten
3.7 Virale Lizenzen
3.8 Enterprise Java Beans (EJBs).
4 Automatisches Generieren von Unit Tests
5 Schreiben von Testlogik
5.1 Testen von Rückgabewerten
5.2 Ausnahmen (Exceptions).
5.3 Abstrakte Klassen
5.4 Testen privater Methoden und Felder.
5.5 Testen auf Serialisierbarkeit
5.6 Threads testen (Ergänzung zum Buch)
5.7 Zufallszahlen-abhängige Logik
5.8 Testen besonderer Methoden
6 Analyse von Quelltext
6.1 Verdächtiger Code und Fehler in Unit Tests
7 Code Coverage / Test Coverage
8 Performanz- und Lasttests
9 Entwurfsmuster
9.1 Erzeugungsmuster
Singleton (Buchauszug online)
Factory Method
9.2 Verhaltensmuster
Template Method und Strategy.
Observer
Iterator (Buchauszug online)
9.3 Strukturmuster.
Proxy
10 Graphische Benutzeroberflächen
11 JUnit 4 (Ergänzung zum Buch)
12 Schlusswort
13 Ressourcen
13.1 Unit Tests.
13.2 Performanz- und Lasttests
13.3 Testen von Benutzeroberflächen
13.4 Analysieren von Quelltext
13.5 Erstellen von Testfällen
13.6 Code Coverage / Test Coverage
13.7 Testen von Webanwendungen
13.8 Beispielprojekte
13.9 Sonstiges
13.10 Literaturempfehlungen
Testen von Software
Entwurfsmuster
Verzeichnis der Rezepte
Verzeichnis der Antipatterns
Index
 

Verzeichnis der Rezepte

  1. Jede Testklasse erbt von TestCase

  2. Überschreiben der Methode runTest()

  3. Zeitpunkt der Testfallerstellung

  4. Benennen von Testklassen

  5. Benennen von Testmethoden

  6. Vermeiden von Konsolenausgaben

  7. Abstrakte Testklassen einführen

  8. Testklassen gruppieren

  9. (De-)Initialisierung in Testklassen

  10. Annotationen für Tests verwenden

  11. Globale (De-)Initialisierung mit TestSetup

  12. Globale (De-)Initialisierung mit Hilfe statischer Blöcke

  13. Fehlgeschlagene Initialisierung in setUp() behandeln

  14. Pro Package eine umfassende Suite

  15. Testsuiten mit JUnit-Addons zusammenstellen

  16. Testsuiten mit RMock zusammenstellen

  17. Testsuite mit GSBase zusammenstellen

  18. Konfigurierbare Testsuiten

  19. Eine allumfassende Testsuite namens AllTests

  20. Ablage von Tests, Testdaten und Geschäftslogik

  21. Tests für lizensierte Bibliotheken auslagern

  22. EJB-Code mit ServerTestCase testen

  23. EJB-Code mit MockEJB testen

  24. Generieren von Testfällen mit JUnitDoclet

  25. Generieren von Testfällen mit NetBeans

  26. Generieren von Testfällen mit Eclipse

  27. Generieren von Testfällen mit JBuilder

  28. Testen von Typen auf Gleichheit

  29. Testen auf korrekte Inhalte einer Liste

  30. Vergleichen von Arrays

  31. Testen auf korrekte Inhalte einer Map

  32. Testen von Ausnahmen

  33. Ausnahmen testen: Variationen im catch-Block

  34. Von erwarteter Exception abgeleitete Exceptions

  35. Ausnahmen mit bestimmtem Meldungstext

  36. Testen abstrakter Klassen

  37. Private Methoden per Reflection testen

  38. Private Felder per Reflection testen

  39. Testen der Serialisierbarkeit einer Klasse

  40. Threads mit GroboUtils testen

  41. Thread-Dumps auswerten

  42. Zufallsgenerator-abhängige Logik testen

  43. Die Methode equals(Object) implementieren und testen

  44. Die Methode hashCode() implementieren und testen

  45. Die Methode toString() testen

  46. Die Methode clone() testen

  47. Quelltext mit JCSC prüfen

  48. Programmanalyse mit JLint

  49. Konventionen mit Checkstyle prüfen

  50. Spezielle Konfiguration von Checkstyle für Unit Tests

  51. Dateizugriffe mit Ashcroft prüfen

  52. Konventionen mit PMD prüfen

  53. PMD-Prüfungen deaktivieren

  54. Konventionen mit FindBugs prüfen

  55. Testbedarf mit EMMA ermitteln

  56. Code Coverage mit JCoverage ermitteln

  57. Unvollständige Tests mit Jester finden

  58. Performanztests mit JUnitPerf

  59. Lasttests mit JUnitPerf

  60. Speicherverbrauch testen mit SimpleProfiler

  61. Das Entwurfsmuster Singleton testen (Buchauszug online)

  62. Thread-sichere Singleton-Version testen

  63. Das Entwurfsmuster Factory Method testen

  64. Das Entwurfsmuster Template Method testen

  65. Das Entwurfsmuster Observer testen

  66. Das Entwurfsmuster Iterator testen (Buchauszug online)

  67. Das Entwurfsmuster Proxy testen

  68. Simulation einer Tastatureingabe

  69. Komponenten mit jfcUnit testen

  70. Swing-Komponenten mit Jemmy testen

  71. Simulation eines Endanwenders mit Jacareto

  72. Testfälle mit JUnit 4 erstellen

  73. Ignorieren von Testfällen mit JUnit 4

  74. Testen von erwarteten Ausnahmen mit JUnit 4

  75. Timeouts in JUnit 4-Testfällen

  76. Parametrisierbare Testfälle

  77. (De-)Initialisierungen mit JUnit 4

  78. Ausführen von Tests mit JUnit 4

  79. Testsuiten mit JUnit 4 definieren

  80. Testfälle aus JUnit 3 mit JUnit 4 ausführen

Verzeichnis der Antipatterns

  1. Testklasse erbt nicht von TestCase

  2. Methode runTest() beinhaltet Testlogik

  3. Vermischen von Testlogik mit Geschäftslogik

  4. Geordnetes Ausführen von Testmethoden

  5. Abhängige Testmethoden

  6. System.out und System.err in Tests

  7. Initialisierung im Konstruktor

  8. Globale (De-)Initialisierung in der Testsuite

  9. Tests direkt im Projektverzeichnis ablegen

  10. Falsche Verwendung von assertEquals und assertTrue

  11. Test auf Objekt im Teilbereich einer Liste

  12. Die Klasse ExceptionTestCase

  13. Neue Methode zum Test einer privaten Methode einführen

  14. Die Klasse SerializabilityTestCase aus JUnit-Addons

  15. Threads mit Hilfe von Thread.sleep(int) testen

  16. 100% Testabdeckung als Endziel anstreben

  17. Testmethode mit Parameter