Font Size: a A A

Producing dependable object-oriented software using testing and design patterns

Posted on:1999-01-29Degree:Ph.DType:Dissertation
University:North Carolina State UniversityCandidate:Daniels, Fonda JonetteFull Text:PDF
GTID:1468390014969036Subject:Computer Science
Abstract/Summary:
The work described in this dissertation is concerned with two issues from the domain of dependable object-oriented software: (1) Development of fault-tolerant design patterns, and (2) Development of object-oriented testing techniques.; Designs that provide fault tolerance can be used to increase the reliability of object-oriented systems. Design patterns represent the common abstraction that experienced object-oriented designers can use to solve design problems in a way that can be understood and reused by other designers. A new design pattern called the Reliable Hybrid Pattern is presented, that provides a generalized framework that supports development of applications based on "classical" fault-tolerant software strategies such as N-Version Programming and Recovery Block, as well as advanced hybrid fault-tolerant techniques such as Acceptance Voting and Consensus Recovery Block.; Unfortunately, as practical object-oriented systems become more complex, the design and implementation constructs cannot usually be proven correct. When testing object-oriented software, a tester has to consider four levels of abstraction: (1) Routine or method level, (2) Class (intra-class) level, (3) Cluster (inter-class) level, and (4) System level. In this research the focus is inter-class and intra-class testing, which are forms of integration testing. A new inter-class test order strategy is presented along with several inter-class properties. The approach develops an inter-class test order structure based on topological ordering of inheritance, aggregation and association relations. The classes are designed, integrated and tested according to the derived structure.; A new approach to intra-class testing is also developed that involves deriving method sequences from sequencing constraints derived from method pre- and post-conditions. Method sequences are generated based on method sequencing coverage criteria developed as part of this work. The basic approach can be augmented through post-condition checking, or a test oracle or a combination of both. Code mutation and simulations were used to evaluate the effectiveness of this approach. Results show that generation of method sequences from sequencing constraints is an effective approach for assessing program correctness. Basic sequencing detected between 21-49% of the seeded faults, while post-condition checking found 68-87%. Addition of a test oracle further improves the effectiveness of the approach.
Keywords/Search Tags:Object-oriented, Test, Approach
Related items