Spring-Boot-Teststrategien mit der In-Memory-DB H2

Kurze Releasezyklen und Automatisierung erfordern immer mehr QA in der Entwicklung. Spring Boot bindet für Teststrategien Komponenten wie die Datenbank H2 ein.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Spring-Boot-Teststrategien mit der In-Memory-DB H2
Lesezeit: 15 Min.
Von
  • Julius Mischok
Inhaltsverzeichnis

Fast zwei Jahrzehnte nach der Veröffentlichung des Agilen Manifests hat sich – beflügelt durch agile Methoden – das Wesen der Softwareentwicklung von der reinen Programmierung hin zu einer Ingenieursdisziplin gewandelt. Neben technischen und prozessualen Fragen wird im Bereich der Organisationsentwicklung nach Wegen gesucht, Teams einen Rahmen für selbstorganisiertes Arbeiten zu bieten. Siegfried Kaltenecker entwickelt in seinem Buch "Selbstorganisierte Unternehmen" einen Bezug zwischen der eigenen Arbeit und dem Unternehmenserfolg als wesentliche Voraussetzung dafür. Dies ermöglicht allen Akteuren, jederzeit verantwortliche Entscheidungen zu treffen.

Dieses generelle Prinzip, auf Softwareprojekte übertragen, eröffnet diverse Potenziale zur Steigerung der Wertschöpfung. Neben Dokumentation, Support und der Einhaltung von Budgets spielt die Softwarequalität eine wesentliche Rolle. Hier geht es nicht um die einmalig sichergestellte korrekte Funktion, sondern um die viel zitierte Nachhaltigkeit der Softwaresysteme. Dies spitzt sich letztlich auf die Frage zu, wie moderne Softwareentwicklung durch Prozesse und Tools fortwährend die Qualität des erstellten Quellcodes gewährleisten kann.

Agile Methoden bringen im Idealfall eine deutlich höhere Auslieferungsfrequenz der Software mit sich. Automatisierte Schritte beim Deployment auf unterschiedlichen Stages bis hin zu Live-Umgebungen verlangen wesentlich mehr von der Qualitätssicherung als klassische Entwicklungsmodelle. Die QA muss automatisch regelmäßig und nachvollziehbar werden. Insbesondere dienen Methoden wie Test-driven Development dazu, durch die Fokussierung auf automatisierte Tests unbeabsichtigte Änderungen am System zu vermeiden und der Fehlerregression vorzubeugen – dem erneuten Auftreten von Systemfehlern nach deren zwischenzeitlicher Behebung. Hierbei werden alle Anforderungen und bekannten Fehler zunächst als Testfall formuliert, bevor die tatsächliche Implementierung erfolgt.