Font Size: a A A

Study Of The Theory And Techniques For Testing Object-Oriented Software

Posted on:2000-02-15Degree:DoctorType:Dissertation
Country:ChinaCandidate:J Q GuoFull Text:PDF
GTID:1118359972950037Subject:Circuits and Systems
Abstract/Summary:PDF Full Text Request
The object-oriented paradigm is being used increasingly for software development in recent years. Object-Orientation also introduced a number of new and challenging testing problems. Adaptation of the existing testing techniques for traditional procedural-language programs is necessary, and new testing approaches specific to object-oriented software need to be developed. But relatively little work has been done to address the questions of how 00 programs should be tested. Undoubtedly, the ultimate success of 00 paradigm largely depend on whether or not effective testing techniques suitable for 00 software is available. While performing class testing, it is necessary and important to test all the method interactions within a class other than testing the methods separately. Since the 00 paradigm promotes reuse, it can be argued that the need for meticulously tested components is even more important for 00 software than for traditional software. Only if a class has been tested in all possible usage context, we can say the class can work correctly and it is reusable. MtSS, a specification technique for 00 software, is proposed in the literature [23]. The MtSS of a class specifies the valid sequence in which its methods can be invoked for the correct behavior of instances of the class. The author of this thesis found that MtSS can directly support test case generation for class testing and develop a test case generation technique using MtSS. To generate less number of test cases that are effective in identifying most of the bugs in a program, partition-based strategy for test case generation is suggested and some partition criteria is given. Robustness of object is essential for reliability of 00 systems. Due to this, we propose a test case generation technique from MtSS for testing the robustness of objects as well. The second part of this research work focus on test adequacy and test case reuse during inter-class integration testing of 00 programs, which is an area receiving little attention so for. The concept of contract testing, which is based on contract specification, is put forward by the author. The aim of contract testing is to check whether client class can interact correctly with server class. Inheritance and polymorphism has great implication on testing of 00 programs. On one hand, inheritance and polymorphism lead to subtype substitutability, making test effort considerably increased; On the other hand, inheritance facilitates reuse of previous test resources, including test cases and test results. In chapter 5, implication of inheritance and polymorphism on contract testing is investigated comprehensiyely, particularly which test is necessary and which test can be saved. c/i iv Meanwhile, we give a discussion of how to reuse previous test cases, by taking advantage of inheritance relationship between classes. To reduce the test effort for construction of test drivers and test stubs, finding proper (optimal) test order for inter-class integration testing of 00 programs is an important issue. A 00 program can be view as a set of classes with various complex relationships among them. Due to tbis reason, fradilioaial integration strategy, which is based on hierarchical structure of module organization, is not applicable to 00 programs. Constructing stub is even more harder for methods of classes...
Keywords/Search Tags:Software Testing, Object-Oriented Paradigm, Verification & Validation, Object-Oriented Programniing(OOP), Integration Testing, Object-Oriented Software Engineering(OOSE), Software Specification
PDF Full Text Request
Related items