Skip to main content
QUICK REVIEW

[논문 리뷰] Automatic Generation of Acceptance Test Cases from Use Case Specifications: an NLP-based Approach

Chunhui Wang, Fabrizio Pastore|arXiv (Cornell University)|2019. 07. 19.
Software Engineering Research참고 문헌 102인용 수 12
한 줄 요약

이 논문은 자연어 사용 사양과 도메인 모델을 기반으로 의미 역할 레이블링과 제약 조건 마이닝을 사용하여 실행 가능한 시스템 수준의 수락 테스트 케이스를 자동으로 생성하는 NLP 기반 접근법인 UMTG를 제시한다. 두 개의 산업 사례 연구에서 UMTG는 사용 사양 단계를 형식적 제약 조건으로 95%의 정확도로 변환하였고, 이전에 간과된 핵심 테스트 시나리오를 발견하였다.

ABSTRACT

Acceptance testing is a validation activity performed to ensure the conformance of software systems with respect to their functional requirements. In safety critical systems, it plays a crucial role since it is enforced by software standards. Test engineers need to identify all the representative test execution scenarios from requirements, determine the runtime conditions that trigger these scenarios, and finally provide the input data that satisfy these conditions. Given that requirements specifications are typically large and often provided in natural language, the generation of acceptance test cases tends to be expensive and error-prone. In this paper, we present UMTG, an approach that supports the generation of executable, system-level, acceptance test cases from requirements specifications in natural language, with the goal of reducing the manual effort required to generate test cases and ensuring requirements coverage. More specifically, UMTG automates the generation of acceptance test cases based on use case specifications and a domain model for the system under test, which are commonly produced in many development environments. Unlike existing approaches, it does not impose strong restrictions on the expressiveness of use case specifications. We rely on recent advances in natural language processing to automatically identify test scenarios and to generate formal constraints that capture conditions triggering the execution of the scenarios, thus enabling the generation of test data. In two industrial case studies, UMTG automatically and correctly translated 95% of the use case specification steps into formal constraints required for test data generation; furthermore, it generated test cases that exercise not only all the test scenarios manually implemented by experts, but also some critical scenarios not previously considered.

연구 동기 및 목표

  • 안전이 중요한 시스템의 수락 테스팅에서 수동 작업을 줄이고 커버리지 수준을 향상시키기 위해 자연어 요구사항에서 테스트 케이스 생성을 자동화하는 것.
  • 통제된 자연어, 형식적 모델, 또는 광범위한 수동 모델링을 필요로 하는 기존 접근법의 한계를 해결하는 것.
  • 추가적인 동작 모델링 없이도 기존 개발 자산(예: 사용 사양 사양 및 클래스 다이어그램)을 활용하여 실행 가능한 테스트 케이스를 자동 생성할 수 있도록 하는 것.
  • 자연어 단계에서 형식적 제약 조건을 마이닝하여 테스트 커버리지의 추적 가능성과 완전성을 확보하는 것.

제안 방법

  • 사용 사양 단계를 분석하고 테스트 시나리오 식별을 위해 술어-논항 구조를 추출하기 위해 의미 역할 레이블링(SRL)을 사용한다.
  • 자연어 조건을 형식적 제약 조건으로 변환하여 테스트 데이터 생성을 위한 기법으로 제약 조건 마이닝 기술을 적용한다.
  • 실행 경로(루프 및 분기 포함)를 나타내는 방향 그래프로 사용 사양 테스트 모델(UCTM)을 구축한다.
  • 테스트 시나리오 생성 중 서브타입 및 조건 커버리지를 최대화하기 위해 커버리지 기반 알고리즘을 활용한다.
  • 형식화된 제약 조건에 기반하여 실행 가능한 테스트 입력을 생성하기 위해 Alloy 제약 조건 솔버를 통합한다.
  • 사용 사양 요소의 의미적 해석을 검증하고 풍부하게 하기 위해 도메인 모델(클래스 다이어그램)을 사용한다.

실험 결과

연구 질문

  • RQ1자연어 사용 사양 사양에서 실행 가능한 테스트 시나리오를 효과적으로 추출하기 위해 NLP 기법을 사용할 수 있는가?
  • RQ2자연어 요구사항에서 형식적 제약 조건을 자동으로 유도할 수 있는 정도는 어느 정도이며, 이는 테스트 데이터 생성을 지원하는 데 기여하는가?
  • RQ3통제된 자연어나 추가 모델링 없이도 제안된 접근법이 포괄적인 테스트 커버리지를 달성하는 데 얼마나 효과적인가?
  • RQ4산업 환경에서 수동 테스트 설계 시 간과된 핵심 테스트 시나리오를 이 접근법이 발견할 수 있는가?

주요 결과

  • UMTG는 두 개의 산업 사례 연구에서 사용 사양 사양 단계의 95%를 테스트 데이터 생성에 필요한 형식적 제약 조건으로 성공적으로 변환하였다.
  • 이 방법은 전문가가 수동으로 구현한 모든 시나리오뿐만 아니라 이전에 간과된 핵심 시나리오도 커버하는 테스트 케이스를 생성하였다.
  • 시나리오 생성에 대한 이론적 최악의 시간 복잡도가 O(N³)일 수 있지만, 실제 사용 사례에서 조건 단계와 리프 노드의 수가 적어 실용적인 성능이 확보되었다.
  • 루프로 이어지는 조건 단계의 수는 평균적으로 총 단계의 18%에 불과했고, 리프 노드는 총 단계의 8%에 그쳐 계산 오버헤드가 적었다.
  • 생성된 가장 큰 UCTM는 154개의 노드를 포함하여 이론적 복잡도가 높더라도 실질적인 시스템은 여전이 관리 가능함을 보여주었다.
  • 이 접근법은 실제 산업 시스템(BodySense 및 HOD)에서의 적용 가능성을 입증하여 NLP 기반 테스트 생성이 산업 환경에서 실현 가능하다는 것을 보여주었다.

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

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

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

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