CodeCoverage/Firefly: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
== [[Image:Bigfirefly.png|center|119x162px]] ==
== Introduction  ==
== Introduction  ==



Revision as of 23:46, 6 August 2009

Bigfirefly.png

Introduction

Project Firefly is a Mozilla internal project about using code coverage data, bugs data and code churn data to narrow down to smaller portions of code base to provide high impact test cases for coverage gaps.

The following coverage cycle best describes our tactical approach.


Coverage Analysis Cycle

Why

Impact of Code Coverage as sole instrument of decision analysis

Code coverage data in isolation is a very incomplete metric in itself. Lack of coverage in a given area may indicate a potential risk but having 100% coverage does not indicate that the code is safe and secure. Look at the following example provided below. This is code coverage data grouped by component in the Firefox executable and the data is collected from automated test suites run only. Additionally there are a bunch of manual test suites that provide extra coverage.

Firefox Code Coverage Trends over time , grouped by Component.

Given the above information, one tends to gravitate towards low code coverage components to develop tests to improve product quality.

However, if you are provided an additional data point, like size of the component, you may realize that filling a 40% coverage gap in say Content gives you a bigger bang for the buck than improving 100% code coverage in xpinstall. [Side note: This data is generated on Linux so, there would be no coverage for xpinstall]


Component sizes : Number of files in a component

How

What

Where

Enhancement Requests

FAQs

Contact