Skip to main content
QUICK REVIEW

[논문 리뷰] Neural Network Embeddings for Test Case Prioritization

João Lousada, Miguel Ribeiro|arXiv (Cornell University)|2020. 12. 18.
Software Testing and Debugging Techniques참고 문헌 16인용 수 6
한 줄 요약

이 논문은 이전 코드 변경 사항과 테스트 전이 데이터로부터 파일-테스트 케이스 관계를 학습함으로써 테스트 케이스를 우선순위화하는 딥러닝 프레임워크인 NNE-TCP를 제안한다. 이는 장애 탐지 속도에서 랜덤 및 전이 기반 방법보다 뛰어나며, 유사한 파일과 테스트 케이스의 시각적 군집화를 가능하게 하여 중복 제거를 지원한다.

ABSTRACT

In modern software engineering, Continuous Integration (CI) has become an indispensable step towards systematically managing the life cycles of software development. Large companies struggle with keeping the pipeline updated and operational, in useful time, due to the large amount of changes and addition of features, that build on top of each other and have several developers, working on different platforms. Associated with such software changes, there is always a strong component of Testing. As teams and projects grow, exhaustive testing quickly becomes inhibitive, becoming adamant to select the most relevant test cases earlier, without compromising software quality. We have developed a new tool called Neural Network Embeeding for Test Case Prioritization (NNE-TCP) is a novel Machine-Learning (ML) framework that analyses which files were modified when there was a test status transition and learns relationships between these files and tests by mapping them into multidimensional vectors and grouping them by similarity. When new changes are made, tests that are more likely to be linked to the files modified are prioritized, reducing the resources needed to find newly introduced faults. Furthermore, NNE-TCP enables entity visualization in low-dimensional space, allowing for other manners of grouping files and tests by similarity and to reduce redundancies. By applying NNE-TCP, we show for the first time that the connection between modified files and tests is relevant and competitive relative to other traditional methods.

연구 동기 및 목표

  • 지속적 통합 파이프라인에서 광범위한 회귀 테스팅으로 인한 느린 피드백 문제를 해결하기 위해.
  • 이력 데이터로부터 파일-테스트 케이스 관계를 학습하여 테스트 케이스 우선순위 지정을 자동화하기 위해.
  • 코드 변경 후 가장 먼저 실패할 가능성이 높은 테스트를 예측함으로써 피드백 시간과 자원 사용량을 줄이기 위해.
  • 의미적 유사성 기반으로 파일과 테스트를 시각적으로 군집화하여 테스트 최소화를 가능하게 하기 위해.
  • 수동 또는 히ュ리스틱 기반 테스트 우선순위 지정의 대안으로 데이터 기반이고 확장 가능한 방법을 수립하기 위해.

제안 방법

  • 프레임워크는 이력 커밋 및 테스트 전이 데이터를 기반으로 파일과 테스트 케이스를 공유된 저차원 벡터 공간에 매핑하기 위해 신경망 임베딩을 사용한다.
  • 버전 관리 및 테스트 로그에서 수정된 파일과 테스트 케이스 상태 전이(실패 또는 진행) 간의 관계를 학습한다.
  • 신규 코드 커밋 후 파일 변경 사항을 기반으로 가장 관련성이 높은 테스트를 예측할 수 있도록 모델을 훈련한다.
  • t-SNE를 사용하여 임베딩 벡터를 2차원 공간에 시각화하여 구조적 패턴과 유사한 파일/테스트를 드러낸다.
  • 유사한 테스트 군집을 식별함으로써 테스트 케이스 최소화를 지원한다.
  • 주요 평가 지표로 APTD(Average Percentage of Test Cases Detected)를 사용하여 프레임워크를 평가한다.

실험 결과

연구 질문

  • RQ1신경망 임베딩은 이력 소프트웨어 변경 데이터로부터 파일-테스트 케이스 관계를 효과적으로 학습할 수 있는가?
  • RQ2NNE-TCP의 성능은 전통적인 테스트 케이스 우선순위 지정 방법인 랜덤 및 전이 기반 방법과 비교해 어떻게 되는가?
  • RQ3학습된 임베딩은 코드와 테스트베이스의 의미적 구조적 패턴을 어떻게 드러내는가?
  • RQ4임베딩 기반 군집화로 테스트 중복을 어느 정도 줄일 수 있으며, 커버리지 손실 없이 가능한가?
  • RQ5모델은 다양한 소프트웨어 프로젝트와 CI 환경 간에 일반화 가능한가?

주요 결과

  • NNE-TCP는 APTD 측면에서 랜덤 및 전이 기반 우선순위 지정 방법보다 뚜렷이 뛰어나며, 이는 더 빠른 장애 탐지 가능성을 시사한다.
  • 모델은 임베딩 공간에서 유사한 파일과 테스트 케이스를 성공적으로 군집화하여 잠재적 중복성을 드러낸다.
  • 시각화 결과에서 폴더 구조와 의미적 유사성 간 직접 상관관계가 없음을 확인하여, 임베딩 기반 군집화가 파일 시스템 구조보다 더 의미 있는 결과를 제공함을 시사한다.
  • 프레임워크는 커버리지 손실 없이 테스트 케이스 군집화를 효과적으로 가능하게 하여 테스트 세트 최소화에 기여한다.
  • 강력한 성능에도 불구하고 NNE-TCP는 더 복잡한 히스토리 기반 방법을 넘어서지 못했으며, 기능 강화를 통해 향후 개선 여지가 있음을 시사한다.
  • 딥러닝을 통한 파일-테스트 링크 학습이 실현 가능하고 경쟁력 있는 방법임을 입증하였으며, 향후 연구의 새로운 기준이 될 수 있음을 보여준다.

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

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

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

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