The evaluation of program-based software test data adequacy criteria
Communications of the ACM
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
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
Testing object-oriented systems: models, patterns, and tools
Testing object-oriented systems: models, patterns, and tools
A practical guide to testing object-oriented software
A practical guide to testing object-oriented software
Universal becnhmark suites — a quantitative approach to benchmark design
Performance evaluation and benchmarking with realistic applications
Endo-testing: unit testing with mock objects
Extreme programming examined
Introduction to algorithms
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Using benchmarking to advance research: a challenge to software engineering
Proceedings of the 25th International Conference on Software Engineering
An Investigation of Graph-Based Class Integration Test Order Strategies
IEEE Transactions on Software Engineering
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
The Extension of the Unit Testing Tool Junit for Special Testings
IMSCCS '06 Proceedings of the First International Multi-Symposiums on Computer and Computational Sciences - Volume 2 (IMSCCS'06) - Volume 02
An empirical study of cycles among classes in Java
Empirical Software Engineering
Intra-Class Testing of Abstract Class Features
ISSRE '07 Proceedings of the The 18th IEEE International Symposium on Software Reliability
How Do Java Programs Use Inheritance? An Empirical Study of Inheritance in Java Software
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Using Coupling-Based Weights for the Class Integration and Test Order Problem
The Computer Journal
Hi-index | 0.00 |
One of the characteristics of the increasingly widespread use of object-oriented libraries and the resulting intensive use of inheritance is the proliferation of dependencies on abstract classes. Since abstract classes cannot be instantiated, they cannot be tested in isolation using standard execution-based testing strategies. A standard approach to testing abstract classes is to instantiate a concrete descendant class and test the features that are inherited. This paper presents a structured approach that supports the testing of features in abstract classes, paying particular attention to ensuring that the features tested are those defined in the abstract class. Two empirical studies are performed on a suite of large Java programs and the results presented. The first study analyses the role of abstract classes from a testing perspective. The second study investigates the impact of the testing strategy on the programs in this suite to demonstrate its feasibility and to comment on the pragmatics of its use. Copyright © 2010 John Wiley & Sons, Ltd.