Wir machen einen Ausflug in die Welt von Test Intelligence, Coverage Profiling und Test-Gap-Analyse. Wie analysiert man Entwicklungs- und Testartefakte, um Fehler effizient zu identifizieren? Wie bewertet man die Diskrepanz zwischen erwarteten und tatsächlichen Ergebnissen? Und wie baut man das ganze in die Pipeline ein? Analysetools versprechen eine kontinuierliche Verbesserungen der Testqualität und -effizienz. Aber was steckt dahinter?
“Wir haben bei uns selber mal ’ne Studie gemacht, ob wir es als Entwickler schaffen, in den Entwickler-Tests die Funktionalität wirklich abzudecken” – Elmar Jürgens
Dr. Elmar Jürgens hat über statische Codeanalyse promoviert und für seine Doktorarbeit den Software-Engineering-Preis der Ernst Denert-Stiftung erhalten. Er ist Mitgründer der CQSE GmbH und begleitet seit zehn Jahren Teams bei der Verbesserung ihrer Qualitätssicherungs- und Testprozesse. Elmar spricht regelmäßig auf Forschungs- und Industriekonferenzen und wurde für seine Vorträge mehrfach ausgezeichnet. 2015 wurde er zum Junior Fellow der Gesellschaft für Informatik ernannt.
Highlights in dieser Episode:
In dieser Folge teile ich meine Erkenntnisse aus einem aufschlussreichen Gespräch mit Elmar Jürgens über Test Intelligence. Wir decken die Bedeutung und Anwendung von Analysetechniken im Entwicklungs- und Testprozess auf, um Fehler effizienter zu finden und die Qualität der Softwareentwicklung zu verbessern.
Heute durfte ich Elmar Jürgens im Podcast begrüßen. Wir sprachen über das Thema Test Intelligence. Dieser Begriff mag zunächst abstrakt erscheinen, doch er umfasst eine Reihe von Analysetechniken, die darauf abzielen, Fehler in weniger Zeit zu finden und dadurch den Softwareentwicklungsprozess erheblich zu verbessern. Von statischer Analyse bis hin zu Coverage Profiling – unser Gespräch deckte ein breites Spektrum an Themen ab, die alle unter dem Dach der Test Intelligence zusammengeführt werden.
Eines der herausstechenden Themen unseres Gesprächs war zweifelsohne die Test-Gap-Analyse. Diese Technik ermöglicht es Teams, ungetestete Änderungen noch vor dem Release aufzudecken. Durch das Zusammenführen von Daten aus dem Versionskontrollsystem und Coverage-Profilern wird eine lückenlose Dokumentation aller durchlaufenden Testschritte erstellt – ein wesentlicher Schritt zur Verbesserung der Qualitätssicherung. Besonders beeindruckend ist dabei, dass nicht nur automatisierte Tests berücksichtigt werden, sondern auch manuelle – eine entscheidende Erweiterung des herkömmlichen Verständnisses von Testabdeckung.
Elmar hob hervor, dass Coverage-Profiler seit Jahren vor allem für automatisierte Tests genutzt worden sind. Die Tatsache, dass wir diese Technologien nun auch erfolgreich für manuelle Tests einsetzen können, markiert einen signifikanten Fortschritt. Diese Entwicklung zeigt deutlich, dass die Grenzen zwischen manuellen und automatisierten Tests verschwimmen und wir uns einer umfassenderen Sichtweise auf Testing nähern.
Elmars Erfahrungen mit verschiedenen Projekten offenbarten überraschende Einsichten: In einem Fall führte eine besonders geringe Testabdeckung sogar zur Beendigung eines Projekts. Solche Momente verdeutlichen die Wichtigkeit einer gründlichen Analyse und Überwachung der Testabdeckung. Es zeigt auch, dass selbst in technisch versierten Teams nicht immer alle Änderungen adäquat getestet werden – ein weiteres Argument für den Einsatz von Test Intelligence.
Unser Gespräch gab auch einen spannenden Ausblick darauf, was uns in der Zukunft im Bereich Test Intelligence erwartet. Von der Nutzung derselben Technologien in Produktion bis hin zur Einführung neuer Analysen wie Test-Smell oder Requirement-Smells – die Möglichkeiten scheinen endlos. Dieser kontinuierliche Fortschritt verspricht nicht nur eine effizientere Fehlerfindung und -behebung, sondern auch eine allgemeine Qualitätssteigerung im Softwareentwicklungsprozess.
Ein besonders interessanter Aspekt ist die Kombination von statischen und dynamischen Analysen. Durch das Verschmelzen beider Ansätze können wir ein präziseres Bild davon erhalten, wo unser Code steht und was verbessert werden muss. Diese hybriden Analysen stellen einen innovativen Ansatz dar, um sowohl Entwickler als auch Tester besser zu unterstützen und letztendlich bessere Software zu entwickeln.