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 womit 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?
Als Experte für Projekte im Bereich der Technologieberatung stehe ich Ihnen gerne für eine persönliche Beratung und weitere Fragen zur Verfügung.
Vertriebsleiter IT Services
Darko Stankovic
Darko ist Ihr Ansprechpartner bei AIM und Experte für Technologie und agile Arbeitsweisen. Mit seinem umfassenden Fachwissen und seiner langjährigen Erfahrung unterstützt er Sie dabei, die Herausforderungen der digitalen Arbeitswelt erfolgreich zu meistern. Gemeinsam mit Ihnen entwickelt er maßgeschneiderte Lösungen, die Ihre individuellen Bedürfnisse erfüllen und Ihre Geschäftsprozesse effizienter gestalten.
Weitere Beiträge
Dezember 11, 2024
Use Case: VHV Versicherungen – Mit dem Data Driven Testing Tool (DDT) Testprozesse automatisiert und effizient durchführen
In der heutigen Geschäftswelt sind datengetriebene Entscheidungen kein Luxus…
November 20, 2024
Effizientes Testmanagement in Jira – Xray erfolgreich mit AIM einführen
In der heutigen Geschäftswelt sind datengetriebene Entscheidungen kein Luxus…
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
In der heutigen digitalen Welt ist die Sicherheit von Daten ein zentrales…
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…
Februar 2, 2023
6 Phasen einer erfolgreichen Cloud-Migration
Nutzen Sie noch Atlassian Server/Data Center und spüren den Drang in die Cloud?…
Oktober 12, 2022
Podcast Folge: Testmanagement in Jira mit Xray
Die Agile-Test.Bar ist ein Podcast von Qytera Software Testing Solutions, der…