Abstract

Software testing is regarded as a pivotal approach to realize a high reliable product. To check for the correctness of results, we require appropriate test cases. UML models are largely used to depict the specifications for software development. Test cases are created independently and based on the sequence of occurrence in the diagrams; they lead to corresponding test paths in the program. In this paper, we have analyzed an activity diagram, consisting of concurrent activities, for generating test paths. The obtained test paths are therefore required to be ranked. We have demonstrated that it is conceivable to apply Genetic Algorithm procedures alongside Ant Colony Optimization technique for not only finding the most critical path but also prioritizing the other paths too for enhancing the effectiveness of software testing.

Article Preview

Introduction

Software testing (Kit, 1995; Mathur, 2008) is a critical segment of product development which realizes a high reliability product alongside controlling the quality framework. The principle objective of testing is to develop the trust of the end user in the accuracy of the system. Testing can be viewed as the procedure of distinguishing the contrast between the expected and actual results. It is found that software testing is a time consuming and costly errand. It devours right around half of the software framework resources. Exhaustive testing is unlikely to be carried out since there are no limits on how much we can test. Thus, to limit the process of testing, the concept of testing criteria was laid down. Satisfying the testing criteria puts an end to testing process. With the escalation in complexity and size of software systems, greater time and manpower were consumed for testing. Rich knowledge and experience in the domain of software testing served as a perquisite for software testers carrying out manual testing. Manual testing is so labor-intensive and error-prone that it becomes obligatory to automate the testing techniques. A varied number of testing techniques have been proposed in the literature. They are as follows.

Black Box Testing

Black Box Testing is a type of testing where the software tester is unaware of the internal working of the application. He remains oblivious to the internal architecture of the system and he does not have any access to the source code. Basically, when a software testing professional conducts this test, he interacts with the system's user interface. He checks for the correctness of the system’s functionalities by providing their corresponding inputs and examining their outputs against a set of expected outputs.

White Box Testing

White Box Testing is a testing technique which requires a detailed knowledge of the internal logic and structure of the code. The tester chooses inputs to exercise paths through the code and determines the appropriate outputs. He verifies the system’s correctness by ensuring that each path or statement of the system gets executed under certain criteria.