Estou usando a ferramenta de cobertura de código Bullseye . É ótimo. Estou interessado em saber seu funcionamento interno. Como realmente funciona?
Resposta
Esta é uma pergunta independente de ferramenta. Todos eles funcionam da mesma maneira: eles instrumentam o código do seu sistema. Cada vez que uma linha ou branch de seu código é visitado em tempo de execução, a ferramenta armazena em cache essas informações. Afinal, o número de linhas (ou ramificações) visitadas é dividido pelo número total de linhas (ou ramificações). Isso é feito no escopo de uma única classe / arquivo, pacote, subárvores de pacotes e aplicativo inteiro.
A instrumentação de código pode ser, no entanto, específica de ferramenta e linguagem.
Aqui você encontrará mais informações, links e artigos de pesquisa sobre como implementar você mesmo a ferramenta de cobertura de código e como a instrumentação em ferramentas de exemplo é feita.
Comentários
- É útil distinguir entre as ferramentas que instrumentam o código-fonte e aquelas que instrumentam o código de byte. Você praticamente não pode ' obter o último para linguagens compiladas convencionalmente.