Skip to main content
QUICK REVIEW

[논문 리뷰] Searching for test data with feature diversity

Robert Feldt, Simon Poulding|arXiv (Cornell University)|2017. 09. 18.
Software Testing and Debugging Techniques참고 문헌 15인용 수 6
한 줄 요약

이 논문은 특정 기능(예: 문자열 길이, 숫자 문자 수)에 맞춰 다양성이 조정된 테스트 데이터를 생성하기 위한 검색 기반 방법을 제안하며, 이중 차원 기능 공간에서 10가지 접근 방식을 평가한다. 산책 기반 검색가 가장 효율적인 성능을 보였지만, 무작위 샘플링도 경쟁력 있는 성능을 보여, 반복적인 테스트 시나리오에서는 하이브리드 또는 모델 지원 전략이 최적임을 시사한다.

ABSTRACT

There is an implicit assumption in software testing that more diverse and varied test data is needed for effective testing and to achieve different types and levels of coverage. Generic approaches based on information theory to measure and thus, implicitly, to create diverse data have also been proposed. However, if the tester is able to identify features of the test data that are important for the particular domain or context in which the testing is being performed, the use of generic diversity measures such as this may not be sufficient nor efficient for creating test inputs that show diversity in terms of these features. Here we investigate different approaches to find data that are diverse according to a specific set of features, such as length, depth of recursion etc. Even though these features will be less general than measures based on information theory, their use may provide a tester with more direct control over the type of diversity that is present in the test data. Our experiments are carried out in the context of a general test data generation framework that can generate both numerical and highly structured data. We compare random sampling for feature-diversity to different approaches based on search and find a hill climbing search to be efficient. The experiments highlight many trade-offs that needs to be taken into account when searching for diversity. We argue that recurrent test data generation motivates building statistical models that can then help to more quickly achieve feature diversity.

연구 동기 및 목표

  • 일반적인 다양성 외에 특정 입력 기능 내에서 목표로 하는 다양성에 초점을 맞춘 연구 부족을 해결하기 위해, 기능 기반 테스트 데이터 다양성에 대한 연구 부족을 해결한다.
  • 입력 크기 또는 문자 조합과 같은 사용자 정의 기능에 따라 다양성이 보장된 테스트 데이터를 생성하기 위한 다수의 검색 기반 방법을 식별하고 평가한다.
  • 다양한 검색 전략(예: 산책 기반 검색, 무작위 샘플링, 메타휴리스틱)이 정의된 기능 공간을 탐색하는 데 있어 효율성과 커버리지 측면에서 어떻게 비교되는지 분석한다.
  • 기존의 기능 공간에 기반한 통계 모델(예: 가우시안 프로세스)이 반복적인 테스트 시나리오(예: 회귀 테스트)에서 미래의 테스트 데이터 생성을 어떻게 가속화할 수 있는지 탐구한다.
  • 테스트 목표, 기능 공간 특성, 효율성 트레이드오프를 고려하여 적절한 검색 알고리즘 선택을 위한 프레임워크를 제공한다.

제안 방법

  • 다차원 기능 공간 내 특정 영역에서 다양하고 완전한 테스트 입력 세트를 생성하는 것을 목표로 하는 기능 기반 테스트 다양성(FSTD) 문제를 정의한다.
  • 무작위 샘플링, 산책 기반 검색, 적응형 무작위 테스트, 메타휴리스틱 검색(NMCS 등)을 포함한 10가지의 서로 다른 검색 및 샘플링 전략을 구현하여 기능 공간을 탐색한다.
  • 수치적 데이터와 구조적 데이터(예: 문자열)를 모두 생성할 수 있는 테스트 데이터 생성 프레임워크를 사용하며, 기능은 측정 가능한 속성(예: 길이, 숫자 개수)으로 추출한다.
  • 시간 단위 커버리지(커버리지/시간 단위)와 함께 목표 기능 공간 커버리지 기준으로 방법을 평가하며, 이중 기능 공간을 테스트 베드로 사용한다.
  • 기능 공간에서 매개변수 공간으로의 매핑을 모델링하기 위해 통계 모델링(예: 가우시안 프로세스)을 통합하여 반복적인 테스트에서 더 빠르고 정보 기반의 테스트 데이터 생성을 가능하게 한다.
  • NMCS에서 확률적 모델의 해상도가 미치는 영향을 평가하여, 더 크고 더 세밀한 모델이 모든 방법에서 검색 성능을 향상시킴을 발견한다.

실험 결과

연구 질문

  • RQ1기능 기반 테스트 데이터 생성 작업에서, 어떤 검색 전략이 시간 단위 수를 최소화하면서도 목표 기능 공간을 가장 높은 커버리지로 탐색하는가?
  • RQ2산책 기반 검색, 무작위 샘플링, 메타휴리스틱 접근 방식의 성능 특성은 다양성 커버리지 및 효율성 측면에서 어떻게 비교되는가?
  • RQ3입력 공간의 통계 모델(예: 가우시안 프로세스)이 반복적인 테스트 데이터 생성의 효율성을 어느 정도 향상시킬 수 있는가?
  • RQ4확률적 모델의 해상도 선택이 검색 기반 테스트 데이터 생성 성능에 미치는 영향은 무엇이며, 특히 NMCS에서 어떻게 나타나는가?
  • RQ5기능 기반 테스트 다양성에 적합한 검색 알고리즘을 선택할 때, 편향, 효율성, 강건성 간의 트레이드오프는 어떻게 고려되어야 하는가?

주요 결과

  • 산책 기반 검색이 목표 기능 공간의 가장 높은 커버리지와 시간 단위 당 가장 높은 효율성을 기록하여, 다른 검색 기반 방법보다 뛰어난 성능을 보였다.
  • 무작위 샘플링은 놀랍도록 잘 수행되었으며, 특히 더 큰 확률적 모델과 조합될 경우 편향이 적고 경쟁력 있는 커버리지 성능을 보였다.
  • 확률적 모델의 선택이 성능에 중대한 영향을 미쳤다: 더 크고 더 세밀한 모델은 NMCS를 포함한 모든 검색 알고리즘의 효율성을 향상시켰다.
  • 무작위 샘플링과 고급 검색 방법(예: NMCS)을 조합한 하이브리드 접근 방식은 국소 최적값에서 벗어나기 위한 잠재력이 특히 높았다.
  • 단일 알고리즘이 항상 우월한 것은 아니며, 최적의 선택은 테스트 맥락, 기능 공간의 구조, 편향과 효율성의 균형을 고려한 조건에 따라 달라진다.
  • 반복적인 테스트 데이터 생성은 기능 값에서 매개변수 공간으로의 매핑을 모델링하는 통계 모델(예: 가우시안 프로세스)의 도움을 받아 더 빠르고 정확한 다양성을 확보할 수 있다.

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

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

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

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