본문 바로가기 주메뉴 바로가기
국회도서관 홈으로 정보검색 소장정보 검색

결과 내 검색

동의어 포함

목차보기

Title Page 2

Contents 5

Abstract 8

Chapter 1. INTRODUCTION 10

Chapter 2. BACKGROUND 13

1. Automated GUI Testing 13

2. State Abstraction 14

3. Motivation 16

Chapter 3. Methodology 19

1. Overview 19

2. Dynamic GUI Abstractor 20

A. Widget Classifier 20

B. GUI Abstractor 22

3. State Explosion Monitor 28

A. Skeleton State Manager 30

B. Explosion Monitor 30

C. Explosion Cause Analyzer 31

Chapter 4. Experiments 32

1. Experimental Setup 32

A. Benchmarks 32

B. Baselines 33

C. Devices 34

D. Others 34

2. Effectiveness of GBALANCE 35

A. Covered Activity 35

B. Form-Factor Adaption 37

3. Efficacy of Each State 37

4. State Balance 41

5. Discussions 41

6. Threats to Validity 43

Chapter 5. Related Works 44

1. State Abstraction 44

2. Exploration Strategy 46

Chapter 6. Conclusion 48

References 49

논문요약 52

List of Tables 6

Table 1. Covered activities by abstraction method 16

Table 2. Classes by widget type 21

Table 3. State abstraction functions for independent widgets 25

Table 4. 6 benchmark applications 33

Table 5. Results of covered activities 36

Table 6. Ablation study of GBALANCE with Droidbot 38

Table 7. Ablation study of GBALANCE with Humanoid 39

Table 8. Comparison of states and transitions generated... 42

List of Figures 7

Figure 1. General flow of automated GUI testing 13

Figure 2. Example of Android GUI tree 15

Figure 3. Differences in widget distinguishability within the same application 17

Figure 4. Overview of GBALANCE 19

Figure 5. Examples of abstraction for widgets leading to state explosion 24

Figure 6. Comparison of widget abstraction methodologies 26

Figure 7. Example of independent widget abstraction and state generator 28

Figure 8. Example of the state explosion monitor's operation flow 29

Figure 9. Comparison of unique states 40

초록보기

 GUI(그래픽 사용자 인터페이스) 자동화 테스트는 제한된 시간 내에 애플리케이션의 다양한 액티비티를 최대한 탐색함으로써, 잠재적인 오류를 효과적으로 검출하는 것을 목표로 하는 대표적인 테스팅 기법이다. 이러한 GUI 자동화 테스트의 성능은 GUI 상태에 대한 추상화 방식에 크게 좌우된다. 기존 연구들은 다양한 방법의 상태 추상화 방법을 제안하였지만, 그 기법들의 성능은 여전히 불안정했다. 이는 기존 연구에서 제안된 추상화 방식들이 지나치게 세밀하여 상태 폭발(state explosion)을 빈번히 유발하거나, 반대로 과도하게 단순화되어 상태 간의 구분을 효과적으로 하지 못한 데에 기인한다.

본 연구에서는 이러한 한계를 극복하고자, 상태 폭발과 추상화 수준 간의 균형을 고려한 GUI 상태 추상화 기법인 GBALANCE를 제안한다. GBALANCE는 다음의 두 가지 주요 단계로 구성된다. 첫째, Dynamic GUI Abstractor는 상태 폭발을 유발하는 주요 위젯을 식별한 뒤, 각 위젯의 특성에 따라 적절한 추상화 전략을 위젯 단위로 동적으로 적용한다. 둘째, State Explosion Monitor는 테스트 도중 발생하는 상태 폭발을 실시간으로 감지하고, 그 원인이 되는 위젯 속성을 분석하여 상태 정의에서 해당 속성을 제거함으로써, 불필요한 상태 재생성을 효과적으로 방지한다.

제안한 기법의 효과를 검증하기 위하여, 본 연구는 GBALANCE를 잘 알려진 GUI 자동화 테스트 도구 Droidbot과 Humanoid에 적용하였고, 복잡도가 높은 6개의 상용 애플리케이션과 두 가지 디바이스 폼팩터(bar-type 및 foldable-type) 환경에서 실험을 수행하였다. 그 결과, 제안한 기법을 기존 도구에 적용하였을 때, 적용하지 않았을 때 보다 평균 42.17% 더 많은 액티비티를 탐색하는 데 성공했다.