Design and Implementation of a Testing Tool (DFT-Tool) Based on Data Flow Specification
Abstract
In software development, testing is a crucial step to ensure the quality and reliability of the final project. Data flow testing is a technique that aims to validate the correct flow and transformation of data through a software system. However, data flow testing can be a complex and time-consuming process, especially for large and complex systems.Data flow testing is an important technique used in software testing to detect potential errors and vulnerabilities in the code. It focuses on how data is processed and moves throughout the code, and can help identify issues such as uninitialized variables, code that is never executed, and variables that are never used. This helps to guarantee that the software behaves as expected, operates correctly, and meets user requirements. Data flow testing can help identify and resolve uninitialized variables, dead code, data dependencies, input validation, and user-entered data. It can also help identify potential issues, such as invalid data or uninitialized variables, and ensure that user-entered data is validated and processed correctly. This can help to improve the quality of software and reduce the number of problems experienced by end-users , The proposed DFT tool has been success by achieving all planned objectives by multiple stages, first stage is drawing flow graph after translate and analyzing the input code into abstract syntax tree by using parser which built from scratch, abstract syntax tree is the suitable model to draw the graph , then the proposed DFT tool break down the input code into blocks each block contain number statements , second stage the proposed DFT tool make a table to detects transformation for each variables over the each line of the block into : D (definition) , U(use may be : prediction or computation), DU pair ( variable defined and then used), UD pair (variable used after defining ).Third stage of the proposed DFT tool is making another table to detects anomalies like variable which has defined and not used , identify variables into : defined (D) , used (U) , killed (K ) along all lines of the tested code, It also identify the paths of each variable into : clear and not clear , fourth stage is making a table for merge the paths which has duplication of the node and running test cases on the paths which produced after merge process , the proposed DFT tool has so high coverage and accuracy of the tested codes , these accuracy may be reach over 95% depending on the behavior of the tested code.