I'm currently working on a Python-based framework for on-target firmware testing of firmware of Cortex-M MCU systems. The approach is heavily based on the use of the debug probe to perform unit as well as system tests.
The framework I have in mind allows us to do
firmware testing without modifications for testing (i.e., not test code compiled into the firmware)
firmware component testing without mocking of, e.g., peripherals
firmware testing with selective injection of data into the execution
firmware testing on the original target device
firmware testing using the original compiler
The tests themselves are implemented in Python and are executed on a host PC which also gives you full accesses to whatever equipment you already have available for providing external test stimuli or performing measurements.
I would like to learn what approaches you are taking for firmware testing and I would like to hear your opinion on the proposed approach. If things work out well, we plan to release the framework on GitHub later this spring.