System Testing for C

What does embedded software testing at the system level focus on? It focuses on the interaction between two or more threads, tasks, processes, and subsystems. In this case, the communication mechanism is provided by a C language messaging API, and the system-under-test is stimulated by stubbed virtual actors.

As a tester, you have three primary interests at this point:

The system testing feature for C-based messaging APIs enables system level testing. This is achievable because of Test RealTime's ability to define virtual actor behavior - or, using OneTest Embedded terminology - virtual tester (VT) behavior. There are two ways to define VT behavior:

The output virtual tester scripts not only define the message content sent to the system-under-test, but also define tests for the messages subsequently received - tests in which success or failure is based on message content, time-of-response, or both.

Once the virtual tester scripts are created, the system test deployment scheduler is used to configure the launch of one or multiple VT instances, including the machines upon which the deployment should occur (virtual testers can be executed on multiple machines, remotely, during a single test run). The resulting report consolidates all interactions, highlighting errors, while a runtime tracing diagram graphically displays system interactions. (Note how the ability to launch multiple, concurrent virtual testers lets you generate a load on the system under test, thereby enabling load and stress testing of the target system.)

This tutorial will focus on the first method suggested for generating a system test - that is, through the use of the System Testing test script API.