Techniques for Coverage Evaluation
Broadly speaking there are two approaches to evaluating coverage:
Instrumentation involves injecting data collectors throughout the code that are used to monitor exactly which lines and branches are executed. This is how the popular tool solidity-coverage works.
Tracing involves monitoring the program counter of the compiled code as it executes, and then mapping the executed instructions back to specific lines of code. This is used by Brownie
To be used in Embark and Remix-tests