Development of software testing and analysis tools - Part B - Ong, Ghim Hean. (2009)
Software testing and analysis is increasingly recognized, in research and in industrial practice, as a core challenge in Software Engineering. Software testing strategies can be classified into black-box testing and white-box testing. Empirical evidence shows that black box testing does not reveal as many errors as a combination of various testing method does. When black box testing is used in combination with white box testing, it leads to a more thorough and comprehensive testing of an application. To perform a white box testing, the program code must be comprehended and analyzed. The aspect to be analyzed include information flow, data flow and control flow, coding practices, exception and error handling within the system. The testing process is very labor intensive and hence also expensive. By developing tools that automate one or more aspects of testing, the overall cost of testing can be reduced. Source code analysis tools help in determining the program’s vulnerabilities based on a fixed set of rules and pattern. In this project, analysis tools are to be developed using T.J. Watson Libraries for Analysis (WALA), from open-source (http://wala.sourceforge.net) which provides static analysis capabilities for Java byte code and related languages. A function is first developed to represent the program to be analyzed in the form of control flow graph. Based on the control flow graph that has been generated, a few analysis tools have been developed to facilitate the task of analysis. This includes a function which auto generates the basis set of path for a program. Other functions which have been realized include identification of nodes that another node control dependent or data dependent on. These tools will facilitate test case development. After this, white box testing can be carried out to test all the software intended and unintended behavior.