• DocumentCode
    1636111
  • Title

    Correctness and Relative Correctness

  • Author

    Diallo, Nafi ; Ghardallou, Wided ; Mili, Ali

  • Author_Institution
    New Jersey Inst. of Technol., Newark, NJ, USA
  • Volume
    2
  • fYear
    2015
  • Firstpage
    591
  • Lastpage
    594
  • Abstract
    In the process of trying to define what is a software fault, we have found that to formally define software faults we need to introduce the concept of relative correctness, i.e. the property of a program to be more-correct than another with respect to a given specification. A feature of a program is a fault (for a given specification)only because there exists an alternative to it that would make the program more-correct with respect to the specification.In this paper, we explore applications of the concept of relative correctness in program testing, program repair, and program design.Specifically, we argue that in many situations of software testing, fault removal and program repair, testing for relative correctness rather than absolute correctness leads to clearer conclusions and better outcomes. Also, we find that designing programs by stepwise correctness-enhancing transformations rather than by stepwise correctness-preserving refinements leads to simpler programs and is more tolerant of designer mistakes.
  • Keywords
    formal specification; program testing; software fault tolerance; software maintenance; formal specification; program design; program repair; program testing; relative correctness; software fault; Generators; Maintenance engineering; Semantics; Software; Software engineering; Software testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on
  • Conference_Location
    Florence
  • Type

    conf

  • DOI
    10.1109/ICSE.2015.200
  • Filename
    7203020