Font Size: a A A

Theory And Methods Of Test Data Evolutionary Generation Driven By Mutant Branch

Posted on:2021-12-06Degree:DoctorType:Dissertation
Country:ChinaCandidate:X Y DangFull Text:PDF
GTID:1488306464959489Subject:Control theory and control engineering
Abstract/Summary:PDF Full Text Request
Software testing,a vital process in the course of software development life cycle,aims at software quality assurance by detecting as many software faults as possible.Mutation testing is a typical fault-based testing technique.A mutation statement is a fault,and a new program containing a mutation statement is called a mutant.A mutant branch is formed by an original statement and its mutated statement.Mutation testing is a typical way to evaluate the adequacy of a test suite,and assists in generating test data.Basically speaking,some program inputs are generated as expected test data,which will be used to execute the software under test.To generate test data efficiently,genetic algorithms(GAs)have been widely employed.Multi-population genetic algorithm(MGA)is a high-performance genetic algorithm,whose population is composed of multiple sub-populations.Individuals in MGA have potential parallelism,which makes MGA more powerful and efficient in software testing.In mutation testing,a large number of mutants not only leads to a high cost of mutation testing,but also make test data generation a non-trivial task,especially for hard-to-kill mutants(stubborn mutants).Therefore,this paper proposes a method of test data evolutionary generation driven by mutant branches.To efficiently generate test data for covering the multiple mutant branches,a method of test data generation for feasible paths formed by mutant branches is proposed.To fulfil this task,firstly,new mutant branches are formed by relevant mutant branches,following by obtaining one or more feasible paths based on the execution relevance of new mutant branches and original statements using statistical analysis.As a result,the mutant branch coverage problem is transformed into a path coverage one.Then an optimization model of test data generation is established.Finally,a multi-population genetic algorithm is employed to generate test data for covering multiple paths with mutant branches.The proposed method can generate a small number of paths that can cover all the mutant branches,and has less executing time.Therefore,the proposed method can efficiently generate a small test suite for a program under test,and provides a new way that mutation testing transforms into structure coverage testing.To efficiently generate test data for killing a large number of mutants,a method of generating test data for mutant branches by employing two intelligent techniques,i.e.,fuzzy clustering and multi-population genetic algorithm.To fulfil this task,firstly,under the criterion of weak mutation,some hard-to-covered mutant branches(stubborn mutants)are selected as the cluster' center,and mutants are classified based on fuzzy clustering.Further,for multiple clusters,a multi-task optimization model of test data generation is established.Finally,a multi-population genetic algorithm is employed to generate test data.The application of fuzzy clustering can help reduce the cost of mutation testing effectively while delivering the high mutant-killing capability,and that the multi-population genetic algorithm improves the efficiency of test data generation.The results clearly indicate the huge potential of using intelligent techniques to enhance the efficacy and thus practicality of mutation testing.To efficiently kill a stubborn mutant,the paper proposes a method of test data evolutionary generation guided by hard-to-cover mutant branch.To fulfil this task,firstly,a method of determining the stubbornness of a mutant based on the difficulty of covering mutant branches is proposed.Then,the problem of generating test data to kill the mutant as an optimization one with a unique constraint is formulated.Finally,a co-evolutionary genetic algorithm is employed to generate test data using.Given the fact that the domain of test data that kills a stubborn mutant is generally small,a method of dynamically reducing the search domain is employed to improve the efficiency of the algorithm.The proposed method has capabilities in seeking stubborn mutants and efficiently generating test data to kill stubborn mutants.In addition,the method of reducing the search domain provides a new way to enhance the efficiency of mutation testing.To efficiently kill multiple stubborn mutants,the paper proposes a method of test data evolutionary generation for grouping mutant branch by input variable.To fulfil this task,firstly,the mutant branches are group based on their relevant input variables,followed by formulating a multi-task optimization model of test data generation for the grouped mutant branches,in which the relevant input variables are taken as the decision variables.Finally,a multi-population genetic algorithm is employed to generate test data by multi-tasking.Comparing with the traditional model and the methods of test data generation,the experiments based on the programs of various sizes show that removing related variables helps reduce the search domain,and the efficiency of test data generation by grouping and multitasking is improved.In summary,the proposed method integrates evolutionary algorithms,clustering method,and statistical analysis approach method to generate test data driven by mutant branches,which is a synthetical technique of automation,artificial intelligence,applied mathematics,and computer science.The research work has a clear application background and industrial needs,which not only improve the efficiency of test data generation and ensure the software quality,but also enrich the theory of mutation testing and for software testing,have important theoretical significance and practical value.
Keywords/Search Tags:software testing, test data generation, mutant branch, multi-population genetic algorithm(MGA), fuzzy clustering
PDF Full Text Request
Related items