Design and Implementation of an Integrated Testing Platform for C/C++ Programs
The automatic or semi-automatic testing tools bring great effect on software development, in particular, they can improve the software production greatly. In order to facilely perform testing on C or C++ programs, a prototype tool called CppTest is designed and implemented. It can employ three levels testing, namely (1) structural testing in method level by analyzing programs constrcuts, instrumenting probes, redirecting I/O stream and etc., (2) state-based class level testing through modeling state transition behaviors using an extended finite state machine (EFSM) from the class specifications, and (3) system level black-box testing with some traditional strategies such as equivalence partitioning and boundary-value analysis. In addition, the tool can employ clustering analysis on the failure executions and then sample fairly few representative test executions to direct program diagnosis. Multi-levels testing capability, test project management, high automation, visualization and scalability are the remarkable merits of the prototype system.