Font Size: a A A

Evolutionary Fault Repair Of Software Based On Incomplete Specification

Posted on:2022-08-30Degree:MasterType:Thesis
Country:ChinaCandidate:Y X MengFull Text:PDF
GTID:2518306605468844Subject:Computer technology
Abstract/Summary:PDF Full Text Request
Fault repair is one of the most costly section in software maintenance activities,and its purpose is to eliminate defects in software programs.Studies have shown that the earlier a program defect is detected,the less damage it will cause.In order to reduce the repair and maintenance costs of defective programs and improve software quality,it is imperative to study the automatic repair of defective programs.At this stage,the defective program repair technology is too random and not accurate in the selection of repair materials,and too simple in the application of ingredients.The selection and application of repair ingredients will directly affect the repair effect of the defect program.To address the above problems,this thesis focuses on the evolutionary repair techniques of defect program based on incomplete specification and proposes two evolutionary repair techniques of defect program for different repair problem characteristics.The main research in this thesis focuses on the following.(1)To address the problem of too random and untargeted selection of defective program repair ingredients,a defective program evolutionary repair technique based on weighted fusion similarity and genetic programming is proposed.Besides,we design and implement a defective program evolutionary repair prototype tool,named WGRepair(Weighted Fusion Similarity and Genetic Programming based Automatic Software Repair).Firstly,we use defect location technique to locate suspect statements and select eligible suspect statements as modification points.Secondly,we select defect repair ingredients based on weighted fusion similarity values and perform evolutionary repair of defective programs based on genetic programming.Then,we use test cases to verify the validity of individual programs and rank them in descending order according to the ability of test cases to identify errors.Finally,the above steps are repeated until a program individual passes all the test cases or reaches the maximum termination condition of the program.The experimental results show that the repair technique after introducing the weighted fusion similarity can select the repair material more specifically and improve the repair success rate of the defect procedure.(2)To address the problem that the existing defects program repair granularity is too coarse,repair material application method is too simple,we propose a defect program evolution repair technique based on mixed granularity and variable mapping.Besides,we design and implement a prototype tool for defect program evolution repair,named MVRepair(Mixed Granularity and Variable Mapping based Automatic Software Repair).Firstly,the defect localization technique is used to locate the suspected value statements and form a list of modification points.Second,the defective program repair ingredients at the statement level is obtained,the mapping relationship between variables in the material statements and the statements at the modification points is established,the mapping relationship is used as the main constraint for material applications,and the evolutionary repair of the defective program is performed according to a random search algorithm.Then,a test case execution information table is maintained for each modification point and dynamically adjusted according to the verification process to prioritize the execution of test cases in this information table during program verification.Finally,the above steps are repeated until a program individual passes all test cases or reaches the program maximum termination condition.The experimental results show that the proposed defect repair technique can find a more suitable way to apply the material and also improve the repair success rate and the efficiency of the procedure verification.(3)Aiming at the common characteristics of the two proposed defect program evolution repair techniques,this thesis integrates a repair tool bug Repair.This tool is mainly divided into three modules: program preprocessing module,program evolution verification module and patch output module.In the process of using this tool,the operation is performed according to the command instructions.This tool can reduces the difficulty of operating the prototype tool,improving operability,and has some practical application value.
Keywords/Search Tags:Automatic Program Repair, Fault Repair, Program Evolution, Incomplete Specification, Code Similarity
PDF Full Text Request
Related items