Syntactic Fault Patterns in OO Programs

  • Authors:
  • Roger T. Alexander;Jeff Offutt;James M. Bieman

  • Affiliations:
  • -;-;-

  • Venue:
  • ICECCS '02 Proceedings of the Eighth International Conference on Engineering of Complex Computer Systems
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Although program faults are widely studied, there aremany aspects of faults that we still do not understand, particularlyabout OO software. In addition to the simple factthat one important goal during testing is to cause failuresand thereby detect faults, a full understanding of the characteristicsof faults is crucial to several research areas. Thepower that inheritance and polymorphism brings to the expressivenessof programming languages also brings a numberof new anomalies and fault types. In prior work wepresented a fault model for the appearance and realizationof OO faults that are specific to the use of inheritance andpolymorphism. Many of these faults cannot appear unlesscertain syntactic patterns are used. The patterns are basedon language constructs, such as overriding methods thatdirectly define inherited state variables and non-inheritedmethods that call inherited methods. If one of these syntacticpatterns is used, then we say the software contains ananomaly and possibly a fault. This paper describes the syntacticpatterns for each OO fault type. These syntactic patternscan potentially be found with an automatic tool. Thus,faults can be uncovered and removed early in development.