TravisCI – a continuous integration service – shares some of the insights from over 2,000,000 builds they’ve run, in an blog post called “What We Learned about Continuous Integration from Analyzing 2+ Million Travis Builds“. For me, the most valuable bit is about the reasons for failing builds, which clearly indicates the need for and the importance of unit, integration, and UI tests:
Around 20% of all builds fail. There is a variation based on the language – for some programming languages, testing is part of the process and culture – for others it’s an acquired tool. Once you do implement testing, most of your builds will run. You’ll cancel very few. But about 20% will fail due to failed unit tests, configurations, or environment setups. Catching these 20% before it hits production is super important.