On 2/11/2018 1:55 PM, Timothee Cour wrote:
I think you're missing my main point: it's explained here
https://www.ncover.com/support/docs/extras/code-coverage/understanding-branch-coverage
but the gist is that line based coverage is over-counting:
```
if(A)
// 100 lines of code
else
// 1 line of code
```
gives a line coverage of ~ 99% vs a branch coverage of ~50%
(assuming `else` branch never covered in unittests)
What matters as far as bugs are concerned is that 50% of cases are
covered. Increasing the size of the `if(A)` branch increases line
coverage (which is irrelevant) but not branch coverage.
I understand that point. The -cov coverage percentage is the line coverage, not
the sequence point coverage. (Hence it will never be greater than 100%, and it
will never underestimate the coverage. It would be more accurately termed an
"upper bound" on the coverage.)
And yes, that makes it fuzzy in proportion to how many lines contain multiple
sequence points. Eliminating that fuzziness does require a vast increase in the
complexity of the -cov implementation.