International Journal of Computer Applications (0975 – 8887) Volume 77 – No.11, September 2013 1 Path Prioritization using Meta-Heuristic Approach Himanshi, Nitin Umesh, Saurabh Srivastava Computer Science and Engineering India ABSTRACT Software testing is one of the most important phase in development life cycle of any software system as testing assures the quality of the software i.e. a software is bug-free can judged using software testing. Although, creating bug-free software is impossible but we can find out most of the bugs and recover them. Software testing can be done in many ways but here we will focus on structural testing. This paper presents an approach which can prioritize the paths among a set of paths such that they can be executed accordingly and comparison between existing methods is done. All results have been produced using a software developed for the purpose. 1. INTRODUCTION When the computers were first made, they were big-room sized machines which operate on mechanical relays and glowing vacuum tubes. At Harvard University technicians were running the new computer when it suddenly stopped working. The reason was, a moth was stuck between the relay contacts of the computer. It had apparently flown to the system attracted by the light. From that day computer bug was born. A bug caused the computer to stop working, thus software’s need to be tested in order to prevent flaws which may lead to the system failure. Software testing is now an integral part of software development life cycle (SDLC). Some companies now have an entire different section of testing team in their company for testing the quality of the product. The main goal of performing software testing is to find the bugs in the software before release of product to the end users. Software testing assures the quality of the product and now-a-days most of the expenses are done for performing quality testing such that errors can be removed and we can have bug-free software. There is a test criteria hierarchy. As we know there are several testing criteria and we need to give preference one over other on some basis. Obviously, the better one which can provide better result will be preferred over others. Theoretical analysis concerning the hierarchy shows that the most of the testing criteria are incomparable. There are two major ways of testing any software product. Structural testing Functional testing 1.1 Structural testing Structural testing is also known as white box testing or logic- driven testing, it is the process of testing the internal logic for the program. It covers the lines of code written for the software. There are several types of structural testing such as Data flow testing Control flow testing Statement coverage Branch coverage Path coverage Condition coverage Basis path testing These are few important testing techniques in white-box testing. We will keep our focus on basis path testing. Fig 1.1 Testing criteria hierarchy Structured testing All-Path All du paths All use P-use C-use Branch Statement