Code Coverage analysis is an effective method that is used at white-box testing of embedded systems. This includes inspections that offer information about which part of the program code had been actually executed while running a particular test case with defined test settings. Based on the evaluation of the results, such test cases can be created that verify the program more extensively, which allows the developers to make sure that the final software product will not contain any untested source code.
Traditionally, coverage testing is performed with the instrumentation of the inspected program. This is not preferred, because it requires additional resources and modifies the original code. The research at BUTE, Department of Measurement and Information Systems aims to exploit the hardware trace and debug support of modern microcontrollers with ARM Cortex-M3 core, for the purpose of producing code coverage measures, with (partially or totally) ignoring the code instrumentation step.
The thesis introduces the CoresSite debug architecture that is included in the Cortex-M3 core, how to use it to generate real-time program trace data, and how to interpret these data to fulfill code coverage analysis. According to that, an Eclipse plug-in has been designed and implemented, which can produce different code coverage information such as statement, decision or path coverage, using the real-time trace data generated by the core, and without encroaching on the examined code.