Orthogonal Defect Classification       


P.  Santhanam photo

Orthogonal Defect Classification - Details on ODC

ODC Details

Bug under magnifier

ODC v5.2 for Design & Code:

During an ongoing software development, information on defects is available at two specific points in time. When a defect record is opened, the circumstances leading to the finding of the defect and the likely impact to the user are typically known. Three attributes captured at this time are:

  • ODC Activity: Design Review, Unit Test, Function Test, etc.
  • ODC Trigger: The environment or the condition that led to the exposure of the defects, typically captured in recreate scenarios
  • ODC Impact: The potential impact of the defect on the intended user

When the defect record is closed after the fix is applied, the exact nature of the defect and the scope of the fix are known. Five attributes captured at the closing time are:

  • ODC Target: Represents the high level artifact that was fixed. When there is a defect in the code implementation relative to the Design or Requirements, developers fix the code and hence 'Code' will be the appropriate target. In cases where the code implementation is different from the specifications in Design or Requirements, if the code implementation is accepted over the Design or Requirements, implicitly those documents would need to be changed and hence 'Design' or 'Requirements' be chosen as the Target. In commerical software development practices, such rigor is not common.
  • ODC Defect Type: The scope of the fix (assignment, checking, algorithm, etc.)
  • ODC Qualifier: The fix required addition of some missing code or fixing of the existing incorrect code or the removal of extraneous code
  • ODC Source captures the orgin of the code that had the defect (developed in house, reused from a library, etc.)
  • ODC Age: Indicates the age of the code that had the defect in terms of its developmental history (Base code from a pervious release, New code for the current release, etc.),

These eight defect attributes, together, capture the semantics of a defect from all relevant perspectives. ODC for Design & Code document gives the details related to the original ODC scheme, actual steps involved in the classification of defects and recommendations for the implementation of the defect collection process.

ODC v5.2 Extensions for Defects in GUI, User Documentation, Build and National Language Support (NLS):

Historically, ODC for Design and Code (discussed above) is the scheme that has been used the most in software projects and research articles. However, it is clear that a software development organization has also to perform other related activities, particularly, Information Development (i.e. the creation of User Documentation), Design and Implementation of a Graphic User Interface, Build & Packaging and National Language Support (NLS) i.e. support for different languages (English, German, Chinese, etc) . To meet these needs, we have evolved some ODC attributes for these areas also.

  • The scheme for Information Development has its own unique ODC Triggers and ODC Defect Types since it is a different and parallel process from the development and testing of the Design or Code.
  • Finding GUI defects is typically a separate activity, focusing on the defects in the user interface with the software. Hence the ODC Triggers for the GUI defects are different. However, since the fixing process involves design or code artifacts, the rest of the defect attributes are the same as for Design & Code.
  • The process of Build and Packaging of the software for distribution can introduce defects in the software package to distributed. We have assumed that these processes do not have their own testing activities and rely on traditional testing activities to find these defects. Since these defects are different from the defects in the product code, we have introduced a separate set of defect types for these Build & Packaging defects.
  • National Language Support (NLS) assume that defects are being found by the normal testing process for Design and Code (using the same triggers and impacts) while the nature of the fix may be related to NLS specifics.

This document gives the details related to the Orthogonal Defect Classification Extensions for Defects in GUI, User Documentation, Build and National Language Support.