Kapitel 1. Checkerberry test center

Inhaltsverzeichnis

1.1. Einleitung
1.2. Release-Notes
1.2.1. Änderungen in Version 3.1.5
1.2.2. Änderungen in Version 3.1.4
1.2.3. Änderungen in Version 3.1.3
1.2.4. Änderungen in Version 3.1.2
1.2.5. Änderungen in Version 3.1.1
1.2.6. Änderungen in Version 3.1.0
1.2.7. Änderungen in Version 3.0.6
1.2.8. Änderungen in Version 3.0.0
1.3. Allgemeine Test-Konzepte
1.3.1. Test-Arten
1.3.1.1. Unit-Tests
1.3.1.2. Integrationstests
1.3.1.3. GUI-Tests
1.3.1.4. Abgrenzung Unit- und Integrationstests
1.3.2. Test-Durchführung
1.3.2.1. Manuelle Tests
1.3.2.2. Automatisierte Tests
1.3.2.3. Regressionstests
1.3.3. Testframeworks
1.3.3.1. Test-Ablauf
1.3.4. Acceptance Test Driven Development (ATDD)
1.3.5. Positionierung des checkerberry test centers
1.4. Checkerberry Maven-Repository

1.1. Einleitung

Automatisierte Tests bilden das Herzstück eines guten Software-Entwicklungsprozesses. Sie ermöglichen den Einsatz von Continuous Integration Produkten, die dem Entwicklungsteam permanent Feedback über die Qualität des Systems liefern. Dies erhöht die Sicherheit bei der Software-Entwicklung, da Auswirkungen von Änderungen oder komplexen Refactorings schnell sichtbar werden. Dies steigert die Qualität der Software und somit auch die Kundenzufriedenheit. Continuous Integration Umgebungen sind mittlerweile den Kinderschuhen entwachsen und lassen sich auch ohne viel Erfahrung schnell einrichten. Eine Test-Umgebung ohne Tests liefert keine Fehler - allerdings auch keine Informationen. Der Grund für fehlende Tests ist vielfältig. Oft werden Zeitgründe vorgeschoben oder Komponenten als untestbar eingestuft.

Die Art und Weise wie Software getestet wird, befindet sich im Wandel. Während früher eigene Testteams und Testphasen vorgesehen waren, integriert sich der Prozess immer weiter in die Software-Entwicklung. Diese Entwicklung hat zwei Ursachen. Zum einen propagieren agile Vorgehensmodelle wie Scrum oder eXtreme Programming (XP), dass Software-Komponenten erst fertig entwickelt sind, wenn sie auch umfangreich getestet wurden. Durch die starke Verbreitung agiler Prozesse wandert somit immer mehr Testverantwortung in die Richtung des Software-Entwicklers. Zum anderen wächst das Verständnis im Management, dass die Behebung von Fehlern teurer wird, je später sie entdeckt werden. Oder andersherum: Je früher Fehler entdeckt werden, umso günstiger ist deren Behebung. Diese beiden Faktoren führen dazu, dass sowohl das Management als auch das Projektteam das Testen während der Software-Entwicklung fordern und fördern.

Bei der Betrachtung von Tests muss man zwischen manuellen und automatisierten Tests unterscheiden. Manuelle Tests werden durch eine Person durchgeführt, die direkte Aktionen am Rechner durchführt. Im Gegensatz dazu werden automatisierte Tests von einem eigenen Software-Programm durchgeführt. Automatisierte Tests haben den entscheidenden Vorteil, dass sie nur einmal erstellt werden müssen und dann beliebig oft ausführbar sind. Der Anspruch eines Software-Entwicklers besteht darin, eine hohe Testabdeckung durch automatisierte Tests zu erzielen. Durch die regelmäßige Ausführung der Tests z.B. in Continuous Integration Systemen bekommt der Entwickler ein schnelles Feedback zur Qualität der Software.

Das Herstellen der Testvoraussetzungen muss schnell möglich sein, damit der Fokus auf den eigentlichen Testfall gelegt werden kann. Mit dem checkerberry test center ist diese Voraussetzung geschaffen, wodurch die Produktivität des Software-Entwicklers bei der Testerstellung massiv gesteigert werden kann.

Das checkerberry test center ist eine Sammlung von Bibliotheken und Werkzeugen für die Optimierung der Entwicklung von automatisierten, funktionalen Integrationstests. Das checkerberry test center fokussiert sich auf spezielle Bereiche, die sich zwar gut testen lassen, die jedoch einen hohen Aufwand bei der Testerstellung erfordern. Das checkerberry test center kapselt diese komplexen und aufwändigen Aspekte der Testerstellung und stellt dem Software-Entwickler eine einfache Schnittstelle für die Testerstellung zur Verfügung. Dieses Benutzerhandbuch richtet sich an Software-Entwickler und liefert einen vollständigen Überblick über die Bibliotheken checkerberry db, und checkerberry web sowie über checkerberry business view und checkerberry cockpit. Die Beschreibungen umfassen die Funktionsweise, die Architektur und die Installation der einzelnen Komponenten. Zusätzlich geben die Best Practices und die Beantwortung häufig gestellter Fragen einen Einblick in die Praxis.