Skip to Main Content
Testing is a process of executing a program with the intent of finding an error . A good test is one that has a high probability of finding an as-yet-undiscovered error. A successful test is one that uncovers an as-yet-undiscovered error. Testing can be manual, automated, or a combination of both . Manual testing of the software is inefficient and costly. If the testing process could be automated, the cost of developing software could be significantly reduced. There are mainly two strategies of testing, one is structural and other is functional. In structural testing the knowledge to the internal structure of the code is used to find the number of test cases  required to guarantee a given level of test coverage. For example data flow testing which selects paths of a program according to the locations of definition and uses of variables in the program. On the other hand, in functional testing, only observation of the output for certain input values is used as test cases. For example boundary value analysis . So, in this paper we are focusing on one of the method of Structural testing called Data Flow Testing. For Data Flow Testing we have developed a tool which will automatically find the bugs in the program. Consequently, complexity and expected output of the program will be improved. The tool concentrates on the usage of variables and the focus points are: 1. Statements where variables receive values. 2. Statements where these values are used or referenced. As we know, variables are defined and referenced throughout the program. We may have few define/reference anomalies: 1. A variable is defined but not used/referenced. 2. A variable is used but never defined. 3. A variable is defined more than one time before it is used. These anomalies will be identified by static analysis of code i.e, analyzing code without executing it.