To execute tests on a microcontroller, TESSY uses a third-party debugger (specific for the microcontroller in question) as interface to the test execution environment. TESSY controls the debugger software during the tests. Therefore, the debugger must enable control by TESSY (e.g. by providing an API or script interface), and furthermore, TESSY must be adapted to the debugger in question.
It is of no relevance for TESSY whether the debugger operates as instruction-set simulator or as interface to a hardware debug system (JTAG/BDM/OCDS debugger, in-circuit emulator, or the like).
Most debuggers that Tessy can use for test execution provide means to allow Tessy setting a breakpoint at the beginning of the test object. Therefore, test execution does not complete, but stops when the test object is entered. The input variables of the test object are then just set to the values of the respective test case. You are now enabled to use all the debugger features like line steps, watch windows, etc. to follow the course of test execution these values effectuate. This is very valuable for investigating why a test case did not produce the expected result