The category-partition method for specifying and generating fuctional tests
Communications of the ACM
The Cost of Data Flow Testing: An Empirical Study
IEEE Transactions on Software Engineering
Software testing techniques (2nd ed.)
Software testing techniques (2nd ed.)
A Fortran language system for mutation-based software testing
Software—Practice & Experience
Investigations of the software testing coupling effect
ACM Transactions on Software Engineering and Methodology (TOSEM)
Incremental testing of object-oriented class structures
ICSE '92 Proceedings of the 14th international conference on Software engineering
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
All-uses vs mutation testing: an experimental comparison of effectiveness
Journal of Systems and Software
The Unified Modeling Language user guide
The Unified Modeling Language user guide
The object constraint language: precise modeling with UML
The object constraint language: precise modeling with UML
Experimentation in software engineering: an introduction
Experimentation in software engineering: an introduction
Testing object-oriented systems: models, patterns, and tools
Testing object-oriented systems: models, patterns, and tools
An empirical study of regression test selection techniques
ACM Transactions on Software Engineering and Methodology (TOSEM)
Interface Mutation: An Approach for Integration Testing
IEEE Transactions on Software Engineering
Designing Concurrent, Distributed, and Real-Time Applications with Uml
Designing Concurrent, Distributed, and Real-Time Applications with Uml
Object-Oriented Software Engineering; Conquering Complex and Changing Systems
Object-Oriented Software Engineering; Conquering Complex and Changing Systems
Software Metrics: A Rigorous and Practical Approach
Software Metrics: A Rigorous and Practical Approach
Computer
An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing
IEEE Transactions on Software Engineering
Automatically Generating Test Data from a Boolean Specification
IEEE Transactions on Software Engineering
Criteria for Testing Polymorphic Relationships
ISSRE '00 Proceedings of the 11th International Symposium on Software Reliability Engineering
A Case Study Using the Round-Trip Strategy for State-Based Class Testing
ISSRE '02 Proceedings of the 13th International Symposium on Software Reliability Engineering
Criteria for Generating Specification-Based Tests
ICECCS '99 Proceedings of the 5th International Conference on Engineering of Complex Computer Systems
Using Simulation to Empirically Investigate Test Coverage Criteria Based on Statechart
Proceedings of the 26th International Conference on Software Engineering
Generating tests from UML specifications
UML'99 Proceedings of the 2nd international conference on The unified modeling language: beyond the standard
Basics of Software Engineering Experimentation
Basics of Software Engineering Experimentation
Case studies on fault detection effectiveness of model based test generation techniques
A-MOST '05 Proceedings of the 1st international workshop on Advances in model-based testing
Carving differential unit test cases from system test cases
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
An empirical comparison between direct and indirect test result checking approaches
Proceedings of the 3rd international workshop on Software quality assurance
Testing object-oriented industrial software without precise oracles or results
Communications of the ACM
A state-based approach to integration testing based on UML models
Information and Software Technology
An Empirical Investigation on Dynamic Modeling in Requirements Engineering
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
Automatic generation of test specifications for coverage of system state transitions
Information and Software Technology
Requirements Coverage as an Adequacy Measure for Conformance Testing
ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
A measurement framework for object-oriented software testability
Information and Software Technology
Nature-inspired techniques for conformance testing of object-oriented software
Applied Soft Computing
Contextual integration testing of classes
FASE'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering
The influence of multiple artifacts on the effectiveness of software testing
Proceedings of the IEEE/ACM international conference on Automated software engineering
An approach for class testing from class contracts
ATVA'10 Proceedings of the 8th international conference on Automated technology for verification and analysis
Programs, tests, and oracles: the foundations of testing revisited
Proceedings of the 33rd International Conference on Software Engineering
Better testing through oracle selection (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Fault-based generation of test cases from UML-Models: approach and some experiences
SAFECOMP'11 Proceedings of the 30th international conference on Computer safety, reliability, and security
Testing aspect-oriented programs with finite state machines
Software Testing, Verification & Reliability
Proceedings of the 34th International Conference on Software Engineering
Computers in Biology and Medicine
UML behavioral model based test case generation: a survey
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.02 |
This paper describes an empirical investigation of the cost effectiveness of well-known state-based testing techniques for classes or clusters of classes that exhibit a state-dependent behavior. This is practically relevant as many object-oriented methodologies recommend modeling such components with statecharts which can then be used as a basis for testing. Our results, based on a series of three experiments, show that in most cases state-based techniques are not likely to be sufficient by themselves to catch most of the faults present in the code. Though useful, they need to be complemented with black-box, functional testing. We focus here on a particular technique, Category Partition, as this is the most commonly used and referenced black-box, functional testing technique. Two different oracle strategies have been applied for checking the success of test cases. One is a very precise oracle checking the concrete state of objects whereas the other one is based on the notion of state invariant (abstract states). Results show that there is a significant difference between them, both in terms of fault detection and cost. This is therefore an important choice to make that should be driven by the characteristics of the component to be tested, such as its criticality, complexity, and test budget.