Information Coverage Based Integration Test Selection
Summary
Modern software development approaches promote automated testing as key concepts for quality control. During development software changes are continuously integrated to the mainline code- base requiring test suites to be reviewed. With the growing nature of codebases and the recent monorepo trend the industry has implemented solutions for incremental software building and testing. These solutions work well for unit tests that have a limited set of dependencies but fall short of integration test scenarios where large parts of the codebase are dependent upon. In this thesis we survey theoretical research that uses code coverage data for test case selection. Using these methods we extend the existing model of build systems with coverage concepts and implement and then study this in a modern build system called Bazel. Additionally we propose a generalization of the code coverage algorithm as information coverage that further reduces the need to execute integration tests. Finally we research the efficiency of our methods in a real industry setting and find that we can reduce test case selection rates by 62% and 73% respectively.