[논문 리뷰] Grey-box GUI Testing: Efficient Generation of Event Sequences
이 논문은 블랙박스 이벤트 플로우 그래프(EFG)와 화이트박스 이벤트 종속성 그래프(EDG)를 결합하여 효율적이고 데이터에 의존하는 이벤트 시퀀스를 생성하는 회색 상자 GUI 테스팅 접근법을 제안한다. 바이트코드 분석을 통해 이벤트 핸들러 간의 데이터 종속성을 모델링하고 이를 EFG에 매핑함으로써, 테스트 셋 크기를 줄이고도 커버리지 유지를 유지하면서 오픈소스 애플리케이션에서 두 가지 새로운 버그를 탐지한다.
Graphical user interfaces (GUIs), due to their event driven nature, present a potentially unbounded space of all possible ways to interact with software. During testing it becomes necessary to effectively sample this space. In this paper we develop algorithms that sample the GUI's input space by only generating sequences that (1) are allowed by the GUI's structure, and (2) chain together only those events that have data dependencies between their event handlers. We create a new abstraction, called an event-dependency graph (EDG) of the GUI, that captures data dependencies between event handler code. We develop a mapping between EDGs and an existing black-box user-level model of the GUI's workflow, called an event-flow graph (EFG). We have implemented automated EDG construction in a tool that analyzes the bytecode of each event handler. We evaluate our "grey-box" approach using four open-source applications and compare it with the current state-of-the-art EFG approach. Our results show that using the EDG reduces the number of test cases while still achieving at least the same coverage. Furthermore, we were able to detect 2 new bugs in the subject applications.
연구 동기 및 목표
- 불필요하거나 비가능한 이벤트 시퀀스의 수를 줄여 GUI 테스트 케이스 생성에서 조합 폭발 문제를 해결하기 위해.
- 이벤트 핸들러 간의 데이터 종속성을 테스트 생성 과정에 통합하여 테스트 효율성과 효과성을 향상시키기 위해.
- 더 정교하고 의미 있는 이벤트 시퀀스를 생성하여 이전에 알려지지 않은 버그를 탐지하기 위해.
- 더 정밀한 테스트 케이스 생성을 위해 블랙박스 GUI 모델링과 화이트박스 코드 분석 간 격차를 메우기 위해.
제안 방법
- GUI 워크플로의 구조적 제약 조건을 모델링하기 위해 런타임 관찰을 이용해 이벤트 플로우 그래프(EFG)를 구축한다.
- 애플리케이션의 바이트코드를 분석하여 이벤트 핸들러 간의 데이터 흐름을 캡처하는 이벤트 종속성 그래프(EDG)를 자동으로 구축한다.
- EDG의 가중치 엣지로 데이터 종속성을 모델링하며, 여기서 가중치는 핸들러 간 전달되는 필드 수를 나타낸다.
- EDG에서 최소최대 탐색을 통해 데이터 종속성을 가진 시퀀스를 우선순위화하는 추상 이벤트 시퀀스를 생성한다.
- 구조적 탈취 가능성을 보장하기 위해 EFG를 사용하여 EDG의 추상 시퀀스를 실행 가능한 시퀀스로 매핑한다.
- 결과로 생성된 실행 가능한 시퀀스를 테스트 케이스에 통합하여, 구조적 타당성과 데이터 종속성 체인 모두를 보장한다.
실험 결과
연구 질문
- RQ1이벤트 핸들러 간 데이터 종속성을 모델링하는 이중 접근법이 커버리지 유지와 함께 생성된 이벤트 시퀀스 수를 줄일 수 있는가?
- RQ2이벤트 종속성 그래프(EDG)와 이벤트 플로우 그래프(EFG)의 통합이 테스트 셋 효율성을 어떻게 향상시키는가?
- RQ3EDG 기반 방법이 GUI 애플리케이션에서 새로운 또는 이전에 간과된 버그를 어느 정도 탐지할 수 있는가?
- RQ4이 방법은 고도의 상위 프로시저 간 데이터 종속성을 가진 '핫스팟' 이벤트를 식별하고 우선순위를 매길 수 있는가?
주요 결과
- EDG 기반 접근법은 EFG 전용 블랙박스 접근법에 비해 생성된 이벤트 시퀀스 수를 줄여 효율성을 향상시켰다.
- 이 방법은 EFG 접근법과 동일한 최소 커버리지를 확보하면서도 더 적은 테스트 케이스를 생성하였다.
- 주어진 애플리케이션에서 두 가지 새로운 버그를 탐지하였다—Rachota에서 한 개, JabRef에서 한 개—결과적으로 결함 탐지 능력 향상을 입증하였다.
- 이 방법은 비가능하거나 의미적으로 무관한 시퀀스를 피하면서 오직 데이터 종속성에 의존하는 이벤트만 체인으로 연결하는 데에 효과적이었다.
- EDG에서의 최소최대 탐색을 통해 GUI 내에서 영향력이 큰 데이터 종속 경로를 집중적으로 탐색할 수 있었다.
- EFG와 EDG 모델링의 조합은 확장 가능하고 정밀하며 효과적인 GUI 테스트 케이스 생성을 가능하게 하였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.