WSEAS Transactions on Information Science and Applications
Print ISSN: 1790-0832, E-ISSN: 2224-3402
Volume 10, 2013
Generating C++ Log File Analyzers
Authors: ,
Abstract: Software testing is a crucial part of the software development process, because it helps developers ensure that software works correctly and according to stakeholders’ requirements and specifications. Faulty or problematic software can cause huge financial losses. Therefore, automation of testing tasks can have a positive impact on software development, by reducing costs and minimizing human error. To evaluate test results, testers need to examine the output of the software under test (SUT) to determine if it performed as expected. Test oracles can be used to automatize the evaluation of test results. However, it is not always easy to directly capture the inputs and outputs of a program. It is already a common practice for developers to instrument their code so that important events get recorded in a log file. Therefore, a good alternative is to use test oracles capable of analyzing log files. Test oracles that analyze log files are known as log file analyzers. The work presented in this paper builds upon previous research by Dr. James H. Andrews, who proposed a framework in which log file analyzers are generated automatically based on the SUT’s expected behavior. These log file analyzers are used as test oracles to determine if the log file reveals faults in the software. In this paper, we describe how we extended Andrews’ log file analysis framework in order to incorporate new capabilities that make our log file analyzers more flexible and powerful. One of our main motivations was to improve the performance of our log file analyzers. The original log file analyzers were based on the Prolog language. Our new log file analyzers are based on the C++ language, which allowed us to take advantage of the object–oriented paradigm to add new features to our analyzers. We discuss those features and the experiments we performed in order to evaluate the performance of our analyzers. Our results show that our C++ analyzers are faster than their Prolog counterparts. We believe that log file analyzers have a lot of potential in the area of software testing by making it easier for testers to automatize the evaluation of test results.