skip to main content
research-article

Improving the testability of object oriented software through software contracts

Published: 25 January 2010 Publication History

Abstract

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.

References

[1]
B. Meyer (1997):Object-Oriented Software Construction. 2nd edition, Prentice Hall.
[2]
J.E. Payne, R.T. Alexander, C.H. Hutchinson(1997): Design-for-Testability for Object Oriented Software, Object Magazine, SIGS Publications Inc., vol. 7, no.5, pp. 34--43.
[3]
L.C. Briand, Y. Labiche and H. Sun(2003): Investigating the Use of Analysis Contracts to Improve the Testability of Object-Oriented Code, Software - Practice and Experience, vol. 33 (7), pp. 637--672.
[4]
Bache, R., and M. Mullerburg (1990): Measures of testability as a basis for quality assurance. Software Engineering Journal 5(2), 86--92.
[5]
Binder, R.V. (1994): Design for testability in object-oriented systems. Communication of the ACM 37 (9) 87--101.
[6]
Bruntink, M., and A.V. Deursen ((2006): An Empirical Study into Class Testability . Journal of systems and software. 79(9), 1219--1232.
[7]
Mouchawrab, S., Lionel C. Briand, Yvan Labiche (2005): A measurement framework for object-oriented software testability, Information and Software Technology. 47, 979--997.
[8]
Voas, J.M, K.W. Miller (1995): Software testability: the new verification, IEEE Software, 12 (3), 17--28.
[9]
Baudry B., Traon Y.L (2005): Measuring design testability of a UML class diagram: Information and Software Technology, 47 (13), pp. 859--879.
[10]
Stefan Jungmayr (2002): Identifying test-critical dependencies. In Proceedings of the International Conference on Software Maintenance, (ICSM '02), pages 404--413. IEEE Computer Society.
[11]
Bernd Bruegge, Allen H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns and Java (2nd Edition).

Cited By

View all
  • (2019)Regression test case selection and prioritization for object oriented softwareMicrosystem Technologies10.1007/s00542-019-04679-7Online publication date: 6-Nov-2019
  • (2018)On the adoption of neural networks in modeling software reliabilityProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3275433(962-964)Online publication date: 26-Oct-2018
  • (2018)An efficient ant colony system for coverage based test case prioritizationProceedings of the Genetic and Evolutionary Computation Conference Companion10.1145/3205651.3205680(91-92)Online publication date: 6-Jul-2018
  • Show More Cited By
  1. Improving the testability of object oriented software through software contracts

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 35, Issue 1
    January 2010
    88 pages
    ISSN:0163-5948
    DOI:10.1145/1668862
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 25 January 2010
    Published in SIGSOFT Volume 35, Issue 1

    Check for updates

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)6
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 15 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2019)Regression test case selection and prioritization for object oriented softwareMicrosystem Technologies10.1007/s00542-019-04679-7Online publication date: 6-Nov-2019
    • (2018)On the adoption of neural networks in modeling software reliabilityProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3275433(962-964)Online publication date: 26-Oct-2018
    • (2018)An efficient ant colony system for coverage based test case prioritizationProceedings of the Genetic and Evolutionary Computation Conference Companion10.1145/3205651.3205680(91-92)Online publication date: 6-Jul-2018
    • (2018)A Systematic Review of Software Testability Measurement Techniques2018 International Conference on Computing, Power and Communication Technologies (GUCON)10.1109/GUCON.2018.8675006(299-303)Online publication date: Sep-2018
    • (2018)Contract-based testing for PHP with PraspelJournal of Systems and Software10.1016/j.jss.2017.06.017136(209-222)Online publication date: Feb-2018
    • (2018)A bat-inspired algorithm for prioritizing test casesVietnam Journal of Computer Science10.1007/s40595-017-0100-x5:1(45-57)Online publication date: 13-Dec-2018
    • (2018)Prediction of Software Reliability using Bio Inspired Soft Computing TechniquesJournal of Medical Systems10.1007/s10916-018-0952-342:5(1-16)Online publication date: 1-May-2018
    • (2018)Bio-inspired metaheuristicsApplied Intelligence10.1007/s10489-017-1003-348:3(687-702)Online publication date: 1-Mar-2018
    • (2018)An approach for test data generation using program slicing and particle swarm optimizationNeural Computing and Applications10.1007/s00521-014-1692-z25:7-8(2047-2055)Online publication date: 27-Dec-2018
    • (2013)Comparative analysis of software reliability predictions using statistical and machine learning methodsInternational Journal of Intelligent Systems Technologies and Applications10.1504/IJISTA.2013.05652912:3/4(230-253)Online publication date: 1-Sep-2013
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media