Skip to main content
QUICK REVIEW

[논문 리뷰] Early Life Cycle Software Defect Prediction. Why? How?

N. C. Shrikanth, Suvodeep Majumder|arXiv (Cornell University)|2020. 11. 26.
Software Engineering Research참고 문헌 71인용 수 4
한 줄 요약

이 논문은 데이터가 적은 접근 방식을 통해 소프트웨어 결함 예측의 초기 라이프사이클을 제안하며, 첫 150개 커밋과 네 달 간의 데이터로만 훈련된 모델이 전체 프로젝트 역사로 훈련된 모델과 동일한 성능을 보임을 보여준다. 주요 발견은 장기적인 GitHub 프로젝트의 경우, 96%의 시간 동안 추가 데이터 수집이 불필요하다는 것이며, 이는 소프트웨어 분석 분야에서 일반적으로 받아들여지는 '더 많은 데이터가 더 낫다'는 가정에 도전한다.

ABSTRACT

Many researchers assume that, for software analytics, "more data is better." We write to show that, at least for learning defect predictors, this may not be true. To demonstrate this, we analyzed hundreds of popular GitHub projects. These projects ran for 84 months and contained 3,728 commits (median values). Across these projects, most of the defects occur very early in their life cycle. Hence, defect predictors learned from the first 150 commits and four months perform just as well as anything else. This means that, at least for the projects studied here, after the first few months, we need not continually update our defect prediction models. We hope these results inspire other researchers to adopt a "simplicity-first" approach to their work. Some domains require a complex and data-hungry analysis. But before assuming complexity, it is prudent to check the raw data looking for "short cuts" that can simplify the analysis.

연구 동기 및 목표

  • 소프트웨어 분석에서 결함 예측 모델의 성능을 향상시키기 위해 더 많은 데이터가 항상 필요한가 하는 가정을 도전하기 위해.
  • 장기적인 데이터 수집이 필요 없이 초기 단계의 데이터로도 효과적인 결함 예측자를 도출할 수 있는지 조사하기 위해.
  • 데이터 소비가 큰 방법이 필수적인지 아니면 간단한 초기 데이터 접근 방식으로도 결함 예측에 충분한지 평가하기 위해.
  • 최소한의 데이터를 사용하여 초기 라이프사이클 결함 예측을 평가하는 재현 가능한 방법론을 제공하기 위해.
  • 특히 데이터 수집이 비용이 많이 들거나 불안정한 경우 소프트웨어 공학 연구에서 '단순성 우선' 접근 방식을 유도하기 위해.

제안 방법

  • 155개의 장기적인 고스타 GitHub 프로젝트(중위수 수명 84개월, 총 3,728개 커밋)를 분석하여 프로젝트 라이프사이클 전반에 걸친 결함 분포를 평가한다.
  • 첫 150개 커밋과 네 달 간의 데이터로 훈련된 모델과 전체 프로젝트 역사로 훈련된 모델을 비교한다.
  • 모델 성능 평가를 위해 로지스틱 회귀, 근접 이웃, 결정 트리, 서포트 벡터 머신, 랜덤 포레스트, 나이브 베이즈의 여섯 가지 분류 학습기 알고리즘을 사용한다.
  • 일곱 가지 평가 지표를 사용한다: 재현율, PF, IFA, 브리어, GM, D2H, AUC이며, 불균형 데이터 문제로 인해 정밀도는 제외한다.
  • 변동성이 있는 초기 데이터에 대비하여 안정성을 확보하기 위해 첫 150개 커밋에서 무작위로 50개 커밋을 선택하는 샘플링 정책 'E'를 적용한다.
  • 초기 데이터로 훈련된 모델(E)과 최근 데이터로 훈련된 모델(RR)을 비교하여 최근성의 영향이 성능 향상에 기여하는지 평가한다.

실험 결과

연구 질문

  • RQ1프로젝트 수명의 첫 4%에 해당하는 초기 데이터로 훈련된 결함 예측 모델이 전체 프로젝트 역사로 훈련된 모델과 동일한 성능을 보일 수 있는가?
  • RQ2프로젝트 라이프사이클의 어느 지점 이후로 추가 데이터가 결함 예측에 대한 수익 감소를 초래하는가?
  • RQ3최근 데이터로 훈련된 '최근성 기반' 모델이 초기 데이터로 훈련된 모델보다 성능이 뛰어나게 되는가?
  • RQ4'단순성 우선' 접근 방식이 정확도를 희생시키지 않고도 지속적인 모델 재훈련의 필요성을 줄일 수 있는가?
  • RQ5어느 정도의 정도까지 초기 데이터만으로도 비틀림이 있거나 장기적인 소프트웨어 프로젝트에서 신뢰할 수 있는 결함 예측을 지원할 수 있는가?

주요 결과

  • 결함은 초기 라이프사이클에 집중되어 있다: 프로젝트 수명의 96% 동안 추가 데이터 수집이 필요 없이 효과적인 결함 예측이 가능하다.
  • 첫 150개 커밋과 네 달 간의 데이터로 훈련된 모델이 전체 프로젝트 역사로 훈련된 모델와 동일한 성능을 보이며, 이는 초기 데이터로도 충분하다는 것을 시사한다.
  • 초기 데이터로 훈련된 모델과 최근 데이터로 훈련된 모델 간 성능 차이가 유의미하지 않으며, 이는 최근성의 영향이 예측 성능 향상에 기여하지 않는다는 가정에 도전한다.
  • 여섯 가지 다른 학습기 알고리즘을 사용한 초기 라이프사이클 예측자의 성능은 안정적이며 유사한 수준을 유지하여, 모델 선택에 대한 민감도가 낮음을 시사한다.
  • 결과적으로 데이터 소비가 큰 방법이 장기적인 비트레이드 프로젝트에서 결함 예측에 필수적인 것은 아니며, 특히 초기 데이터가 이미 정보를 제공하는 경우 더욱 그렇다.
  • 이 연구의 결과는 최근 검증 데이터를 기반으로 한 이전 연구에 의문을 제기한다. 왜냐하면 이러한 데이터는 프로젝트 라이프사이클의 정보가 없는 영역에 위치할 수 있기 때문이다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.