![]() |
|
URL dieses Artikels:
zu Ausgabe:
04.2004
Schneller & besser
Erhöhung der Software-Qualität durch professionelles Bug Tracking
von Gerhard Versteegen
Die Qualität von zu entwickelnder Software ist heutzutage von immer größerer Bedeutung. Fehler im Programmcode und deren Auswirkungen sind teuer und somit wird zunehmend Wert auf eine möglichst frühzeitige Entdeckung, Verwaltung und Behebung von Fehlern gelegt. So genannte Bug- bzw. Defect-Tracking-Werkzeuge bieten hier eine optimale Unterstützung an.
Softwarequalitätssicherung ist durch zwei wesentliche Aspekte geprägt. Auf der einen Seite wird ein klar strukturierter und definierter Prozess benötigt und auf der anderen Seite müssen die entsprechenden Werkzeuge vorhanden sein, die diesen Prozess unterstützen. Neben Black und White Box, Performance, Codeabdeckungswerkzeugen usw. spielen Bug Tracking-Werkzeuge (auch bekannt unter dem Namen Defect Tracking) eine wesentliche Rolle innerhalb des Qualitätssicherungsprozesses. Doch wie hilft eine gute Bug Tracking-Software im Qualitätssicherungsprozess weiter? Unter anderem gibt sie Antworten auf die folgenden Fragen:
![]() Abb. 1: Beispiel für einen Workflow innerhalb eines Bug Tracking-Werkzeugs. Statistiken Es ist eine alte Weisheit, dass man aus Fehlern lernen kann. Als wertvolles Hilfsmittel bieten sich hier Statistiken an, welche u.a. Aussagen geben über:
Die Abbildungen 2 und 3 geben hier aussagekräftige Beispiele. Abbildung 2 visualisiert die vorgenommene Zuordnung von identifizierten Fehlern. Die Grafik bringt zum Ausdruck, dass die meisten Fehler noch nicht zugeordnet worden sind. Hier liegt also ein Handlungsbedarf seitens des Leiters der Qualitätssicherung vor. In Abbildung 3 wird eine grafische Gegenüberstellung der Prioritäten vorgenommen, anhand derer die Fehler von den Entwicklern behoben werden müssen. Hier wird ersichtlich, dass die meisten Fehler dringlicher Natur sind, also nicht bis zum nächsten Zwischenrelease warten können. Sie müssen sofort behoben werden. ![]() Abb. 2: Reportgenerierung - die Zuordnung von Fehlern wird verdeutlicht. ![]() Abb. 3: Reportgenerierung - die Prioritäten der Fehlerbehebung werden darstellt. Unterschiedliche Sichten Innerhalb eines Projektes existieren unterschiedliche Sichten auf ein Bug Tracking-Tool bzw. auf die Fehlerdatenbank des Werkzeugs. Zu unterscheiden sind dabei die folgenden Rollen:
![]() Abb. 4: Listendarstellung einer Fehlerdatenbank. Intelligente Fehlerbehandlung Fehler (Bugs, Defects) in Software haben eine Eigenart: Sie sind oft unberechenbar, denn sie kommen in den unterschiedlichsten Ausprägungen vor und können untereinander Abhängigkeiten aufweisen. Hier ist eine der größten Herausforderungen für ein gutes Bug Tracking zu sehen. Dies soll anhand eines Beispiels verdeutlicht werden: Angenommen ein Qualitätssicherer findet einen Fehler und trägt diesen in die Fehlerdatenbank ein. Sein Kollege findet ebenfalls einen Fehler, der dasselbe Problem betrifft (aber nicht den gleichen Fehler darstellt) und trägt diesen ebenfalls in die Datenbank ein. Bei der späteren Zuordnung der Fehlerbehebung werden diese Fehler dann zwei unterschiedlichen Personen (Entwicklern) zugeordnet. Diese wissen dann in der Regel nicht voneinander. Um hier Verwirrungen zu vermeiden und gleichzeitig eine gewisse Struktur in die Fehlerdatenbank zu integrieren, können Fehler zusammengeführt werden (Merging). Dieses Merging bewirkt, dass die einzelnen Fehler aus der Datenbank gelöscht werden und zu einem einzelnen großen Fehler zusammengefasst werden. Ein weiterer Aspekt im intelligenten Bug Tracking ist die Duplizierung von Fehlern. Oft basieren Fehler auf denselben Grundlagen und es spart viel Zeit, wenn man hier mit Duplizierungsmechanismen arbeiten kann. Dabei ist jedoch zu beachten, dass die Duplizierung nur von erfahrenen Anwendern durchgeführt werden sollte. Ebenso hilfreich wie die Duplizierung ist das Hinzufügen ergänzender Informationen. Bewirkt zum Beispiel ein gefundener Bug eine fehlerhafte Dateiausgabe, so ist es wesentlich sinnvoller, die korrupte Datei dem Fehler als Attachment beizufügen, als wenn man versucht, hier eine textuelle Beschreibung beizufügen. Besonders wenn die Fehlermeldung vom Kunden stammt, wird häufig auf das Hilfsmittel Attachment zurückgegriffen. Besonderheit Produktentwicklung Bug Tracking-Werkzeuge lassen sich sowohl zur Projektentwicklung als auch zur Produktentwicklung einsetzen. Die Besonderheit der Produktentwicklung aus Sicht des Bug Trackings ist darin zu sehen, dass im Gegensatz zur Projektentwicklung hier mehrere Kunden Fehlermeldungen absetzen. Daher ist es notwendig, dass jedem Fehler auch der meldende Kunde als Attribut mitgegeben wird. Das hat den Vorteil, dass man auch eine kundenspezifische Auswertung erzeugen kann. Ferner kann man feststellen, ob ein Fehler eventuell nur bei einem bestimmten Kunden auftritt. In diesem Fall liegt der Verdacht nahe, dass es sich gar nicht um einen Fehler in der Software, sondern eventuell um einen Bedienfehler oder einen Fehler in der erweiterten Software-Ungebung des Kunden handelt. Toolunterstützung Auf dem Markt existieren unterschiedliche (und zwar sowohl hinsichtlich der Funktionalität als auch der Preisgestaltung) Bug Tracking-Werkzeuge. Im Kasten gibt einen Überblick, welche Anforderungen an ein gutes Bug Tracking-Werkzeug zu stellen sind. Diese sind bei der Auswahl eines geeigneten Kandidaten zu berücksichtigen, will man nicht in eine Kostenfalle laufen. Dass Bug Tracking-Werkzeuge ein unverzichtbarer Bestandteil eines professionellen Software Entwicklungsprozesses sind (insbesondere bei größeren Projekten, in denen mehrere Entwickler involviert sind), ist unumstritten. Oft stellt sich die Frage, ob es Sinn macht, auf eine Open Source-Lösung zurück zu greifen, oder ob man lieber ein kommerzielles Werkzeug zum Einsatz bringt. Im Folgenden soll eine Gegenüberstellung dieser beiden Ansätze vorgenommen werden. Open Source-Lösungen haben den generellen Vorteil, dass weder Lizenz- noch Wartungskosten anfallen. Das heißt aber noch lange nicht, dass der Einsatz des Werkzeugs keine Kosten verursacht bzw. dass nicht andere Kosten anfallen. Der erste Knackpunkt ist die Fehlerdatenbank: So ist diese in kommerziellen Produkten meist enthalten, Open Source-Produkte setzen oft auf externen Datenbanken auf. Hier ist genau zu prüfen, welche Kosten hierdurch verursacht werden. Ein weiterer Aspekt ist die Pflege und Weiterentwicklung des Werkzeugs. Hier ist man sicherlich bei einem kommerziellen Anbieter auf der sichereren Seite. Dies gilt besonders dann, wenn individuelle Anpassungen an dem Testprodukt vorgenommen werden müssen, die man nicht gewillt ist selber durchzuführen. In diesem Zusammenhang ist auch der Schulungsaspekt zu sehen, auch wenn Bug Tracking-Werkzeuge sehr intuitiv sind und nur ein minimaler Schulungsaufwand erforderlich ist. So ist es allemal günstiger, eine Herstellerschulung (insbesondere für die Administratoren) in Anspruch zu nehmen, als sich der zeitaufwändigen und auch fehleranfälligen Learning-by-doing-Methode auszusetzen. Ab einer gewissen Projektgröße oder auch Kritikalität des Projektes ist auf alle Fälle von Open Source-Lösungen abzuraten. So sind Feautures wie zum Beispiel die elektronische Signatur meist nur in kommerziellen Produkten enthalten. Die in diesem Artikel dargestellten Screenshots stammen von dem Bug Tracking Werkzeug-Test TrackPro, das hierzulande von QA Systems aus Stuttgart vertrieben wird. Dieses Produkt wird bereits seit 1996 entwickelt und erfreut sich einer großen Verbreitung. Anforderungen an Bug Tracking-Tools Welche Anforderungen muss ein gutes Bug Tracking-Tool erfüllen?
![]() Abb. 5: Moderne Bug Tracking-Werkzeuge verfügen über ein konfigurierbares eMail-Benachrichtigungssystem. |
||
|