Qualitätssteigerung durch automatisierte Unit Tests
Automatisierte Unit Tests steigern die Code-Qualität, insbesondere im DevOps Umfeld mit Hilfe von Continuous Integration. Zudem minimieren sie bei häufigen und umfangreichen Builds Fehler. Im Idealfall decken sie deshalb den kompletten Quellcode automatisiert ab um manuelle Tests zu minimieren, siehe oben die Test Pyramide von Mike Cohn’s.
Allerdings sieht es in der Wirklichkeit meist genau umgekehrt aus und somit gleicht die Pyramide einer Eiscremewaffel. Die Unit Tests decken nur eine geringe Codebasis ab und müssen folglich über teure manuelle Tests kompensiert werden. Dadurch erhöht jede Zeile Feature Code ohne Test Code die technischen Schulden.
In einem guten Testkonzept sind Unit Tests die erste Wahl. Die Vorteile auf der Hand liegen:
- Unit Tests werden bereits vom Entwickler geschrieben,
- haben kurze Durchführungszeiten und
- geben ein schnelles und erstes Feedback zur Qualität.
Dies ist der Grundstein für Agilität in Ihrem Team!
Was sind Unit Tests?
Unit Tests, auch Komponententest genannt, testen im Optimalfall einzelne Methoden einer Klasse. Hierzu eine kurze Erklärung:
- Es handelt sich um White-Box-Tests, das heißt der zu testende Code ist bekannt.
- Entwickler können sie schnell und einfach schreiben, da keine externen Abhängigkeiten getestet werden. Ebenso wie der Feature Code wird auch der Test Code im Review geprüft und von anderen Entwicklern hinterfragt.
- Die Ausführung der Unit Tests finden bereits auf dem Entwickler PC und automatisiert auf dem Build Server statt. Somit ist ein schnelles erstes Feedback sichergestellt.
- Gute Unit Tests schreibt man in der sogenannten Arrange-Act-Assert-Konvention, was im Grunde den Ablauf beschreibt: Vorbereiten, Ausführen, Überprüfen.
- Bei der Überprüfung wird nicht nur das Ergebnis überprüft, sondern auch ob die erwartende Interaktion stattgefunden hat.
- Weiter sind Unit Tests Voraussetzung für anschließende Integrationstests.
- Für viele Programmiersprachen existieren dazu Testframeworks (z. B. JUnit, PHPUnit).
Entwicklerteams die testgetrieben entwickeln arbeiten nach dem TDD-Pattern (Test-Driven-Development). Dabei wird zuerst der Test Code und danach der Feature Code geschrieben. Die Vorteile sind zum einen, dass sich der Entwickler schon vor der Implementierung über die Testbarkeit seines Codes Gedanken macht und zum anderen, dass der Entwickler sich von Test zu Test arbeitet. Diese kleinschrittige und testgetriebene Entwicklung erhöht die Code-Qualität und die Produktivität, da keine großen, komplexen und fehleranfälligen Implementierungen erfolgen.
Was sind Unit Tests nicht?
Unit Tests stellen die Basis dar und testen den Code auf seine Ausführbarkeit hin. Sie testen keine Abhängigkeiten oder ganzen Funktionen die einem Anwender nützlich sind. Sie grenzen sich daher von folgenden Tests ab:
Name | Beschreibung |
---|---|
Functional Tests Funktionstest |
|
Integration Tests Integrationstest |
|
Exploratory Test Explorativ Tests |
|
Einsatz im DevOps Umfeld
In Atlassian Umgebungen lassen sich Unit Tests automatisiert ausführen und Statistiken zur Codequalität erzeugen:
Atlassian Bamboo kümmert sich als Build Server um die automatisierte Ausführung der Unit Tests. Mit dem integrierten Clover lassen sich zudem einfache Statistiken zur Testabdeckung ermitteln. Außerdem lässt sich Bamboo mit SonarQube verbinden, somit lassen sich umfangreichere Statistiken und das Messen der Codequalität prüfen.
Quellen und Links zum Weiterlesen
- https://www.atlassian.com/blog/add-ons/deliver-faster-and-better-software-using-test-automation
- https://www.atlassian.com/software-testing?tab=deep-dive-resources
- https://confluence.atlassian.com/bamboo/viewing-the-clover-code-coverage-for-a-plan-289276963.html
- https://www.atlassian.com/blog/software-teams/what-self-driving-cars-can-teach-us-about-software-testing
Wir sind Ihr Atlassian-Partner!
Sie möchten Atlassian Tools neu einführen oder besser ausschöpfen? Ihre Mitarbeiter möchten sich gern mehr um ihr Geschäft kümmern anstatt um Aktualität und Struktur Ihrer Atlassian Landschaft? Sie möchten, dass Ihre Tools an Ihren Entwicklungsprozess angepasst werden? Mit unserer langjährigen Erfahrung unterstützen wir Sie gern bei der Einführung und beim Betrieb oder Erweiterungen Ihrer Atlassian Produkte. Sprechen Sie uns unverbindlich an.
Sie haben Fragen?
…oder Anregungen zum Artikel? Dann ist Carsten der richtige Ansprechpartner für Sie:
Geschäftsführer & DevOps Engineer
Carsten Hilber
Carsten ist Ihr erfahrener Experte für Technologie, agile Arbeitsweisen und Innovation bei AIM. Er unterstützt Sie dabei, digitale Veränderungen erfolgreich umzusetzen und Arbeitsprozesse effizient zu optimieren. Mit seinem Know-how entwickelt er maßgeschneiderte Strategien, die Ihre individuellen Anforderungen erfüllen und Ihr Unternehmen zukunftssicher aufstellen.
Weitere Beiträge
April 28, 2025
Qualität im Fokus: AIM auf dem Weg zur ISTQB®-Akkreditierung als Schulungsanbieter
Im Bereich Qualitätsmanagement bereitet AIM aktuell die Akkreditierung als…
Januar 6, 2025
So gelingt modernes Projektmanagement mit Atlassian Jira: Tipps und Funktionen im Überblick
In diesem Blogartikel werfen wir einen genaueren Blick darauf, wie man Jira…
Dezember 11, 2024
Use Case: VHV Versicherungen – Mit dem Data Driven Testing Tool (DDT) Testprozesse automatisiert und effizient durchführen
Die VHV Versicherung ist dabei Ihre Versicherungsverträge von Ihrem bestehenden…
November 20, 2024
Effizientes Testmanagement in Jira – Xray erfolgreich mit AIM einführen
Testen und Qualitätssicherung sind für die erfolgreiche Durchführung von…
Juli 23, 2024
Podcast-Folge: Testmanagement mit Xray at Scale
Die Agile-Test.Bar ist der Podcast von Qytera Software Testing Solutions, der…
Juni 27, 2024
Die richtige Wahl: Projekttypen und Konfigurationen in Jira für optimale Teamarbeit
In der heutigen dynamischen Geschäftswelt ist effizientes Projektmanagement…
März 28, 2024
Die Sicherheit von Kundendaten: Atlassian Cloud vs. Eigene Server
Viele Kund:innen zögern, ihre Daten in die Cloud zu geben, insbesondere wenn es…
August 1, 2023
Wie hängen das Qualitätsmanagement, die Qualitätssicherung und das Testmanagement zusammen?
Im SEP gewährleistet Qualitätsmanagement eine hohe Produktqualität und sorgt…