Qualitätsorientierte Softwareentwicklung mit dem „Roten Faden“
Der Ausdruck „Das zieht sich durch wie ein roter Faden“ steht im Volksmund für eine stringente und nachvollziehbare Abfolge. Eine ähnliche Aufgabe hat der sogenannte Roter-Faden-Test in der Softwareentwicklung: Er gehört zur Kategorie "Funktionaler Test" und beinhaltet die Testfälle, die einen kompletten fachlichen Ablauf der jeweiligen Software abhandeln. Er stellt somit die Grundfunktionalität sicher und gewährleistet einen nahtlosen und logischen Ablauf der Anwendung. Zusätzlich werden potenzielle Fehler frühzeitig identifiziert und die Benutzererfahrung verbessert. Dadurch erhöht sich die Qualität der Software und als direkte Folge auch die Kundenzufriedenheit. Entwickler:innen und Tester:innen gewinnen zudem ein besseres Verständnis der Anwendung. Also ein Gewinn für beide Seiten.
Warum wir auf den Roter-Faden-Test setzen
Effektives Qualitätsmanagement, einheitliche Standards, einheitliche Dokumentation des Testprozesses und kontinuierliche Verbesserung - der Roter-Faden-Test bringt Struktur und Konsistenz in unsere Projekte. Insgesamt trägt ein Roter-Faden-Test dazu bei, die Softwareentwicklung effizienter und zielgerichteter zu gestalten und sorgt dafür, dass die entwickelte Anwendung den Anforderungen und Erwartungen des Kunden gerecht wird. Niedrigere Entwicklungskosten bei gleichzeitiger Qualitätssteigerung der Software – was will man als Kund:in mehr. Aber auch auf Entwickler- und Testerseite gibt es Vorteile, weshalb wir uns bei Teamware dazu entschieden haben, in unseren Software-Projekten durchgängig und verpflichtend einen Roter-Faden-Test einzuführen.
Die Vorteile für alle Beteiligten auf einen Blick
Vorteile für Entwickler:innen und Tester:innen
- Besseres Verständnis der Gesamtstruktur:
Der Roter-Faden-Test ermöglicht es Entwicklern, einen umfassenden Überblick über den Ablauf und die Zusammenhänge der Anwendung zu erhalten. Dadurch können sie die Architektur besser verstehen und potenzielle Probleme oder Inkonsistenzen frühzeitig erkennen. - Fehlererkennung und -behebung:
Durch den Roter-Faden-Test können Entwickler mögliche Fehler oder Defekte im Anwendungsfluss identifizieren und korrigieren. Dies trägt zur Steigerung der Qualität und Stabilität der Software bei. - Benutzerfreundlichkeit:
Der Roter-Faden-Test hilft Entwicklern dabei sicherzustellen, dass die Anwendung eine intuitive und nahtlose Benutzererfahrung bietet. Durch die Überprüfung des Anwendungsflusses können potenzielle Hindernisse oder Unklarheiten für den User identifiziert und behoben werden
Vorteile für Kund:innen
- Erfüllung der Anforderungen:
Der Roter-Faden-Test stellt sicher, dass die entwickelte Softwareanwendung den spezifizierten Anforderungen entspricht und dass die Grundfunktionalität der Anwendung auch bei Änderungen an anderer Stelle erhalten bleibt.. Dadurch wird gewährleistet, dass die gewünschten Funktionen ordnungsgemäß implementiert und der Anwendungsfluss gemäß den Kundenwünschen gestaltet wurde. - Bessere Benutzererfahrung:
Durch den Roter-Faden-Test wird sichergestellt, dass die Anwendung einen reibungslosen und logischen Ablauf aufweist. Dies trägt zu einer besseren Benutzererfahrung bei, da der Kunde die Anwendung intuitiv und ohne Verwirrung nutzen kann. - Höhere Qualität und Zuverlässigkeit:
Durch die Durchführung eines Roter-Faden-Tests wird die Qualität und Zuverlässigkeit der Anwendung verbessert. Potenzielle Fehler oder Mängel im Anwendungsfluss werden frühzeitig erkannt und behoben, was zu einer stabileren und zuverlässigeren Softwarelösung führt.
Viele Herausforderungen erschweren die Einführung
Grundsätzlich ist die Einführung eines Roter-Faden-Tests mit zahlreichen Herausforderungen verbunden:
- Wenn die Anwendung sehr komplex ist oder eine große Anzahl von Funktionen und Interaktionen aufweist, kann es schwierig sein, den gesamten Anwendungsfluss zu verstehen und zu testen.
- Die Identifikation bzw. Erstellung der relevanten Testfälle für einen Roter-Faden-Test erfordert ebenfalls Zeit und bindet Ressourcen, denn ein umfassender Test verlangt eine sorgfältige Planung und Berücksichtigung verschiedener Nutzungsszenarien.
- Auch die Durchführung eines Roter-Faden-Tests ist ein Zeit- und Ressourcenfresser: Er bedingt eine angemessene Ressourcenzuweisung und die Zusammenarbeit zwischen Entwicklern, Testern und anderen relevanten Stakeholdern.
- Zudem muss der Test bei Änderungen und/oder Weiterentwicklungen der Software aktualisiert und gewartet werden. Andernfalls ist die Validität und Effektivität gefährdet.
- Die Automatisierung des Roter-Faden-Tests kann komplex sein, insbesondere wenn es um die Interaktion mit der Benutzeroberfläche oder die Integration mehrerer Systemkomponenten geht. Es erfordert die Auswahl und Implementierung geeigneter Testtools und die Kenntnis der erforderlichen Programmier- und Skriptsprachen.
Wir beraten unsere Kund:innen hinsichtlich solcher Entscheidungen unter Einbeziehung aller Kosten-Nutzen-Faktoren sowie unter Berücksichtigung der verfügbaren Ressourcen und Zeitpläne und finden eine passende und tragbare Lösung zur bestmöglichen Sicherstellung der Qualität der Software.
SonarQube als Unterstützung
Als weitere Säule des Testmanagements haben wir uns im Bereich Komponenten- und Entwicklertests für die Nutzung von SonarQube entschieden.
Dazu unser Test-Experte Dr. Stephan Reck: „SonarQube ist eine Open-Source-Plattform zur statischen Code-Analyse, die Entwickler:innen hilft, die Qualität ihres Quellcodes zu verbessern. Es bietet eine Vielzahl von Tools und Funktionen, um potenzielle Probleme im Code zu identifizieren, also u.a. Fehler, Sicherheitslücken, Coding-Standards-Verstöße und Leistungsprobleme. Damit können wir zum Teil automatisiert und standardisiert Tests abarbeiten, dokumentieren und so unser eigenes Qualitätsmanagement voranbringen.“
Warum ein „externes“ Tool?
SonarQube hat uns aufgrund seiner Funktionalität überzeugt und wird daher zukünftig ein unterstützendes Werkzeug für unsere Roter-Faden-Tests sein. Die wichtigsten Funktionen im Überblick:
- Statische Code-Analyse:
SonarQube führt eine umfassende Analyse des Quellcodes durch, indem es statische Analysetechniken verwendet. Es erkennt Muster und Anomalien im Code und identifiziert potenzielle Probleme. - Automatisierte Code-Rezension:
Mit der automatisierten Code-Rezension können Entwickler:innen Fehler frühzeitig erkennen. SonarQube gibt Feedback zu Code-Qualitätsstandards und hilft, Best Practices einzuhalten. - Dashboards und Berichte:
Die Plattform bietet übersichtliche Dashboards und Berichte, die einen umfassenden Überblick über den Code-Qualitätsstatus des Projekts geben. Es stellt Metriken zur Verfügung, wie beispielsweise die Codeabdeckung durch Tests, Anzahl der Code-Duplikate und technische Schulden. - Unterstützung für verschiedene Sprachen:
SonarQube unterstützt eine breite Palette von Programmiersprachen, einschließlich Java, C#, C/C++, JavaScript, Python und vielen mehr. Dadurch können Entwickler unabhängig von der verwendeten Sprache von den Funktionen der Plattform profitieren. - Integration mit Entwicklertools:
SonarQube kann nahtlos in bestehende Entwicklungsworkflows integriert werden. Es bietet Plug-ins und Erweiterungen für eine Vielzahl von Entwicklungsumgebungen und CI/CD-Tools, einschließlich Jenkins, Azure DevOps, IntelliJ IDEA und Eclipse.
Mit SonarQube können wir effizient arbeiten und unsere Ressourcen sinnvoll einsetzen. Und davon profitieren vor allem unsere Kund:innen.