{"title":"The role of symbolic execution in software maintenance","authors":"P. D. Coward, D. Ince","doi":"10.1002/smr.4360030402","DOIUrl":null,"url":null,"abstract":"Two major problems facing the software maintenance programmer are avoiding the introduction of unexecutable code and coping with the large volume of regression tests that are often required during maintenance. In preparing program changes, staff who carry out maintenance often have to spend time on ascertaining the constraints which govern the variables at the proposed points of insertion of the new code. This effort is required to avoid the introduction of unexecutable code which can so easily happen when maintenance staff are unaware of the prevailing constraints. This often means that many of the paths executed during regression testing are executed more than once in an attempt to overcome the risk of coincidental correctness camouflaging an error. This paper describes how symbolic execution, and in particular the SYM-BOL system, can be used to reduce the likelihood of introducing unexecutable code, to speed up the process of determining the constraints on variables at a given point in a program and to reduce the volume of regression testing.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"24 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1991-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"J. Softw. Maintenance Res. Pract.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1002/smr.4360030402","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4
Abstract
Two major problems facing the software maintenance programmer are avoiding the introduction of unexecutable code and coping with the large volume of regression tests that are often required during maintenance. In preparing program changes, staff who carry out maintenance often have to spend time on ascertaining the constraints which govern the variables at the proposed points of insertion of the new code. This effort is required to avoid the introduction of unexecutable code which can so easily happen when maintenance staff are unaware of the prevailing constraints. This often means that many of the paths executed during regression testing are executed more than once in an attempt to overcome the risk of coincidental correctness camouflaging an error. This paper describes how symbolic execution, and in particular the SYM-BOL system, can be used to reduce the likelihood of introducing unexecutable code, to speed up the process of determining the constraints on variables at a given point in a program and to reduce the volume of regression testing.