Code coverage at Google

René Just
Gordon Fraser
Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ACM, pp. 955-963

Abstract

Code coverage is a measure of the degree to which a test suite
exercises a software system. Although coverage is well established
in software engineering research, deployment in industry is often
inhibited by the perceived usefulness and the computational costs
of analyzing coverage at scale. At Google, coverage information is
computed for one billion lines of code daily, for seven programming
languages. A key aspect of making coverage information actionable
is to apply it at the level of changesets and code review.
This paper describes Google’s code coverage infrastructure and
how the computed code coverage information is visualized and
used. It also describes the challenges and solutions for adopting
code coverage at scale. To study how code coverage is adopted and
perceived by developers, this paper analyzes adoption rates, error
rates, and average code coverage ratios over a five-year period,
and it reports on 512 responses, received from surveying 3000
developers. Finally, this paper provides concrete suggestions for
how to implement and use code coverage in an industrial setting.

Research Areas