Case Study for Regression Testing using Genetic Algorithm

For quality-assured information engineering software assessment has become critical. Software quality is defined as all the features and proprieties of a software system that can meet certain criteria to test a software product to know how good it is. Software testing is a necessary process for software development, and automating data production helps reduce time and expense. The design of software tests in today’s industry is mostly focused on the experience of the experts, while the tools for test automation can be used only for pre-planned tests. The new investigation focuses on the safe, accurate and effective discriminatory regression testing. A selective algorithm for regression testing is considered secure and sound if the disclosing of test cases is not ignored. Precision that tests the sum of the algorithm moving through the test cases without alteration. The successful selection of these cases is one of the key issues in regression testing. Due to the utility of selective regression testing, an efficient algorithm is important due to the speed of test case selection. We use a formal language approach in this article, to explain the problems and to give tentative solutions. For the test case selection problem, we find the genetic algorithm. We demonstrate that this genetic algorithm that satisfies both secure and reliable standards take time and time in general exponentially. In addition, a secure algorithm requires the most severe case of O (n2) time and Ont) (location, in which n is as many statements as possible, and t is as many test cases as possible.


INTRODUCTION
The cost of software errors is becoming more complex and increasingly incorporated in business and government processes. The most difficult problems, because many elements communicate unpredictable and unexpected. Complex machine failures are among the most difficult problems. Such highly connected systems may have intermediate or transient defects that are especially hard to diagnose. The present work is part of an automated test case generation process that concentrates on the use of a genetic algorithm (GA). The aim is to permit the generation of large volumes of test data focusing on any found mistakes. Such uncommon or underrepresented occurrences are the main focus of the genetic search process, though producing some test cases that explored the larger areas of good results. Only after extended execution, many errors emerge and the program emphasizes new and 2 repeated test cases. Our first work used genetic algorithms to construct test cases for the machine. But testing at device level tends to be the real strength of automated testing at large scales [1][2][3]. How to build large data sets to identify fault patterns on complex systems using genetic algorithms effectively? Testing will preferably take place in a complete fashion, leaving no question that the software created and tested is bug-free. Unfortunately, very few programs are so complex that rigorous testing is carried out. Because thorough research is not necessarily feasible, the development of test sets must tackle the problem of limiting the number of test cases. These methods are the most common methodological approaches used in generating non-exhaustive test sets (1) by analyzing the programmed internal structure (denoted structural case selection and white-box testing). It shows in Figure 1.
The test case can be seen by its input and expected output. However, to be more effective. If I d am a unique identifier used to trace the test case, the input will consist of a series of values that are passed as input parameters to cross the desired running path and/or check the desired features. Input is the same as input [4][5]. The performance is the predicted values and configuration specifies how the test condition is to be configured and how the test case can be exercised etc.

Figure 1: Test Information Flow
The continuation of the paper is structured as follows: Part 2 describes the related work on traceability and necessary tests; Part 3 presents a genetic algorithm model of test case selection. The findings of section 4 are eventually summarized in section 5.

RELATED WORKS
Five key problem areas were established in previous Job in the area of regression testing. There are trouble areas: (1) the question of review of the source code for software changes and their effects on software actions, (2) version management, (3) development of test cases, (4) collection of regression test cases and (5) nondeterministic run-time behavior. (The way in which test cases are preserved should also, however, be defined in the fields (2), (3) and (4) for the purposes of completion.) In (1), it is necessary to detect not only textual changes but also semantic modifications.
For example, by using a system representation graph, the identification of semantic changes, shown by Horwitz et al. [5] can be detected. We are aware that no research was done on the effect of changes on the temporal output, i.e., flows determined by system calls, task-interlacing events and task planning process, in relation to control-flow and data flow at system level. On the 2 nd , Industry and academia have learnt to use software to handle multiple versions of source code. In the third segment, you must construct the initial collection of test cases. The test cases are initially chosen on the basis of the coverage criterion. In addition, in 4, In order to balance the capability to identify errors and the costs of choosing and applying the test cases, a regression test subset should be selected. In [6], it is impossible or difficult to decide if faults were corrected during test runs. The focus of multi-tasking software tests was on checking the order of organization procedures or of simultaneous measures in Java but in the knowledge of the author there were identical limited research findings on tests of the granularity of the interleaving programmed declaration [7][8][9][10].

Unit Testing
We are focusing on a different form of software testing, called the testing unit, which separately measures each module or device. A unit may be a process, a class or a collection of closely related classes in object-oriented programs. Programmers normally undertake unit testing and are the basis for all other evaluations, for example integration testing and device testing. The testing consists generally of three elements: the design of test cases (or the collection of test data), the implementation of test cases and the comparison of performance data with the expected results. All three components must be standardized for full automation of testing.
Two popular test data collection strategies are the black-box approach and the white-box approach. In the black-box process, test data is only collected on the basis of the definitions of inputs and outputs, i.e. without understanding the internal workings of the system being evaluated. Basic knowledge of computer code in the White box approach is utilized to selection test data, for example control flow of the system or data flow property. The two methods are mutually compatible and are sufficient for full research. We use both methods in our work.

Regression Testing
During the software development process, regression testing is done at various stages. Testing can expose problems during the whole development process and at all stages. These bugs are most often fixed through modifications to the source code, which lead to a need to check the program again. Therefore, there has arisen a need for regression testing. "Selective restart of the system or component to check that changes have not led to unintended results and the system or component still meets its defined specifications. Software glossary describes regression is testing as" [11]. The regression test can be divided into two groups on the basis of the form of modification [12] Modifications to the source code cause corrective regression testing, although gradual regression testing is initiated by modifications to specifications. Regression testing for single-tasking applications (i.e., very structured applications) has been deliberately suppressed. The focus of research in this field was on the issue of regression testing. This is because a careful selection of tests will minimize research efforts dramatically. The basic concept is to pick test cases to re-test only modified components (as nonmodified components remain valid). This problem is not straightforward since the question of how changes spread and affect unchanged sections of the code is difficult to decide [13][14][15][16][17].

Genetic Algorithms
In order to produce object-orientate test data automatically we use an evolutionary approach called genetic algorithms. Genetic algorithms are rooted in development mechanisms and natural genetics and exploit a possible optimization or search problem population [8][9]. Genetic Algorithms A series of possible solutions, consisting of a sequence of genes, is defined as chromosomes which are similar to the genetic material in nature. Each trial data can be seen as a chromosome [18][19][20][21]. In comparison with other solutions in the population, each solution is related to the fitness value that shows how good it is. Check coverage for fitness can be used in training. Fitness, as in nature, is the driving force behind better survival strategies. This ensures that new potential solutions with characteristics that are heisted from each parent solution are accomplished with selective breeding. Generations of successive organisms, called genetic operations, including crossover and mutation, are created. The goal is to make it possible for people to agree on a global solution. The fitness value of each solution is determined randomly generated solutions from an initial population. The members of a community are chosen to become parents based on their fitness values. In conjunction with the crossover operator, the parents form the offspring that concentrates the genes in two chromosomes. The crossover objective is producing offspring with both parents' best traits, resulting in better offspring. Many of the descendants are then transformed into demographic diversity. Then, from the young people and the old population, we chose a new generation. When terminations are achieved, the generational cycle must be repeated. While genetic algorithms are relatively new for research, the approach has proved successful. Genetic algorithms are also used to solve the problems of population growth in the context of a collection of restrictions in the search for a viable result [22][23][24][25][26][27][28][29][30]. The genetic algorithm is used in 4 this current application however; the principle of goodness relies on the outcomes of previous test cycles preserved in a fossil record, to produce good test cases. In other words, an efficient correlation is used instead of absolute fitness [31].

Genetic Algorithm:
Step-1-Begin Step-2-t→0, Initialize P(t) Step-3-Evaluate P(t) while (not termination condition) do Begin t←t+1 Step-4-select P(t) from P(t-1) according to evaluation crossover P(t) according to crossover rate mutate P(t) according to mutation rate evaluate P(t) end Step-5-End Genetic Algorithm Structure

EXPERIMENTAL RESULTS
The following section describes the empirical family of studies, including the architecture, topics, measurements and findings. The question of priority test cases and empirically analyzed various priority techniques. These strategies were focused on the inspection of either software statements or branches and defects. The relation is made to the other Greedy algorithm and the genetic algorithm to obtain better results for the test cases [32][33][34][35]. For the test cases range.
It has been applied to research programs in the hope of demonstrating the applicability of the proposed genetic algorithm-based test case generation techniques [36].

Case Study-1: Temporal Database for Data Base Management System
The key principle of this project is the calling and implementation of a temporal natural language interface (TNLP) as a user for communicating with the temporal database system and simplifying the query processing in a temporal database system. The framework is built with java, which can be run in any operating system supporting java virtual machine and tested with banking domain data [37][38][39]. A time-based Natural Language querying framework has been developed for users who are not using SQL, and for intermediate users wishing to retrieve data from temporal databases without having to learn query mechanisms such as SQL.
We have numerous modules like In this project Table  • View Table  • Update Table  • Delete Table  • Insert Table  Though the project has many modules and screens here we are presenting only one screen as Sample Output (Design Form) This is design wizard form. In which user has to give query by select, it as a natural language processing form, in which we can give user query in a normal English language not all like a queries in a SQL.

Performance Analysis of Genetic Algorithm with Case Studies
Genetic algorithms have higher efficiency than any other algorithm.

CONCLUSIONS
Throughout this study we have highlighted that multiple task real-time regression testing contains two major problem areas: the problem of test selection and the problem of reproducibility. In response to selecting the right combination of inputs and outputs to evaluate updated programs, the test selection problems often include the selection of the required sequence. As far as reproductively is concerned, the issues addressed include practical difficulties in the re-testing of test cases. This involves the recurrence of tasks between sequences, the device control and data flow rates as well as of tasks. While academic results improve productivity and time-consuming regression testing methods and techniques, there are other benefits. Automation of the test activities could be more appropriate for the industry, in order to identify problems earlier in software development, since they could be conducted during working hours.