Code coverage criteria are widely used in object-oriented (OO) domains as test quality indicators. However, these criteria are based on the procedural point of view, and therefore do not address the specific features ...
详细信息
Code coverage criteria are widely used in object-oriented (OO) domains as test quality indicators. However, these criteria are based on the procedural point of view, and therefore do not address the specific features of OO programs. In this article, we extend the code coverage criteria and introduce a new set of criterion, called "object coverage criteria," which cope with OO features like object instantiation, inheritance, polymorphism, and dynamic binding. Unlike previous criteria, the new criteria regard the actual type of the object under test and some inherited codes from the parent/ancestor classes that represent the object's states and behaviors. The new criteria have been implemented in a prototype tool called OCov4J for the Java language. Using this tool and conducting an empirical study on 270 classes (with about 50 k lines of code without blank lines and comments) from several large and widely used open source projects, we have found a considerable positive correlation between the object coverage level (defined via the new proposed criteria) and the number of detected specific OO failures. Not only do the proposed criteria provide ease of use, high automation, and low execution cost, but also they can effectively be applied to real-world OO programs.
The mutation method assesses test quality by examining the ability of a test set to distinguish syntactic deviations representing specific types of faults from the program under test. This paper describes an empirical...
详细信息
The mutation method assesses test quality by examining the ability of a test set to distinguish syntactic deviations representing specific types of faults from the program under test. This paper describes an empirical study performed to evaluate the effectiveness of object-oriented (OO) test strategies using the mutation method. The test sets for the experimental system are generated according to three selected OO test strategies and their effectiveness is compared by determining how well the developed test sets kill injected mutants derived from an established mutation system Mothra and the authors' own OO-specific mutation technique which is termed Class Mutation. Copyright (C) 2001 John Wiley & Sons, Ltd.
The application of object-oriented testing methods for observatory control system is discussed in this paper. Based on introducing the development process of OCS, the OCS testing process is presented. The OCS testing ...
详细信息
The application of object-oriented testing methods for observatory control system is discussed in this paper. Based on introducing the development process of OCS, the OCS testing process is presented. The OCS testing methods and contents, including the development model-testing, components testing, architecture testing and the interfacing for subsystem testing are discussed.
The highly incremental and iterative development cycle for object-oriented software demands both many changes and partially implemented resp. re-implemented classes. Much integration and regression testing has to be d...
详细信息
This paper presents our experience in testing an object-oriented software: the Telemetry and Telecommand System (TMTC). The TMTC runs along a distributed architecture comprising microcomputers plus a Data Base server ...
详细信息
This paper presents our experience in testing an object-oriented software: the Telemetry and Telecommand System (TMTC). The TMTC runs along a distributed architecture comprising microcomputers plus a Data Base server inter-connected via LAN under TCP/IP protocol. This in-house developed software was designed according to the object Modelling Technique (OMT). TMTC's software components represent clusters of classes related to functionality and building blocks of generic services. In order to establish a systematic way for the testing activities we have adapted the Hierarchical Approach (HA), proposed by Shel Siegel, to the experience and culture of the team. The HA, focusing on object-oriented testing, has fitted well with the aim of detecting as many faults as possible in the early phases of the development. In the HA almost all classes are individually tested before being gradually integrated into groups. Groups of classes are defined according to the scenarios specified in the system design phase. This has considerably reduced the testing effort. This paper also discusses the system class number in comparison with the number of stubs and drivers generated for testing. The difficulties to test a distributed application for satellite controlling and monitoring are likewise examined.
Given an algebraic specification of a class of objects, we define a fundamental pair as two equivalent terms generated by substituting all the variables on both sides of an axiom by normal forms. For any implementatio...
详细信息
Given an algebraic specification of a class of objects, we define a fundamental pair as two equivalent terms generated by substituting all the variables on both sides of an axiom by normal forms. For any implementation error in the class, if it can be revealed by two equivalent terms in general, it can also be revealed by a fundamental pair. Hence, we need only select test cases from the set of fundamental pairs instead of equivalent pairs in general. We highlight an algorithm for selecting a finite set of fundamental pairs as test cases. Further, by using the relevant observable contexts technique, we highlight another algorithm to determine whether the objects resulting from executing a fundamental pair are observationally equivalent. If not, it reveals an implementation error. Using these algorithms, we have constructed a system to test object-oriented programs at class-level. We describe in detail the implementation of a prototype system, including the data structure of a Data member Relevant Graph (DRG) for the class, the procedures for the construction and path traversal of the DRG, the generation and execution of relevant observable contexts on the objects under test, and the reporting of implementation errors. The implementation illustrates an innovative idea of embedding testing algorithms into an interpreter to facilitate software testing. (C) 2000 Elsevier Science B.V. All rights reserved.
Software testing is considered to be a very important phase in the development of any software. It becomes crucial to inculcate appropriate software testing techniques in every software development life cycle. object-...
详细信息
ISBN:
(纸本)9789811088483;9789811088476
Software testing is considered to be a very important phase in the development of any software. It becomes crucial to inculcate appropriate software testing techniques in every software development life cycle. object-oriented software development has been in use for a while now. Aspect-oriented approach which is comparatively new and works on the basics of object-oriented approach. But aspect-oriented approach also aims to provide modularity, higher cohesion, and separation of concerns. In this paper, we have reviewed the various testing techniques that are developed for both object-oriented and aspect-oriented systems.
As the paradigm of object orientation becomes more and more important for modern IT development projects, the demand for an automated test case generation to dynamically test object-oriented software increases. While ...
详细信息
ISBN:
(纸本)1595930108
As the paradigm of object orientation becomes more and more important for modern IT development projects, the demand for an automated test case generation to dynamically test object-oriented software increases. While search-based test case generation strategies, such as evolutionary testing, are well researched for procedural software, relatively little research has been done in the area of evolutionary object-oriented software testing. This paper presents an approach with which to apply evolutionary algorithms for the automatic generation of test cases for the white-box testing of object-oriented software. Test cases for testingobject-oriented software include test programs which create and manipulate objects in order to achieve a certain test goal. Strategies for the encoding of test cases to evolvable data structures as well as ideas about how the objective functions could allow for a sophisticated evaluation are proposed. It is expected that the ideas herein can be adapted for other unit testing methods as well. The approach has been implemented by a prototype for empirical validation. In experiments with this prototype, evolutionary testing outperformed random testing. Evolutionary algorithms could be successfully applied for the white-box testing of object-oriented software.
The goal of functional testing is to prove that the software performs in conformance with its specification. Functional testing emphasizes the behavioral characteristics of objects by focusing on the interface that is...
详细信息
ISBN:
(纸本)9789549641332
The goal of functional testing is to prove that the software performs in conformance with its specification. Functional testing emphasizes the behavioral characteristics of objects by focusing on the interface that is the public, and defining, feature of a class. There are functional test cases for each individual method and functional test cases that treat the class as a unified component. An algorithm that guides the construction of functional test cases for a class is presented. That algorithm can easily be modified to produce test cases at a greater level of coverage. The input to the algorithm will be portions of the class specification that is produced to guide the design process as much as for the testing process.
暂无评论