Skip to main content
QUICK REVIEW

[논문 리뷰] Exploring Microtask Crowdsourcing as a Means of Fault Localization

C. Adriano, André van der Hoek|arXiv (Cornell University)|2016. 12. 09.
Mobile Crowdsensing and Crowdsourcing참고 문헌 83인용 수 3
한 줄 요약

이 논문은 소프트웨어 공학에서 결함 진단을 위한 새로운 접근법으로 마이크로태스크 커뮤니티 소싱을 조사한다. 아마존 메카니컬 터크를 통해 저자들이 작업자들에게 특정 코드 조각이 결함을 포함하는지 평가하도록 분배한 마이크로태스크를 통해, 커뮤니티가 높은 정확도로 결함이 있는 코드 조각과 없는 코드 조각을 효과적으로 구분할 수 있음을 입증하였다. 다만 커버리지와 비용 측면에서 제한이 있다.

ABSTRACT

Microtask crowdsourcing is the practice of breaking down an overarching task to be performed into numerous, small, and quick microtasks that are distributed to an unknown, large set of workers. Microtask crowdsourcing has shown potential in other disciplines, but with only a handful of approaches explored to date in software engineering, its potential in our field remains unclear. In this paper, we explore how microtask crowdsourcing might serve as a means of fault localization. We particularly take a first step in assessing whether a crowd of workers can correctly locate known faults in a few lines of code (code fragments) taken from different open source projects. Through Mechanical Turk, we collected the answers of hundreds of workers to a pre-determined set of template questions applied to the code fragments, with a replication factor of twenty answers per question. Our findings show that a crowd can correctly distinguish questions that cover lines of code that contain a fault from those that do not. We also show that various filters can be applied to identify the most effective subcrowds. Our findings also presented serious limitations in terms of the proportion of lines of code selected for inspection and the cost to collect answers. We describe the design of our experiment, discuss the results, and provide an extensive analysis of different filters and their effects in terms of speed, cost, and effectiveness. We conclude with a discussion of limitations and possible future experiments toward more full-fledged fault localization on a large scale involving more complex faults.

연구 동기 및 목표

  • 마이크로태스크 커뮤니티 소싱이 소규모 코드 조각의 결함을 효과적으로 진단할 수 있는지 평가하는 것.
  • 대규모 익명 커뮤니티를 활용해 결함이 있는 코드 라인과 없는 코드 라인을 구분할 수 있는지 타당성을 평가하는 것.
  • 결함 진단의 정확도와 효율성을 향상시키기 위한 효과적인 필터링 전략을 식별하는 것.
  • 대규모 결함 진단에서 비용, 속도, 효과성 간의 상충 관계를 분석하는 것.

제안 방법

  • 저자들은 오픈소스 프로젝트에서 알려진 결함이 포함된 소규모 코드 조각을 추출하였다.
  • 주어진 코드 조각이 결함을 포함하는지 평가하기 위한 표준화된 템플릿 질문을 설계하였다.
  • 각 질문은 아마존 메카니컬 터크를 통해 20번씩 제출되어 질문당 20명의 작업자 응답을 수집하였다.
  • 코드 조각이 결함이 있다고 간주되는지 여부를 결정하기 위해 응답 간 다수결 투표를 통해 커뮤니티 공감대를 계산하였다.
  • 응답의 질과 일관성에 기반해 고성능 하위 커뮤니티를 식별하기 위해 다양한 필터링 기법을 적용하였다.
  • 속도, 비용, 정확한 결함 위치 식별 능력 측면에서 필터의 성능을 평가하였다.

실험 결과

연구 질문

  • RQ1비전문가 작업자로 구성된 커뮤니티가 마이크로태스크를 통해 소규모 코드 조각이 결함을 포함하는지 정확하게 식별할 수 있는가?
  • RQ2다양한 필터링 전략은 마이크로태스크를 통한 결함 진단의 정확도와 효율성을 얼마나 향상시키는가?
  • RQ3마이크로태스크 커뮤니티 소싱을 통해 결함 진단을 수행할 때 비용, 속도, 정확도 간의 상충 관계는 어떠한가?
  • RQ4작업자들이 결함이 있는 코드 조각을 비결함이 있는 것과 비교해 얼마나 정확하게 식별하는가?
  • RQ5작업자 응답의 공감대 기반 집계 방식이 결함이 있는지 없는지 코드 조각을 신뢰성 있게 구분할 수 있는가?

주요 결과

  • 커뮤니티는 높은 정확도로 결함이 있는 코드 조각과 없는 코드 조각을 구분하였으며, 공감대 응답이 상당 수준의 경우에서 정확하게 결함을 식별하였다.
  • 응답 일관성과 신뢰도에 기반해 작업자를 필터링함으로써 비용을 크게 증가시키지 않으면서도 결함 진단 정확도를 향상시킬 수 있었다.
  • 결함 식별 정확도는 높았지만, 검토 대상으로 선정된 코드 라인의 비율은 매우 낮아 커버리지가 제한됨을 시사했다.
  • 질문당 20개의 응답이 필요하기 때문에 비용이 높게 유지되어 확장성 문제를 드러냈다.
  • 성능 지표에 기반해 필터링된 하위 커뮤니티는 효과성이 향상되었으며, 이는 품질 제어 메커니즘이 결과를 향상시킬 수 있음을 시사한다.
  • 이 연구는 마이크로태스크 커뮤니티 소싱이 결함 진단에 실현 가능하지만, 현재는 비용과 낮은 코드 커버리지로 인해 실용적 구현에서 제한이 있음을 드러냈다.

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

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

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

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