Skip to main content
QUICK REVIEW

[논문 리뷰] Revisiting Process versus Product Metrics: a Large Scale Analysis

Suvodeep Majumder, Pranav Mody|arXiv (Cornell University)|2020. 08. 21.
Software Engineering Research인용 수 4
한 줄 요약

이 연구는 700개의 GitHub 프로젝트에서 722,471개 커밋에 대한 대규모 분석을 통해 결함 예측에 대한 프로세스 메트릭스와 제품 메트릭스의 효과성을 재평가한다. 결과적으로 프로세스 메트릭스가 제품 메트릭스를 상당히 뛰어넘는 것으로 나타났다 (AUC: 95% 대비 54%, 재현율: 98% 대비 44%), 그러나 소규모 연구에서 도출된 메트릭스 중요도 순위가 대규모 환경으로 일반화되지 않음을 경고하며, 강력하고 일반화 가능한 통찰을 확보하기 위해 앙상블 방법과 대규모 분석을 권장한다.

ABSTRACT

Numerous methods can build predictive models from software data. However, what methods and conclusions should we endorse as we move from analytics in-the-small (dealing with a handful of projects) to analytics in-the-large (dealing with hundreds of projects)? To answer this question, we recheck prior small-scale results (about process versus product metrics for defect prediction and the granularity of metrics) using 722,471 commits from 700 Github projects. We find that some analytics in-the-small conclusions still hold when scaling up to analytics in-the-large. For example, like prior work, we see that process metrics are better predictors for defects than product metrics (best process/product-based learners respectively achieve recalls of 98\%/44\% and AUCs of 95\%/54\%, median values). That said, we warn that it is unwise to trust metric importance results from analytics in-the-small studies since those change dramatically when moving to analytics in-the-large. Also, when reasoning in-the-large about hundreds of projects, it is better to use predictions from multiple models (since single model predictions can become confused and exhibit a high variance).

연구 동기 및 목표

  • 소규모 소프트웨어 분석(소프트웨어 분석의 '소')에서 도출된 결론이 수백 개의 프로젝트로 확장되었을 때에도 유지되는지 평가하기 위해.
  • 대규모 오픈소스 프로젝트 코퍼스에서 프로세스 메트릭스와 제품 메트릭스의 상대적 성능을 결함 예측에 대해 평가하기 위해.
  • 소규모 연구에서 유도된 메트릭스 중요도 순위가 대규모 데이터에 적용되었을 때도 안정적인지 조사하기 위해.
  • 소프트웨어 공학 분야에서 예측 모델의 산업적 및 학술적 활용을 위한 최선의 실천 방안을 제안하기 위해, 특히 확장성과 일반화 가능성에 중점을 두고서.

제안 방법

  • 700개의 GitHub 프로젝트에서 722,471개 커밋을 수집하고 분석하여 프로세스 메트릭스와 제품 메트릭스를 모두 활용하였다.
  • 결함 예측을 위해 여러 기계학습 모델—랜덤 포레스트, 로지스틱 회귀, 서포트 벡터 머신(SVM)—을 적용하였다.
  • 모델 간 공정한 비교를 보장하기 위해 하이퍼파rameter 최적화(HPO)를 사용하여 모델을 튜닝하였다.
  • 예측 성능 평가를 위해 표준 지표인 AUC, 재현율, F1-스코어를 사용하였다.
  • 개별 메트릭스와 그 중요도 순위의 영향을 평가하기 위해 아블레이션 스터디를 수행하였다.
  • 대규모 예측에서 분산을 줄이고 안정성을 향상시키기 위해 앙상블 모델링(예: 랜덤 포레스트)을 활용하였다.

실험 결과

연구 질문

  • RQ1대규모 소프트웨어 분석에서 프로세스 메트릭스가 결함 예측에 대해 일관되게 제품 메트릭스를 능가하는가?
  • RQ2소규모 연구에서 도출된 메트릭스 중요도 순위가 대규모 데이터에 적용되었을 때 안정적인가?
  • RQ3대규모 소프트웨어 결함 예측에서 단일 모델 예측과 앙상블 예측의 실용적 함의는 무엇인가?
  • RQ4대규모에서 프로세스 메트릭스와 제품 메트릭스 간의 시스템 및 데이터 수집 과제는 어떻게 다를까?
  • RQ5소규모 연구의 결과를 대규모 소프트웨어 프로젝트로 신뢰성 있게 일반화할 수 있는가?

주요 결과

  • 프로세스 메트릭스는 결함 예측에서 중앙값 AUC 95%와 재현율 98%를 기록하여 제품 메트릭스(중앙값 AUC 54%, 재현율 44%)를 상당히 뛰어넘었다.
  • 소규모 연구에서 도출된 메트릭스 중요도 순위(예: ICSE 2013, ICSM 2010)는 대규모 데이터에선 일반화되지 않으며, 소규모 연구에서 상위 순위를 차지한 메트릭스가 대규모 분석에선 무의미해지는 경우가 많다.
  • 대규모 환경에서 단일 모델 예측은 높은 분산을 보이며 혼동의 위험이 있어, 랜덤 포레스트와 같은 앙상블 방법이 더 신뢰할 만하다.
  • 제품 메트릭스는 약 500 CPU 일 분량의 계산 자원이 필요로 하며, 프로세스 메트릭스는 이에 비해 약 10배 빠르게 계산 가능하다.
  • 이 연구는 프로세스 메트릭스가 수집 오버헤드가 낮고 언어에 종속되지 않기 때문에 산업적 활용에 더 확장 가능하고 실용적임을 확인하였다.
  • 소규모 연구의 정성적 결과는 일반화되지 않으며, 따라서 안정적이고 일반화 가능한 통찰을 도출하기 위해 대규모 프로젝트 세트에서의 정량적 복제가 필수적이다.

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

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

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

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