Functionality of software code is mostly tested using the black-box approach, where the actual outputs are compared to the expected ones based on the tester's understanding and knowledge of system requirements. Since the available documentation is often incomplete or outdated, especially in the case of a "legacy" application, and the code may be poorly structured, execution data seems to be the most reliable source of information on the real functionality of an evolving system. In complex software applications, manual observation of system inputs and outputs is hardly helpful. In this paper, we demonstrate the potential use of Info-Fuzzy Networks (IFN) for automated induction of functional requirements from execution data. The induced models of tested software can be utilized for recovering missing and incomplete specifications, designing a minimal set of regression tests, and evaluating the correctness of software outputs when testing new, potentially flawed releases of the system. To evaluate the efficiency of the proposed approach, we have applied it to execution data of a sophisticated expert system for solving partial differential equations. Experimental results demonstrate the clear capability of the IFN algorithm to discriminate between correct and faulty versions of a tested program. In addition, we show the robustness of the info-fuzzy methodology with respect to complex and partially inconsistent data.
|Title of host publication||Artificial Intelligence Methods in Software Testing|
|State||Published - Jun 2004|