Measures of testability as a basis for quality assurance
Software Engineering Journal
Design for testability in object-oriented systems
Communications of the ACM
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Software Testability: The New Verification
IEEE Software
Investigating the use of analysis contracts to improve the testability of object-oriented code
Software—Practice & Experience
Identifying Test-Critical Dependencies
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
An empirical study into class testability
Journal of Systems and Software - Special issue: Selected papers from the 4th source code analysis and manipulation (SCAM 2004) workshop
Object-Oriented Software Engineering: Using UML, Patterns and Java, Second Edition
Object-Oriented Software Engineering: Using UML, Patterns and Java, Second Edition
Measuring design testability of a UML class diagram
Information and Software Technology
A measurement framework for object-oriented software testability
Information and Software Technology
Reducing the number of unit tests with design by contract
Proceedings of the 12th International Conference on Computer Systems and Technologies
Hi-index | 0.01 |
Software testing is one of the most expensive phases of the software development life cycle. Testing object oriented software is more expensive due to various features like abstraction, inheritance etc. The cost of testing can be reduced by improving the software testability. Software testability of a class is generally measured in terms of the testing effort which is equal to the number of test cases required to test a class. Hence testability can be improved if the test cases can be reduced. Software contracts (method preconditions, method postcondtions, and class invariant) can be used in improving the testability of the software. This paper demonstartes how software contracts can be used to reduce the number of test cases and hence improve the testability of an object oriented software. To accomplish this, software contracts are instrumented in a class and test cases are designed for this class using the path testing technique and then it is compared with the class without instrumenting the software contracts. We found that the instrumentation of software contracts reduces the number of test cases and hence improves the testability.