Testwell CTC++: Classical Host-Target Arrangement
Typically for targets having- file system under it
- Some kilos of available RAM
- runtime library to be added (2-3K typically),
- integer counters
- transfer via file, file handle, serial port or proprietary interface
Target library
A target library consisting of 3 files have to be compiled and linked to the application. This linking can be arranged to transparent or automaticallyInitiating data transfer
Transfer can be stimulated by atexit routine, or some other handy arrangements. Technically a function ctc_send_data() in target library gets just called.Data transfer
Data transfer is done in one file of the target library, the typical flow is like:if ((fp = fopen("MON.txt", "a")) != NULL) { while ((c = ctc_get_character()) > 0) { fputc(c, fp); } fclose(fp); }Datastream can be transferred whatever you like. fopen("/dec/serio001","a") or over network or through a proprietary channel.
Host receive data
An applicationctc2dat
updates the coverage files from e.g.
- Asynchronous, from a text file "MON.txt",
ctc2dat < MON.txt
- Synchronous, from e.g. a serial port,
ctc2dat < /dev/ttyS0
How the metrics are generated
The code gets instrumented with the "ctc" compiler frontend, per default it increments then file static array elements.How the metrics are collected on the Host
CTC++ accumulated per default coverage data a file "MON.dat" on the host. This is used for input of the report generating tools.Performances
Usually we calculate with 20%, depends very much on coding style and used cross compiler. With the Linux kernel in multicondition mode we got 16% performance impact (test done in 100sec, now in 116sec). Some desktop applications had only 7% performance impact, on some weird cross-compilers we had at max. 53% until now...Benefits
- Support of all compilers/cross-compilers
- Support of all embedded targets and microcontrollers
- Analyses for all coverage levels up to MC/DC and MCC Coverage
- Compliant for safety critical development
- Tool Qualification Kit available
- Simplifies analysis of Penetration tests
- Support for C, C++, Java, and C#
- Performs Kernel Coverage
- Integrations in many tool chains and testing environments
- Broad platform support
- Works with all Unit Testing Tools
- Integrations in many IDEs
- Clear and meaningful reports
- Very easy to use
- Thousands of licenses succesfully in use for safety critical development
- Proven customer success
- Live-Presentations, Trainings and Online-Presentations
- Free evaluation licenses
Frequently Asked Questions