Designing test engine for computer-aided software testing tools

  • Authors:
  • Xue-Ying Ma;Bin-Kui Sheng

  • Affiliations:
  • College of Information Management, Zhejiang University of Finance & Economics, Hangzhou, P. R. China;College of Information Management, Zhejiang University of Finance & Economics, Hangzhou, P. R. China

  • Venue:
  • WSEAS Transactions on Computers
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

With the rapid development of software scale and programming languages, it is impossible to test software manually. The case for automating the software testing process has been made repeatedly and convincingly by numerous testing professionals. Automated tests can promote the efficiency of software testing and then to increase software productivity, improve software quality, and reduce cost in almost all processes of software engineering. White-box testing is one of the most important software testing strategies that can detect error even when the software specification is vague or incomplete. This paper gives a detailed description of the design and implementation of a testing engine. The testing engine, which is the kernel of a developed structured software-testing tool for the Visual Basic and C/C++ language, mainly consists of three components: program analyzer, source code instrumentation tool and intermediate database. In the testing engine, a block division mechanism and a new block-based CFG model are introduced and some block-based test adequacy criteria are extended. The programs are divided into a sequence of blocks and then instrumented and compiled in the testing engine, and all the information related to the test is saved in the intermediate database. The testing engine, acting as an agency, associates the testing automation module with instrumented executable program rather than the source code, and therefore the testing tool can easily be developed to accommodate new requirements and different testing adequacy criteria. It is also convenient to build a testing environment for multi-languages by modifying the program analyzer only, due to the flexibility of the software architecture.