- 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 der dabei gewonnen Erkenntnisse lassen sich Maßnahmen zur Verbesserung des Entwicklungsprozess ableiten.
Inhaltsverzeichnis
Konzept
ODC gehört zur Klasse der Ursachenanalyse (Root cause analysis) und ist eine Technik aus dem Bereich Software Engineering. Im Gegensatz zur klassischen Ursachenanalyse werden hierbei die einzelnen Fehler nicht detailliert und zeitaufwändig analysiert, sondern mittels vordefinierten Kategorien semantisch klassifiziert.
Fehlerklassifikation
Bei der Fehlerklassifikation mit ODC wird der Fehler zweimal klassifiziert – bei Feststellen des Fehlers nach den Kriterien der sogenannten „Opener Section“; nach dem Beheben dann noch einmal nach denen der „Closer Section“. In der Opener Section liegt der Fokus auf den Umständen, die zum Fehlverhalten geführt haben – so können diese auch später reproduziert werden. In der Closer Section wird die Ursache bestimmt, die zu dem Fehler geführt haben. Die Opener Section bietet drei Kategorien, die Closer Section fünf.
Opener Section
Die Opener Section besteht aus den Kategorien:
- Activity: Wann wurde ein Fehler gefunden? Hierbei ist nicht das Datum gemeint, sondern der Zeitpunkt innerhalb des Entwicklungsprozesses bzw. des Produktlebenszyklus.
- Beispiel: 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.
- Beispiel: 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 sozusagen 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?
- Beispiel: 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 einem fremden Anbieter stammt.
Schwierigkeiten bei der Verwendung von ODC
Da es sich bei der Fehlerklassifikation mit ODC um einen von Menschen durchgeführten Prozess handelt, besteht die Gefahr, dass aufgrund von unterschiedlichen subjektiven Auffassungen 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 Interpretation durch den Einzelnen gering zu halten.
Literatur
- Ram Chillarege et al.: Orthogonal defect classification -- A concept for in-process measurements. In: IEEE Transactions on Software Engineering. Nr. 18, 1992, S. 943-956 (Artikel).
- Ram Chillarege: ODC - a 10x for Root Cause Analysis. 2006 (PDF).
- Pankaj Jalote et al.: Using defect analysis feedback for improving quality and productivity in iterative software development. In: Proceedings of the Information Science and Communications Technology (ICICT 2005). 2005, S. 701-713 (PDF).
- M. Butcher et al.: Improving software testing via ODC: Three case studies. In: IBM System Journal. Nr. 41, 2002 (Artikel).
Kategorien:- Klassifikation
- Softwaretechnik
- Qualitätsmanagement (Softwaretechnik)
Wikimedia Foundation.