International Journal of Computer Applications (0975 8887) Volume 75No.8, August 2013 1 Analysis of Test Case Prioritization in Regression Testing using Genetic Algorithm Pradipta Kumar Mishra B.K.S.S Pattanaik CUTM, Bhubaneswar GITA,Bhubaneswar Odisha,India Odisha,India Pin 752054 ABSTRACT Testing is an accepted technique for improving the quality of developed software with the increase in size and complexity of modern software products, the importance of testing is rapidly growing. Regression testing plays a vital role for software maintenance when software is modified. The main purpose of regression testing is to ensure the bugs are fixed and the new functionality that are incorporated in a new version of a software do not unfavorably affect the correct functionality of the previous version. So to revalidate the modified software, regression testing is the right testing process. Though it is an expensive process which requires executing maintenance process frequently but it becomes necessary for subsequent version of test suites. To evaluate the quality of test cases which are used to test a program.Testing requires execution of a program. In this paper it is proposed a new test case prioritization technique using genetic algorithm. The proposed technique separate the test case detected as severe by customer and among the rest test case prioritizes subsequences of the original test suite so that the new suite, which is to run within a time-constrained execution environment. It will have a superior rate of fault detection when compared to rates of randomly prioritized test suites. This experiment analyzes the genetic algorithm with regard to effectiveness and time overhead by utilizing structurally- based criterion to prioritize test cases. Keywords Regression testing, object-oriented, software testing, regression test selection, software maintenance, Genetic algorithm. 1. INTRODUCTION It is a basic phenomenon that changes in software is one of the most foreseeable part when computer based system are made. So often it has been observed that the functionalities which were working in the previous version are still working in the new version also. With the existing errors and necessity for changing requirements propels the software to be reworked. Through the new uses of the previous version software, one can obtain new functionality that is not originally conceived in the requirements. To properly manage these changing concepts play a crucial role in the enduring efficacy of the software. The basic purpose of regression testing is to revalidate the old functionality that was inherited from the previous version. Once the new functionality is added to the system then it can be accommodated by the distinctive software development process. The new version is required to behave exactly same in the previous version except the new included part. In other way, regression tests for a system may be perceived as partial operational requirements intended for the new version of a system. Let’s take an example of a sequence of time intervals during the life cycle of software which is depicted in the Fig. 1. It is already a known fact that the regression testing intervals take up a considerable portion of the system’s life time for which the importance of regression testing cannot be overlooked. Due to time constraint a complete regression testing cannot be always possible for an updated version of the software. It may be in the software revalidation process one cannot completely omit or randomly reduce the regression testing interval. Fig. 1. Sequence of time intervals during a software’s life cycle When a software/program is modified, it should not only look at whether the modifications work properly or not but it should be checked whether there have been any adverse side effect in the unmodified parts of the software/program because even if a small change in one part of a program can affect with the unrelated part of the program. It may happen the modified program may yield correct results on specially designed test cases for modification testing whereas it may produce incorrect results on other test cases on which the original program produce right outputs. To ensure the modified program’s effectiveness, the modified program is executed on all existing regression tests to ascertain that it still works the same way as the original