Brown Builds: Optimizing Build Performance and Comprehension

Modern software organizations use continuous integration (CI) practices to build and test their products after each code change in order to detect quality issues as soon as possible. Unfortunately, the number of builds scales super-linearly with the number of hardware and feature configurations that should be supported. In order to avoid running out of build resources, organizations are no longer able to build individual code changes, but instead need to build groups of successive code changes. Worse, certain ?flaky? tests executed during a build lead to inconsistent results, i.e., not every failure is a real failure. This project aims to prototype and evaluate approaches for (1) early detection of flaky build results and (2) reduction of build volume by grouping related code changes.

Intern: 
Doriane Olewicki
Faculty Supervisor: 
Bram Adams
Project Year: 
2019
Province: 
Quebec
Program: