Code Coverage at Google

被引:74
作者
Ivankovic, Marko [1 ]
Petrovic, Goran [1 ]
Just, Rene [2 ]
Fraser, Gordon [3 ]
机构
[1] Google Switzerland GmbH, Zurich, Switzerland
[2] Univ Washington, Seattle, WA 98195 USA
[3] Univ Passau, Passau, Germany
来源
ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING | 2019年
关键词
coverage; test infrastructure; industrial study;
D O I
10.1145/3338906.3340459
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:955 / 963
页数:9
相关论文
共 15 条
[1]  
Adler Y, 2011, 2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), P736, DOI 10.1145/1985793.1985897
[2]   An Automated Approach to Estimating Code Coverage Measures via Execution Logs [J].
Chen, Boyuan ;
Song, Jian ;
Xu, Peng ;
Hu, Xing ;
Jiang, Zhen Ming .
PROCEEDINGS OF THE 2018 33RD IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMTED SOFTWARE ENGINEERING (ASE' 18), 2018, :305-316
[3]   APPLICABILITY OF MODIFIED CONDITION DECISION COVERAGE TO SOFTWARE TESTING [J].
CHILENSKI, JJ ;
MILLER, SP .
SOFTWARE ENGINEERING JOURNAL, 1994, 9 (05) :193-200
[4]   Techniques for Improving Regression Testing in Continuous Integration Development Environments [J].
Elbaum, Sebastian ;
Rothermel, Gregg ;
Penix, John .
22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, :235-245
[5]   CONTROLLING FUNCTIONAL TESTING OF AN OPERATING SYSTEM [J].
ELMENDORF, WR .
IEEE TRANSACTIONS ON SYSTEMS SCIENCE AND CYBERNETICS, 1969, SSC5 (04) :284-+
[6]   Code Coverage for Suite Evaluation by Developers [J].
Gopinath, Rahul ;
Jensen, Carlos ;
Groce, Alex .
36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2014), 2014, :72-82
[7]   Coverage Is Not Strongly Correlated with Test Suite Effectiveness [J].
Inozemtseva, Laura ;
Holmes, Reid .
36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2014), 2014, :435-445
[8]   Are Mutants a Valid Substitute for Real Faults in Software Testing? [J].
Just, Rene ;
Jalali, Darioush ;
Inozemtseva, Laura ;
Ernst, Michael D. ;
Holmes, Reid ;
Fraser, Gordon .
22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, :654-665
[9]  
Kim YM, 2003, CONF P INDIUM PHOSPH, P145
[10]  
Li N, 2013, PROC INT SYMP SOFTW, P380, DOI 10.1109/ISSRE.2013.6698891