Font Size: a A A

Research On High Fault Detection Rate And Fault Location Technology

Posted on:2019-06-15Degree:DoctorType:Dissertation
Country:ChinaCandidate:G N QianFull Text:PDF
GTID:1318330545958212Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
With the expansion of software system scale and the rapid increase of complexity,more and more attention has been paid to the quality of software.Software testing,an effective method to ensure the quality of software,has been paid more and more attention by both academia and industry.However,these testing methods based on statement coverage,such as statements,branch coverage,and so on,even reached 100%coverage,can not ensure that 100%detect the defects of the program.In order to solve this problem,a high fault detection rate method is proposed,the main idea is to use the mutation testing method to detect the part of the defects that cannot be detected by the statement coverage.This article completes three main parts of the framework:This article completes three main parts of the framework:Redundant mutant selection,Program variable value range analysis method based on affine arithmetic and a highly scalable mutation testing system.In addition,fault location is an important link in the overall testing process.The existing method based on program execution spectrum,which is affected by the accidental correctness test cases,and the fault location method based on mutation can avoid the effect of this kind of noise.In this paper,a fault location method based on mutation testing is proposed.Funded by the Major Program of the National Natural Science Foundation of China(No.91318301),the National Natural Science Foundation of China(No.61202080),the National Grand Fundamental Research 863 Program of China(No.2012AA011201)and the China Postdoctoral Science Foundation(No.2015M581032).In this paper,the mutation testing is as an effective test method,which is combined into two testing areas of high fault detection and fault location.The work of this paper includes the following aspects.(1)Redundant mutant selection method based on program contextThe goal of the high fault detection rate method is to find a small set of mutations that is difficult to be defected by the statement coverage test cases.However,the mutation testing can generate a large amount of mutations,which will greatly improve the test cost and analysis difficulty.Therefore,the high fault detection rate method first to remove redundant mutants,to reduce the cost of testing.The main contributions of this part are:In this paper,a redundancy mutations selection method based on program context is proposed to reduce the mutation testing cost.Regarding the mutants arising from the sequential statements in a program,an algorithm based on propagation-infection-execution(PIE)model was proposed,which employs the interval abstract domain to represent program state and the interval algorithm to evaluate the redundancy relation between the mutants.Meanwhile,regarding the conditional statements in a program,the redundant mutant selection algorithms based on the predicate fault hierarchy are also presented.The algorithms are designed for simple predicate and compound predicate respectively.By analyzing the effects of these algorithms,the constrained boundary condition for the development of non-redundant mutants under the condition of stratified sampling is concluded.Siemens Test Suite and other three open source projects are used to conduct experiments to compare the proposed method with random selection method.Experimental results show that the proposed method can reduce the mutant testing time cost while maintaining a high mutation score.(2)Program variable value range analysis method based on affine arithmetic in mutation analysisThe high fault detection rate method will analyze the non redundant mutants,involves the mutation analysis and the mutation test case generation.The analysis of numerical mutants is an important part.In the defense,aerospace,finance and other key areas,many of the physical attributes are described by numerical variables in the computer software used;some of the core business is also through the numerical calculation of these variables to complete.When we analyze the mutations of these key programs,it is necessary to analyze the numerical variables and the accuracy of the results will directly affect the accuracy of the mutation analysis.At present,research on mutation testing did not adopt numerical optimization analysis,but simply by the meaning of the literal content,or use the initial interval arithmetic with low precision,which seriously affects the whole precision of the mutation test and analysis.In order to solve this problem,this paper in the context of path based program analysis,combined with the characteristics of mutation testing,using the affine arithmetic with higher precision to replace the interval arithmetic,this paper gives a method of analyzing the range of variable value based on affine arithmetic,gives the definition of abstract domain,the operation of abstract statement and describes the specific semantics supported.The preprocessing algorithm of specific program statements,the transformation of specific semantics to abstract semantics and the processing of mutation constraints and affine operation rules are presented.As a front-end processing module for mutation test/analysis,this method provides a more compact and accurate input domain to improve the overall precision of mutation test/analysis.In order to verify the high fault detection rate of the proposed method,two sets of experiments were carried out,using open source TCASP and five benchmark functions respectively.The experimental results show that:The proposed method can detect the undetectable 93.8%of failures for predicate faults.For numerical variants,the average can detect 78.5%of the traditional coverage methods can not detect faults.(3)Fault location method based on mutation test considering the mutation operators typeWith the deepening of mutation testing research,it has been found that,in addition to its own high fault detection rate,other test areas still produce good results,such as fault-based fault location.Compared with the fault location method which based on the program spectrum,Mutation-based fault localization techniques is a new software fault location method and to a certain extent overcome the occasional correct test case problem.However,the existing Mutation-based fault localization techniques do not take into account the variability mutant operator type sensitivity problem,that is,the random use of the operators will cause the results to have a fluctuation.In this paper,a mutant operator selection algorithm is proposed for the relational mutant operator,the logic mutant operator and the value correlation mutant operator respectively.These strategies can select a subset of appropriate mutants according to the program context instead of randomly selecting mutants.The experimental results on five Siemens programs and one UNIX utility and 11 Linux programs with two groups of the suspiciousness evaluation formulas suggests that the proposed approach can improve the effectiveness of Mutation-based fault localization techniques.(4)A highly scalable mutation testing systemTo improve the accuracy and efficiency and the limited support for actual engineering of existing fault injection tools,a C-language oriented fault injection and execution system is presented.The system is constructed by fault injection,fault model,batch execution and results analysis modules.This system uses abstract syntax tree structures to represent mutants.In this paper,we present a mutation operator extension method for the loop body,the string function,the mathematical calculation function and the complex data structure.The user can customize more complex mutation operators to improve the detection capacity of mutation testing.Experiments show that comparing with other fault injection tool when used the open source projects,the system can support more practical engineering functions.
Keywords/Search Tags:high fault detection rate, mutation testing, mutation operator, mutation testing cost reduction, fault localization, affine arithmetic
PDF Full Text Request
Related items