Software testing techniques (2nd ed.)
Software testing techniques (2nd ed.)
SAAM: a method for analyzing the properties of software architectures
ICSE '94 Proceedings of the 16th international conference on Software engineering
Quantifying the costs and benefits of architectural decisions
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Art of Software Testing
Testing Object-Oriented Software
Testing Object-Oriented Software
Hi-index | 0.00 |
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.