Orthogonal Defect Classification
Orthogonal Defect Classification (ODC) ist ein Modell zur Fehlerklassifikation in der Softwareentwicklung, das bei IBM entwickelt wurde. Durch die Klassifikation von Fehlern nach bestimmten Kategorien und Attributen lassen sich Zusammenhänge zwischen dem Entwicklungsprozess und der Ursache von Fehlern in der Software aufzeigen. Anhand dieser Erkenntlissen lassen sich gezielte Massnahem zur Verbesserung des Entwicklungsprozess ableiten und somit die Softwarequalität steigern.
Konzept
ODC gehört zur Klasse der Ursachenanalyse (Root cause analysis) und ist eine Tecknik aus dem Bereich Software Engineering. Im Gegensatz zur klassischen Ursachenanalyse werden hierbei die einzelnen Fehler nicht detailiert und zeitaufwändig analysiert, sondern mittels vordefinierten Kategorien semantisch klassifiziert.
Fehlerklassifikation
Bei der Fehlerklassifikation mittels ODC werden 2 Sektionen unterschieden:
- Opener Section
- Closer Section
Beide Sektionen werden dabei nochmals in 3 bzw. 5 Kategorien unterteilt. Wird ein Fehlverhalten entdeckt, so erfolgt eine erste Klassifikation mit Hilfe der Kategorien der Opener Section. Dabei konzentriert sich die Klassifikation auf die Umstände (um diese auch später reproduzieren zu können) die dazu geführt haben, dass ein Fehlerverhalten auftrat. Nach der Behebung des Fehlers, erfolgt eine weitere Klassifikation anhand der Kategorien aus der Closer Section. Mit Hilfe der Closer Section erfolgt die Bestimmung der Ursache die zu dem Fehler geführt haben.
Opener Section
Die Opener Section besteht aus den Kategorien:
- Activity: Wann wurde ein Fehler gefunden? Hierbei ist nicht das Datum gemeint, sondern der Zeipunkt innerhalb des Entwicklungsprozesses bzw. des Produktlebenszyklus.
- Bsp.: Design- oder Codereview, Modul- Komponenten- oder Systemtest.
- Trigger: Wie wurde der Fehler gefunden? Hierbei darf der Trigger nicht mit dem Symptom, also der Auswirkung eines Fehlers bzw. dem Fehlverhalten eines Programms verwechselt werden.
- Bsp.: Durch einen Fehler in einer Zählschleife wird ein falscher Wert auf der Benutzeroberfläche angezeigt. Das Symptom ist dabei, die Anzeige des falschen Wertes. Der Trigger könnte in diesem Fall ein Boundary-Value Test gewesen sein. Der Trigger ist somit der Katalysator der einen Fehler zu einem Fehlverhalten werden lässt.
- Impact: Welche Auswirkungen ergeben sich für den Kunden bzw. hätten sich ergeben können, wenn der Fehler erst beim Kunden entdeckt worden wäre in Bezug auf ISO 9126?
Closer Section
Die Closer Section besteht aus den Kategorien:
- Target: Welches Objekt wurde verbessert, damit der Fehler behoben werden konnte?
- Defect Type: Was genau musste verbessert werden, damit der Fehler behoben werden konnte?
- Bsp.: Zuweisung, Schnittstelle, Algorithmus
- Qualifier: Spezifiziert ob die Behebung eines Fehler aufgrund von: Fehlendem, fehlerhaftem oder überflüssigem Quellcode erfolgte.
- Age: Spezifiziert ob der Fehler in einem neuen, basis, umgeschriebenen (refactored code) oder fehlerbereinigtem Codezweig auftrat.
- Source: Spezifiziert ob der Fehler innerhalb des Quellcodes aus Eigenentwicklung, Wiederverwendung (reuse), Portierung oder von Drittanbietern stammt.
Schwierigkeiten bei der Verwendung von ODC
Da es sich bei der Fehlerklassifikation mittels ODC um einen von Menschen durchgeführten Prozess handelt, besteht die Gefahr, dass aufgrund von unterschiedlichen subjektiven Aufassungen die Klassifikation eines Fehlers zu unterschieden führt. Dies kann durch eine gezielte Anpassung der Attribute an die jeweiligen Umstände in der Entwicklung für die einzelnen Kategorien in der Opener und Closer Section positiv beeinflusst werden. Daher sollten die einzelnen Attribute einer Kategorie orthogonal zueinander sein, um somit den Raum für eine etwaige Intepretation durch den Einzelnen gering zu halten.