dA number of activities involved in testing software are known to be difficult and time consuming. Among them is the definition and coding of test oracles and the isolation of faults once failures have been detected. ...
详细信息
dA number of activities involved in testing software are known to be difficult and time consuming. Among them is the definition and coding of test oracles and the isolation of faults once failures have been detected. Through a thorough and rigorous empirical study, we investigate how the instrumentation of contracts could address both issues. Contracts are known to be a useful technique in specifying the precondition and postcondition of operations and class invariants, thus making the definition of object-oriented analysis or design elements more precise. It is one of the reasons the object Constraint Language (OCL) was made part of the Unified Modeling Language. Our aim in this paper is to reuse and instrument contracts to ease testing. A thorough case study is run where we define OCL contracts, instrument them using a commercial tool and assess the benefits and limitations of doing so to support the automated detection of failures and the isolation of faults. As contracts can be defined at various levels of detail, we also investigate the cost and benefit of using contracts at different levels of precision. We then draw practical conclusions regarding the applicability of the approach and its limitations. Copyright (C) 2003 John Wiley Sons, Ltd.
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...
详细信息
A number of strategies have been proposed for state-based class testing. An important proposal made by Chow, that was subsequently adapted by Binder, consists in deriving test sequences covering all round-trip paths i...
详细信息
ISBN:
(纸本)0769517633
A number of strategies have been proposed for state-based class testing. An important proposal made by Chow, that was subsequently adapted by Binder, consists in deriving test sequences covering all round-trip paths in a finite state machine (FSMs). Based on a number of (rather strong) assumptions, and for traditional FSMs, it can be demonstrated that all operation and transfer errors in the implementation can be uncovered. Through experimentation, this paper investigates this strategy when used in the context of UML statecharts. Basecton a set of mutation operators proposed for object-oriented code we seed a significant number of faults in an implementation of a specific container class. We then investigate the effectiveness of four test teams at uncovering faults, based on the round-trip path strategy, and analyze the faults that seem to be difficult to detect. Our main conclusion is that the round-trip path strategy is reasonably effective at detecting faults (87% average as opposed to 69% for size-equivalent, random test cases) but that a significant number of faults can only exhibit a high detection probability by augmenting the round-trip strategy with a traditional black-box strategy such as category-partition testing. This increases the number of test cases to run and therefore the cost of testing- and a cost-benefit analysis weighting the increase of testing effort and the likely gain in fault detection is necessary.
testing Graphical User Interfaces (GUIs) is difficult, involving many states, inputs and events. We have previously reported a new method for testing GUIs that is scalable and concentrates on user sequences of GUI obj...
详细信息
ISBN:
(纸本)0769513069
testing Graphical User Interfaces (GUIs) is difficult, involving many states, inputs and events. We have previously reported a new method for testing GUIs that is scalable and concentrates on user sequences of GUI objects and selections that collaborate, called complete interaction sequences (CIS), and that produce the desired response for the user called the responsibility In this paper we will extend this approach by investigating the use of memory tools to detect missing effects and CIS sequences, investigating interactions between CIS sequences, and providing empirical studies of five different GUI systems.
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.
A black-box testing strategy based on Zweben et al.'s specification-based test data adequacy criteria is explored. The approach focuses on generating a flowgraph from a component's specification and applying a...
详细信息
A black-box testing strategy based on Zweben et al,'s specification-based test data adequacy criteria is explored, The approach focuses on generating a flowgraph from a component's specification and applying a...
详细信息
A black-box testing strategy based on Zweben et al,'s specification-based test data adequacy criteria is explored, The approach focuses on generating a flowgraph from a component's specification and applying analogues of white-box strategies to it. An experimental assessment of the fault-detecting ability of test sets generated using this approach was performed for three of Zweben et al,'s criteria using mutation analysis. By using precondition, postcondition and invariant checking wrappers around the component under test, fault detection ratios competitive with whitebox techniques were achieved. Experience with a prototype test set generator used in the experiment suggests that practical automation may be feasible. Copyright (C) 2000 John Wiley & Sons, Ltd.
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.
暂无评论