ezTester is devoted to the C/C++ product testing field of complicated software. Our self-developed testing tools include: Visual Code Smith (VcSmith), Visual Code Tester (VcTester), Visual Code Automatic (VcAuto). All these tools work with C/C++ development environment in stages including coding, unit testing, integrated testing, interface testing, automation testing, and market problem diagnosis. These software belongs to the same series. Among them, VcSmith and VcAuto are shareware which can be obtained free of charge.
Channels to understand the technological system
First of all, learn about the applicable business range of these tools, and then consult the software enhancement proposals (SEPs). SEP is the key channel for the R&D team of our company to exchange information with the outside. SEP documents can not only describe features of future software to request feedback from users, but also disclose a lot of information related to R&D and cared by users, e.g. product structure, application scenario, usage suggestions, usability, and precautions.
To learn more about the testing philosophy, testing methods, and promotion methods and experience of unit testing, integrated testing, automation testing of the products, please refer to Expert Blog of our company. Different from personal blogs, our technical blog focuses more on intactness, feasibility and preciseness. In addition, in the blog, we also try to avoid repetition of contents existing in SEP.
This technological system relies on the language mapping ability of CSE scripts. For details, please refer to CSE Language Official Site.
Product Structure

Reside a debugging agent with CSE script interpreter in the program under testing, and then map variables or functions in the system under testing to the script system, to enable the testing scripts to directly control variable reading/writing and functional calling. After being started, the program under testing will establish connection with the user operating terminal, which can realize the following functions:
- Writing testing scripts, and implementing online debugging or testing
- Making instrumentation to codes under test, and realize coverage ratio counting
- Analyzing VC symbol files, and extracting relevant information for supporting code editing, supporting testing design, and testing script auto-generation
- Making syntax analysis on source codes, identifying code risks, assessing code complexity, and generating API instructions
- Offering table-driven encapsulation, and realizing automation testing based on ActionWord and data driving
VcSmith/VcTester/VcAuto offer three optional operating terminals: console terminal embedded in the program under test, GUI operating terminal offering integrated IDE environment, and Excel table terminal based on table driving. Among them, the GUI terminal and table terminal can establish communication connection with the program under testing by means of shared memory.

The operating terminals can also extent via the "remote communication agent", so that you can use Telnet super-terminal for remote diagnosis.

Core Technologies
The technological system involves the following core technologies:
- Syntax analysis technology based on smart induction
- Testing coverage instrumentation technology
- General script engine technology
- Language mapping and emulation technology
- Testing script auto-generation technology
- Inspector technology that supports script auto-generation by debugging operations
- Code complexity assessment and code risk inspection technology
- High-efficiency automation testing technology based on testing reuse and table driving
- Automation case design technology based on ActionWord key-word driving and ADB data driving
- Safe and controllable remote diagnosis technology
This technological system is baed on the "online language mapping technology", and combines other technologies, to extend testing functions in various R&D stages. It, together with the flat language technological system based on the "offline language mapping system", forms a series of high-efficiency, powerful R&D supporting tools with great expectations. Refer to SEP 104: Brief Description on Online and Offline Language Mapping Technology.

the 4th Generation Whitebox Testing Methodology
The 4th Generation Whitebox Testing Methodology (4GWM) is a set of testing methodology brought forward by us through long-term practices and years of accumulation of experience in the development, promotion and implementation of whitebox testing tools for the communication industry. The methodology has undergone the test of the market for a long time.
3 key fields and 9 key features of the 4GWM are as follows:
- The 1st key field: Online Testing
- Online testing driven
- Online script stub
- Online testing case design, running, evaluation, and improvement
- The 2nd key field: Greybox Debugging
- Based on call interfaces
- Debugging is testing
- All-in-one coding, debugging and testing
- The 3rd key field: Continuous Testing
- Test design first
- Continuous confidence
- Structure testing design
The 4GWM is targeted at shortcomings of the previous generations of testing methodology, and many of its philosophies have inherited the 2nd generation and 3rd generation testing methods. The following form briefly lists out major differences among 1st, 2nd, 3rd and 4th generation whitebox testing methodologies:
|
Whether to assess testing result |
Whether to make automatic testing |
Whether to make continuous testing |
Whether to offer all-in-one debugging and testing |
the 1st Generation Whitebox Testing Methodology |
No |
No |
No |
No |
the 2nd Generation Whitebox Testing Methodology |
Yes |
Yes |
No |
No |
the 3rd Generation Whitebox Testing Methodology |
Yes |
Yes |
Yes |
No |
the 4th Generation Whitebox Testing Methodology |
Yes |
Yes |
Yes |
Yes |
The 4GWM effectively addresses the following bottleneck problems:
- First of all, the 4GWM attempts to address the bottleneck problem of testing efficiency. The methodology requires online testing and using script language to effectively develop testing cases; testing scripts are written and run online, testing results are checked online, and testing design is improved online based on the coverage and testing progress reports. In addition to online testing, the 4GWM also requires reuse of jobs to the maximum extent, so that both testing scripts and debugging processes can be reused, and most debugging operations can be easily converted to auto-scripts. Meanwhile, the methodology requires the continuous integration mode to enable the system under test to run stably at any time, and the stability is highly reusable in testing design, fast problem location and solution.
- Secondly, the 4GWM attempts to address the problem of testing effectiveless. Testing personnel often reflect that whitebox testing lacks effect, only a few problems can be detected, and the testing cannot go further. In most cases, it is caused by improper testing method. For example, the tester only tests visible codes but omits invisible codes (e.g. default else statements or omitted processing courses), or is limited by routine thinking and fails to test as per interface specifications. The 4GWM introduces the method of "testing first", and avoids the pracitice of "writing cases before codes" in XP practices (which is fuzzy and hard to implement), and really propels the whitebox testing for complicated software.
- What's more, the 4GWM can address the problem of testing effectiveness assessment. In addition to code coverage ratio, the methodology also introduces the user coverage assessment criteria, to effectively avoid false high coverage in random testing which may result in incorrect testing result assessment.
- Finally, during the course of software continuous integration, the 4GWM also requires adhereing to a set of concise traffic light mechanism, to ensure that the whitebox testing can effectively follow up and operate continuously and steadily after the source codes are modified from time to time.
For detailed introduction to the 4GWM, please see the Introduction to the 4GWM (theory), Introduction to the 4GWM (VcTester Practices), and General Definition of the 4GWM. Please refer to Expert Blog.
| |