In order to perform dynamic testing, TESSY must first generate a test driver. The test driver is necessary to call the function under test and TESSY generates the driver automatically. The test driver and the function under test together form a complete (embedded) test application, including the startup code for it. In case the function under test uses external variables that are not defined, the test driver generated by TESSY can define that variable in the test driver. Similar, if the function under test itself calls other functions (subroutines), TESSY can provide replacement functions (stubs) for the missing subroutines with the test driver. TESSY features two types of stub functions: (1) Stub functions for which you may provide the C source code for the bodies of the stub functions and (2) stub functions for which TESSY is able to check if the expected value for a parameter is passed into the stub function and for which TESSY is able to provide any value specified by the user as return value of the stub function. The test driver, the function under test, stubs and everything else is automatically compiled and linked by TESSY using an appropriate compiler for the particular embedded microcontroller architecture being used.