Font Size: a A A

Techniques for the analysis and testing of object-oriented programs

Posted on:2001-07-24Degree:Ph.DType:Thesis
University:State University of New York at AlbanyCandidate:Kao, Minghung HowardFull Text:PDF
GTID:2468390014452624Subject:Computer Science
Abstract/Summary:
Object-oriented (OO) features, such as information hiding, encapsulation, inheritance, polymorphism and dynamic binding, promote software reuse and thus facilitate productivity and the likelihood of reliability improvement. But these features may also cause OO programs to be difficult to comprehend, due to their dynamic nature. To improve the adequacy of existing OO analysis and testing techniques, this thesis begins by proposing three types of def-use chains, namely primitive, object and recursive, that can be analyzed at both intra- and inter-class levels. Based on the needs of the granularity, these types of def-use chains are useful for different types of language-processing tools. We also propose an algorithm, that utilizes the Interclass Control Flow Graph for computing safe and precise interprocedural data/object def-use chains, with the same complexity as existing algorithms. In addition, to keep track of the data dependence, at the method level, we propose a function dependence relationship, that has proven to be extremely useful in many areas of application.; The second part of this work, which focuses on OO testing, begins by performing class level testing, using the function dependence relationship proposed in the OO analysis phase. Our class testing technique exploits the function dependence relationship to reduce testing effort for the three major issues in OO testing, namely subclass testing, subclass state testing and polymorphism testing, without degrading the reliability of OO programs. Furthermore, we conduct an empirical study that investigates the effectiveness of traditional testing techniques, as well as existing state-based testing strategies, for detecting faults in OO programs. The results of our empirical study suggest that traditional testing techniques at program level, such as functional testing and white-box approaches, as well as state based testing techniques, are not adequate for detecting OO faults. To this end, we present the object-flow testing technique, for program level testing, which exploits object-flow information to guide the test case selection. Two coverage criteria, namely all-du-pairs and all-bindings are proposed to tackle the problems caused by the OO features. The effectiveness of our methodologies will be shown in the experimental results.
Keywords/Search Tags:Testing, Techniques, OO programs, Features, Function dependence relationship
Related items