{"title":"一种基于测试需求的调试策略","authors":"M. Chaim, José Carlos Maldonado, M. Jino","doi":"10.1109/CSMR.2003.1192424","DOIUrl":null,"url":null,"abstract":"Testing and debugging are activities that consume a significant amount of the software quality and maintenance budget. To reduce such cost, the use of testing information for debugging purposes has been advocated In general, heuristics are used to select structural testing requirements (nodes, branches, and definition use associations) more closely related to the manifestation of failures which are then mapped into pieces of code. The problem with this approach is that it relies only on a static information-a fragment of code. We introduce a strategy for fault localization based on the investigation of indications (or hints) provided at run-time by data-flow testing requirements. The intuition is that the selected data-flow testing requirements may fail to hit the fault site but they still provide useful information for fault localization. The strategy-called Debugging strategy based on Requirements of Testing (DRT)-is targeted to such situations. The strategy's novelty and attractiveness are threefold: (i) it focuses on dynamic information related to testing data; (ii) it can be implemented in state-of-the-practice symbolic debuggers with limited overhead; and (iii) it utilizes algorithms that consume constant memory and are linear with respect to the number of branches in the program. The paper presents a case study which shows that our intuition is valid (for the subject program) and a proof-of-concept tool that implements the strategy.","PeriodicalId":236632,"journal":{"name":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","volume":"114 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2003-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"A debugging strategy based on requirements of testing\",\"authors\":\"M. Chaim, José Carlos Maldonado, M. Jino\",\"doi\":\"10.1109/CSMR.2003.1192424\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Testing and debugging are activities that consume a significant amount of the software quality and maintenance budget. To reduce such cost, the use of testing information for debugging purposes has been advocated In general, heuristics are used to select structural testing requirements (nodes, branches, and definition use associations) more closely related to the manifestation of failures which are then mapped into pieces of code. The problem with this approach is that it relies only on a static information-a fragment of code. We introduce a strategy for fault localization based on the investigation of indications (or hints) provided at run-time by data-flow testing requirements. The intuition is that the selected data-flow testing requirements may fail to hit the fault site but they still provide useful information for fault localization. The strategy-called Debugging strategy based on Requirements of Testing (DRT)-is targeted to such situations. The strategy's novelty and attractiveness are threefold: (i) it focuses on dynamic information related to testing data; (ii) it can be implemented in state-of-the-practice symbolic debuggers with limited overhead; and (iii) it utilizes algorithms that consume constant memory and are linear with respect to the number of branches in the program. The paper presents a case study which shows that our intuition is valid (for the subject program) and a proof-of-concept tool that implements the strategy.\",\"PeriodicalId\":236632,\"journal\":{\"name\":\"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.\",\"volume\":\"114 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2003-03-26\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CSMR.2003.1192424\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSMR.2003.1192424","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
A debugging strategy based on requirements of testing
Testing and debugging are activities that consume a significant amount of the software quality and maintenance budget. To reduce such cost, the use of testing information for debugging purposes has been advocated In general, heuristics are used to select structural testing requirements (nodes, branches, and definition use associations) more closely related to the manifestation of failures which are then mapped into pieces of code. The problem with this approach is that it relies only on a static information-a fragment of code. We introduce a strategy for fault localization based on the investigation of indications (or hints) provided at run-time by data-flow testing requirements. The intuition is that the selected data-flow testing requirements may fail to hit the fault site but they still provide useful information for fault localization. The strategy-called Debugging strategy based on Requirements of Testing (DRT)-is targeted to such situations. The strategy's novelty and attractiveness are threefold: (i) it focuses on dynamic information related to testing data; (ii) it can be implemented in state-of-the-practice symbolic debuggers with limited overhead; and (iii) it utilizes algorithms that consume constant memory and are linear with respect to the number of branches in the program. The paper presents a case study which shows that our intuition is valid (for the subject program) and a proof-of-concept tool that implements the strategy.