A comparison of techniques for the specification of external system behavior
Communications of the ACM
Formal Methods for Protocol Testing: A Detailed Study
IEEE Transactions on Software Engineering
Software testing techniques (2nd ed.)
Software testing techniques (2nd ed.)
Adequate testing and object-oriented programming
Journal of Object-Oriented Programming
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Automated Module Testing in Prolog
IEEE Transactions on Software Engineering
A framework for testing object-oriented programs
Journal of Object-Oriented Programming
Incremental testing of object-oriented class structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
Data Abstraction, Implementation, Specification, and Testing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Experiences with cluster and class testing
Communications of the ACM
Design for testability in object-oriented systems
Communications of the ACM
Protocol testing: review of methods and relevance for software testing
ISSTA '94 Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis
TOOLS '97 Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems
Testing Object-Oriented Programs An Integrated Approach
ISSRE '99 Proceedings of the 10th International Symposium on Software Reliability Engineering
Hi-index | 0.03 |
In contrast to the explosion of activity in object-oriented design and programming, little attention has been given to object testing. In our approach, a driver class and an oracle class are developed for each class-under-test (CUT). The driver class is based on a testgraph which partially models the CUT as a state machine, but with vastly fewer states and transitions. The oracle class provides essentially the same operations as the CUT, but supports only the testgraph states and transitions. Surprisingly thorough testing is achievable with simple test graphs and oracles. The key is designing the two together, to avoid tests for which input generation and output checking are unaffordable. We illustrate our approach with a test suite developed for a class from a commercial library.