This can lead to stagnation of the search. Linear ranking of individuals is a method which proposes to circumvent the above problem. Individuals are ranked according to fitness and assigned an intermediate fitness value based on their rank, rather than through the direct use of fitness value.
Parents are then chosen two at a time for crossover using stochastic universal sampling, such that each individual has a probability of being selected proportionate to its intermediate linearly-ranked fitness value [ 10 ]. This paper used the linear rank method as selection operator in our experiments which assign Z a value of 1. The crossover operation selects the point at which material from two parents combines to create two new offspring.
In one-point crossover, a single crossover point is chosen at random. The operation is regulated by the probability of the crossover parameter P c. The crossover rate is the guarantee of population diversity. If the crossover rate is set too large, good individual genes with high values of fitness can be destroyed easily; if it is set too small, it causes slow search in producing a new individual. There are many methods to normalize DPD , and one is: , which is used in our experiment. In fact, although different methods of normalization maybe a optimizing point, it is not discussed in this paper.
The main purpose of the mutation operator is to improve the local search capability of the GAs to maintain the diversity of the population. It is usually achieved by flipping bits of the binary strings at some probability rate P m. On the one hand, it is difficult to produce new individuals and the population diversity cannot be guaranteed if the mutation rate is set too small.
On the other hand, it may cause considerable damage to genes, such that the GA degrades into a random search algorithm. We use an adaptive mutation probability according to Degree of population diversity DPD. Generally, P m 0 is set to a small value, and the mutation rate can be changed adaptively to maintain population diversity according to the individual diversity level while f i is no less than f avg.
For convenience of description, we call the improved method for generating test cases based on adaptive genetic algorithm IAGA. Population will evolve according to the IAGA strategy constantly, until the optimal solution appears. This paper uses two conditions to stop the algorithm:. In this section, the proposed method IAGA is applied to generate test case for covering paths of a benchmark and six industrial programs in C. To test the effectiveness of IAGA, traditional method such as random method and other evolutionary generation of test case [ 10 , 16 ] is taken for comparison.
The decision for termination criteria is that if at least one test datum has been found to traverse the target path or the number of iterations of the evolution is reached the preset value, the evolution will stop. Some evaluation criterions to test the effectiveness of different methods are listed as follows:. In order to ensure that sampling individual differences as small as possible, each method will adopt the same population size and initial population.
We will adopt binary coding for individual coding, the linear rank method for selection operator, one point crossover and one point mutation. In the set of genetic parameters, the crossover rate and mutation rate were assigned the values 0. The benchmark program is triangle classifier program in Fig 2 which kind of triangles they represent, i. We selected the triangle classification program with different input domains and when the input range of the three variables was [1, N ], the search range reached [1, N 3 ].
There were N 3 data items in this search space, and the number of data items needed to generate the equilateral triangle was only N. The experiments setting and results are shown in Tables 2 and 3. To avoid the influence of the randomness of each algorithm, experiments are configured to run 20 times for each group of approach.
We compared the results from Tables 2 and 3 that we can see:. In order to further verify the effectiveness of the proposed method, we choose 6 industrial cases [ 26 ] for experiments, and a feasible path is randomly selected as the target path for each industrial program. The description and the corresponding parameter settings are showed in Table 4. LOC is the number of lines of code.
- Files in this item?
- Working Around the Military: Challenges to Military Spouse E.
- Finite dimensional linear systems.
- Quadratic and Higher Degree Forms.
- Download Path Oriented Program Analysis.
In this group of experiments, each method will run 50 times independently. We can see from Table 6 that the results of the search time T s of the six industrial programs for IAGA is not always better than other three methods. The success rate comparison results of the six tested programs with four methods as shown in Fig 5 from Table 6. This paper proposed an automatic test case generation method based on an improved genetic algorithm. It improves search efficiency by maintaining population diversity according to adjusting crossover rate and mutation rate in a dynamic way.
The experimental results show that the proposed method IAGA is more effective than existing similar methods and random method for path testing. Although the subjects selected in this paper are C language, the thought of this method can be used for reference in other language as experimental objects. Further study in this area should include discussions of designing adaptive genetic operators and searching for an appropriate fitness function when considering defect detection.
Browse Subject Areas? Click through the PLOS taxonomy to find articles in your field. Abstract The automatic generation of test cases oriented paths in an effective manner is a challenging problem for structural testing of software. Introduction Automatic software testing is among the most studied topics in the field of search-based software engineering SBSE [ 1 — 3 ]. Materials and methods Test case generation The framework of test case generation based on GAs. Download: PPT. Fig 1. The automatic generation of test case model based on genetic algorithm.
Fitness calculation. Fig 2. Triangle type program and its corresponding control flow graph. Table 1.
Branch distance functions for several kinds of branch predicates. Adjusting parameters of GAs based on population diversity There are two different ways for configuring parameter values in the field of software engineering: by tuning their values before the optimization process, or by dynamically adjusting parameter assignments during the run. Population diversity metric method. The Hamming distance of the i th individual within the population can be calculated by 6 : 6 Then the Hamming distance of population is: 7 Definition 2: Degree of population diversity , DPD : It describes the diversity and universality of the individuals genetic in a population, which measured by the Hamming distance between the individuals and the variance of fitness value.
Design of genetic operators. IAGA implementation of the algorithm. Algorithm 1. Test cases generation based on improved adaptive genetic algorithm IAGA. Results and discussion In this section, the proposed method IAGA is applied to generate test case for covering paths of a benchmark and six industrial programs in C. Evaluation criterion and parameter setting The decision for termination criteria is that if at least one test datum has been found to traverse the target path or the number of iterations of the evolution is reached the preset value, the evolution will stop.
Some evaluation criterions to test the effectiveness of different methods are listed as follows: Evals : the number of evaluation for individual evaluation of each method T : the search time for test data generation of each method SR Success Rate : the experiments percentage success in generating test datum to traverse the target path for the total number of experiments In order to ensure that sampling individual differences as small as possible, each method will adopt the same population size and initial population.
Benchmark experiments The benchmark program is triangle classifier program in Fig 2 which kind of triangles they represent, i. Table 2. Experiments settings and results of triangle classifier program. Table 3. Fig 3. Industrial programs of experiments In order to further verify the effectiveness of the proposed method, we choose 6 industrial cases [ 26 ] for experiments, and a feasible path is randomly selected as the target path for each industrial program.
Table 4. Description and the corresponding parameter settings to target path of six industrial programs. Table 5. Experiments results of evaluations of six industrial programs. Table 6. Experiments results of mean search time and success rate of six industrial programs. Fig 4. The lg mean Evals of six industrial programs with four methods.
Fig 5. The success rate of six industrial programs with four methods. Conclusions This paper proposed an automatic test case generation method based on an improved genetic algorithm. Supporting information. S1 Data. The initial data of Fig 3. S2 Data. The initial data of Fig 4. S3 Data. The initial data of Fig 5. References 1. Mcminn P. Search-based software test data generation: a survey[J]. View Article Google Scholar 2.
Studies in Computational Intelligence, , — View Article Google Scholar 3. Varshney S, Mehrotra M. Search based software test data generation for structural testing: a perspective[J]. Acm Sigsoft Software Engineering Notes, , 38 4 :1—6. View Article Google Scholar 4. Miller W, Spooner D L. View Article Google Scholar 5. Korel B. Dynamic method for software test data generation[J]. View Article Google Scholar 6.
IEEE, — DBLP, — Harman M, Mcminn P. View Article Google Scholar 9. Large Class is a kind of bad smells caused by Large Class is a kind of bad smells caused by large scale, and the detection is hard to achieve automatically. In this paper, a Large Class bad smell detection approach based on class length distribution model and cohesion metrics is proposed. In programs, the lengths of classes are confirmed according to the certain distributions.
Nigerian Journal of Technological Research
The class length distribution model is generalized to detect programs after grouping. Meanwhile, cohesion metrics are analyzed for bad smell detection. The bad smell detection experiments of open source programs show that Large Class bad smell can be detected effectively and accurately with this approach, and refactoring scheme can be proposed for design quality improvements of programs.
Save to Library. A key issue in software testing is the actual generation of test data from program input domain. Obviously, more accurate input domain is, more efficient test generation is. This paper presents a path-oriented automatic random testing This paper presents a path-oriented automatic random testing method based on double constraint propagation. For a given path, its domain can be reduced by splitting an input variable domain and executing a double constraint propagation algorithm.
Medical law for the attending physician: a case oriented analysis - PDF Free Download
Moreover, a random test data generator is developed according to the reduced path domain and the test experiments are conducted on a number of programs. Experimental results show that the method gets more accurate path domain than PRT path-oriented random testing approach, and random testing efficiency can thus be enhanced by using the proposed method. A fault model for subtype inheritance and polymorphism.
A testing assistant for object-oriented programs. Algorithms that compute test drivers in object oriented testing. Program testing has been a successfully established and implemented issue for the imperative paradigm. On the other hand, program testing for object-oriented OO is being constantly revisited and discussed. In this paper we present In this paper we present algorithms that compute the number of test drivers needed in testing OO systems. Testing OO programs would have been a done issue a long time ago if the imperative techniques were sufficient for that paradigm.
- Metal Working: Sheet Forming.
- Call-Graph-Based Interclass MM Path Generation?
- Labors Civil War in California: The NUHW Healthcare Workers Rebellion.
- From Tobruk to Borneo: Memoirs of an Italian Aussie Volunteer.
- Path-Oriented Program Analysis.
- The Burial at Thebes.
However, more powerful and rigorous algorithms are significantly needed for OO programs since they differ in features and concepts than the imperative ones. In this study we have intended to make such a need, a primary goal. Automated testing assistant to enforce method coverage in testing OOP. Rigorous pre-implementation testing is never sufficient to Rigorous pre-implementation testing is never sufficient to eliminate all probability of error occurrence and generally is cost-prohibitive; however, a minimum level of testing is necessary to reduce the probability of serious errors.
Regardless of the importance that this minimum. Featuring a test plan and an automated testing assistant for object oriented testing. The paper submits analyses based on a survey conducted to provide The paper submits analyses based on a survey conducted to provide evidence on which language is better as the primary language taught as an introductory language for computer science majors as well as presenting a test plan with an automated testing assistant that is based on the test plan.
The purpose of the automated testing assistant is to help students test their programs in the language chosen by the survey. Testing is a crucial phase of object oriented OO software development. It is very necessary to plan and implement the testing of an OO system in a very effective manner. Efficiency includes 1 uncover errors by using an automated testing assistant, 2 prevent errors from recurring by having a history file which keeps track of all discovered errors from previous runs, and 3 reduce unnecessary testing by having a fruitful test plan.
Testing an OO software needs to be rigorous yet carried out easily and effectively. The availability of an automated testing assistant will enforce rigorous yet easy to conduct testing. Inheritance and Specification-based Object-oriented Testing. The Test Template Framework is extended to include capabilities for specificationbased object-oriented testing.
The Framework is moved to the object-oriented domain and is extended here to incorporate inheritance and abstract classes The Framework is moved to the object-oriented domain and is extended here to incorporate inheritance and abstract classes. Object-Z is the chosen specification Incremental testing of object-oriented class structures. Integrated object-oriented testing and development processes. The goal of the first cate-gory is to locate faults in the software development process itself.