The category-partition method for specifying and generating fuctional tests
Communications of the ACM
Software testing techniques (2nd ed.)
Software testing techniques (2nd ed.)
A Fortran language system for mutation-based software testing
Software—Practice & Experience
Object-oriented development: the fusion method
Object-oriented development: the fusion method
A Practical Approach to Programming With Assertions
IEEE Transactions on Software Engineering
Communications of the ACM
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
On testable object-oriented programming
ACM SIGSOFT Software Engineering Notes
The object constraint language: precise modeling with UML
The object constraint language: precise modeling with UML
Testing object-oriented systems: models, patterns, and tools
Testing object-oriented systems: models, patterns, and tools
Design by contract, by example
Design by contract, by example
Mutation testing for the new century
Computer
Predicting Where Faults Can Hide from Testing
IEEE Software
Reliable Objects: Lightweight Testing for OO Languages
IEEE Software
Robustness and Diagnosability of OO Systems Designed by Contracts
METRICS '01 Proceedings of the 7th International Symposium on Software Metrics
Building Trust into OO Components Using a Genetic Analogy
ISSRE '00 Proceedings of the 11th International Symposium on Software Reliability Engineering
ISSRE '01 Proceedings of the 12th International Symposium on Software Reliability Engineering
ACM SIGSOFT Software Engineering Notes
An Experimental Investigation of Formality in UML-Based Development
IEEE Transactions on Software Engineering
Design by Contract to Improve Software Vigilance
IEEE Transactions on Software Engineering
Generative hierarchical contracts for conformance testing of sequential containers
SE'07 Proceedings of the 25th conference on IASTED International Multi-Conference: Software Engineering
Improving the testability of object oriented software through software contracts
ACM SIGSOFT Software Engineering Notes
A measurement framework for object-oriented software testability
Information and Software Technology
Testable requirements for offshore outsourcing
SEAFOOD'07 Proceedings of the 1st international conference on Software engineering approaches for offshore and outsourced development
Automating image segmentation verification and validation by learning test oracles
Information and Software Technology
Lessons learned from developing a dynamic OCL constraint enforcement tool for java
MoDELS'05 Proceedings of the 2005 international conference on Satellite Events at the MoDELS
Automated verification of model transformations based on visual contracts
Automated Software Engineering
Design pattern-based extension of class hierarchies to support runtime invariant checks
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
Hi-index | 0.00 |
A 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.