Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Investigating the use of analysis contracts to support fault isolation in object oriented code

Published: 01 July 2002 Publication History

Abstract

A number of activities involved in testing software are known to be difficult and time consuming. Among them is the isolation of faults once failures have been detected. In this paper, we investigate how the instrumentation of contracts could address this issue. Contracts are known to be a useful technique to specify the precondition and postcondition of operations and class invariants, thus making the definition of object-oriented analysis or design elements more precise. Our aim in this paper is to reuse and instrument contracts to ease testing. A thorough case study is run where we define contracts, instrument them using a commercial tool, and assess the benefits and limitations of doing so to support the isolation of faults. We then draw practical conclusions regarding the applicability of the approach and its limitations.

References

[1]
B. Baudry, V. Le Hanh, J. M. Jezequel and Y. Le Traon, "Building Trust into OO Components using a Genetic Analogy," Proc. International Symposium on Software Reliability Engineering (ISSRE), San Jose, California, pp. 4-14, October 8-11, 2000.
[2]
B. Baudry, Y. Le Traon and J. M. Jezequel, "Robustness and Diagnosability of OO Systems Designed by Contracts," Proc. 7th International Software Metrics Symposium, London, England, pp. 272-283, 4-6 April, 2001.
[3]
R. V. Binder, Testing Object-Oriented Systems - Models, Patterns, and Tools, Addison-Wesley, 1999.
[4]
L. C. Briand, Y. Labiche and H. Sun, "Investigating the Use of Analysis Contracts to Improve the Testability of Object Oriented Code," Carleton University, Technical Report SCE-01-10, 2001, www.sce.carleton.ca/Squall/Articles/TR_SCE-01-10.pdf.
[5]
P. Chevalley and P. Thévenod-Fosse, "An Empirical Evaluation of Statistical Testing Designed from UML State Diagrams: the Flight Guidance System Case Study," Proc. 12th IEEE International Symposium on Software Reliability Engineering, Hong-Kong (China), pp. 254-263, 27-30 November, 2001.
[6]
D. Coleman, P. Arnold, S. Bodoff, C. Dollin, H. GilChrist, F. Hayes and P. Jeremaes, Object-Oriented Development - The Fusion Method, Prentice Hall Ed., 1994.
[7]
JContract, "Using Design by Contract to Automate Java Software and Component Testing," ParaSoft Corporation, www.parasoft.com/products/jtest/papers/tech_dbc.htm.
[8]
J. M. Jezequel, D. Deveaux and Y. Le Traon, "Reliable Object: Lightweight Testing for OO Languages," IEEE Software, vol. 18 (4), pp. 76-83, 2001.
[9]
S. Kim, J. A. Clark and J. A. McDermid, "The Rigorous Generation of Java Mutation Using HAZOP," Proc. 12th International Conference on Software & Systems Engineering and their Applications (ICSSEA'99), CNAM - Paris, France, pp. 9-10(11), December 8-10, 1999.
[10]
S. Kim, J. A. Clark and J. A. McDermid, "Class Mutation: Mutation Testing for Object-Oriented Programs," Proc. Net.ObjectDays, Erfurt, Germany, October 9-12, 2000.
[11]
S. Kim, J. A. Clark and J. A. McDermid, "Investigating the effectiveness of Object-Oriented Testing Strategies with the Mutation Method," Proc. Mutation 2000, San Jose, October 6-7, 2000.
[12]
K. N. King and A. J. Offutt, "A Fortran Language System for Mutation-Based Software Testing," Software - Practice and Experience, vol. 21 (7), pp. 686-718, 1991.
[13]
B. Meyer, "Design by Contracts," IEEE Computer, vol. 25 (10), pp. 40-52, 1992.
[14]
OCL, "Object Constraint Language," Object Management Group, V1.4, 2001.
[15]
T. J. Ostrand and M. J. Balcer, "The Category-Partition Method for Specifying and Generating Functional Test," Communications of the ACM, vol. 31 (6), pp. 676-686, 1988.
[16]
D. Rosenblum, "A Practical Approach to Programming with Assertions," IEEE Trans. on Software Engineering, vol. 21 (11), pp. 19-31, 1995.
[17]
J. Warmer and A. Kleppe, The Object Constraint Language, Addison-Wesley, 1999.

Cited By

View all
  • (2019)Model-Based Software DebuggingFault Diagnosis of Dynamic Systems10.1007/978-3-030-17728-7_15(365-387)Online publication date: 23-Jun-2019
  • (2003)Integration of “Components” to Test Software ComponentsElectronic Notes in Theoretical Computer Science10.1016/S1571-0661(04)81024-782:6(44-54)Online publication date: Sep-2003
  • (2017)Revisiting Assert Use in GitHub ProjectsProceedings of the 21st International Conference on Evaluation and Assessment in Software Engineering10.1145/3084226.3084259(298-307)Online publication date: 15-Jun-2017
  • Show More Cited By

Index Terms

  1. Investigating the use of analysis contracts to support fault isolation in object oriented code
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 27, Issue 4
    July 2002
    242 pages
    ISSN:0163-5948
    DOI:10.1145/566171
    Issue’s Table of Contents
    • cover image ACM Conferences
      ISSTA '02: Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
      July 2002
      248 pages
      ISBN:1581135629
      DOI:10.1145/566172
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 July 2002
    Published in SIGSOFT Volume 27, Issue 4

    Check for updates

    Author Tags

    1. contracts
    2. object-oriented analysis
    3. object-oriented testing
    4. testability

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)4
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 03 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2019)Model-Based Software DebuggingFault Diagnosis of Dynamic Systems10.1007/978-3-030-17728-7_15(365-387)Online publication date: 23-Jun-2019
    • (2003)Integration of “Components” to Test Software ComponentsElectronic Notes in Theoretical Computer Science10.1016/S1571-0661(04)81024-782:6(44-54)Online publication date: Sep-2003
    • (2017)Revisiting Assert Use in GitHub ProjectsProceedings of the 21st International Conference on Evaluation and Assessment in Software Engineering10.1145/3084226.3084259(298-307)Online publication date: 15-Jun-2017
    • (2015)Assert use in GitHub projectsProceedings of the 37th International Conference on Software Engineering - Volume 110.5555/2818754.2818846(755-766)Online publication date: 16-May-2015
    • (2015)Assert Use in GitHub Projects2015 IEEE/ACM 37th IEEE International Conference on Software Engineering10.1109/ICSE.2015.88(755-766)Online publication date: May-2015
    • (2014)On the Effectiveness of Contracts as Test Oracles in the Detection and Diagnosis of Functional Faults in Concurrent Object-Oriented SoftwareIEEE Transactions on Software Engineering10.1109/TSE.2014.233982940:10(971-992)Online publication date: 1-Oct-2014
    • (2011)Designing level 3 behavioral RESTful web service interfacesACM SIGAPP Applied Computing Review10.1145/2034594.203459611:3(19-31)Online publication date: 1-Aug-2011
    • (2011)Modeling behavioral RESTful web service interfaces in UMLProceedings of the 2011 ACM Symposium on Applied Computing10.1145/1982185.1982521(1598-1605)Online publication date: 21-Mar-2011
    • (2011)Contract-based test generation for data flow of business processes using constraint programming2011 FIFTH INTERNATIONAL CONFERENCE ON RESEARCH CHALLENGES IN INFORMATION SCIENCE10.1109/RCIS.2011.6006841(1-12)Online publication date: May-2011
    • (2010)From Nondeterministic UML Protocol Statemachines to Class ContractsProceedings of the 2010 Third International Conference on Software Testing, Verification and Validation10.1109/ICST.2010.62(107-116)Online publication date: 6-Apr-2010
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media