Core Concepts
기계 학습 프로젝트는 전통적인 소프트웨어 프로젝트에 비해 더 긴 빌드 시간을 요구하며, 중간 규모의 기계 학습 프로젝트는 테스트 커버리지가 낮은 경향을 보인다.
Abstract
이 연구는 185개의 오픈소스 프로젝트(93개의 기계 학습 프로젝트와 92개의 비기계 학습 프로젝트)를 대상으로 지속적 통합(CI) 실행 방식의 차이를 분석하였다.
주요 결과는 다음과 같다:
기계 학습 프로젝트는 전통적인 소프트웨어 프로젝트에 비해 일관적으로 더 긴 빌드 시간을 요구한다. 특히 소규모와 중규모 기계 학습 프로젝트에서 이러한 차이가 두드러진다.
중규모 기계 학습 프로젝트는 중규모 비기계 학습 프로젝트에 비해 테스트 커버리지가 낮은 경향을 보인다.
소규모와 중규모 기계 학습 프로젝트는 비기계 학습 프로젝트에 비해 빌드 시간이 증가하는 경향이 더 높게 나타난다.
기계 학습 프로젝트와 비기계 학습 프로젝트 모두 CI 빌드 실행 및 상태, CI 인프라, CI 파이프라인 구성, CI 테스팅 및 코드 품질에 대한 논의를 공유한다. 그러나 기계 학습 프로젝트에서는 CI와 관련된 다양한 주제(73개)가 논의되는 반면, 비기계 학습 프로젝트에서는 상대적으로 적은 주제(23개)가 논의된다.
이러한 결과는 기계 학습 프로젝트가 전통적인 소프트웨어 프로젝트와는 다른 고유한 CI 실행 방식과 과제를 가지고 있음을 시사한다.
Stats
기계 학습 프로젝트의 중간 빌드 시간은 12.95분, 비기계 학습 프로젝트는 5.54분이다.
중규모 기계 학습 프로젝트의 테스트 커버리지 중간값은 83.24%, 비기계 학습 프로젝트는 93.86%이다.
Quotes
"I don't think our CI will catch all such bugs."
"I would not want PRs to have failing tests because of a poor random seed that is unrelated to the PR itself. That feels like a poor contributor experience."