검색 상세

입력도메인 변환을 이용한 적응적 랜덤 테스팅 성능 개선 및 확장

Enhancing the Adaptive Random Testing through Input Domain Transformation

초록/요약

적응적 랜덤 테스팅(Adaptive Random Testing, ART)은 순수 랜덤 테스팅의 효율성을 개선하기 위해 제안된 방법으로 효과적인 테스트 케이스의 선택을 통해 보다 적은 수의 테스트 케이스로 소프트웨어 내에 존재하는 오류 영역을 찾는 것을 목적으로 한다. 초기의 ART는 테스트 케이스 간의 거리를 이용하는 방법을 이용하여 우수한 오류 영역 검출 성능을 이끌어 냈으나, 거리 연산에 요구되는 많은 연산량을 단점으로 가진다. 따라서 이를 보완하기 위한 입력 도메인 분할 기반의 ART가 제안되었고, 이 역시 우수한 오류 영역 탐지 성능을 보인다. 하지만 거리 기반 방식과 입력 도메인 분할 방식 모두에서는 선택된 테스트 케이스가 입력 도메인 내에서 고르게 분포되지 못하고 일부 특정영역에 높은 비율로 존재하는 문제를 가지고 있고, 이는 성능 향상의 제한 요소로 작용한다. 이러한 제한 요소는 높은 차원 수를 가지는 입력 도메인에 대한 ART의 적용 가능성에 영향을 주기 때문에 일정 차원 수준 이상을 가진 입력 도메인에 대해서는 ART를 적용할 수 없도록 하는 한계 또한 유발한다. 또한 기존의 ART는 테스트 대상 소프트웨어를 하나의 유닛이나 독립된 시스템으로 가정하는 테스트 케이스 선택 정책이기 때문에 테스트 영역이 유닛 테스팅으로 제한되어 다양한 형태의 테스트에 적용하지 못하는 확장성의 한계가 있다. 따라서 본 논문에서는 우선 기존 ART 기반 접근 방법에서 보이는 테스트 케이스 분포 문제를 다양한 새 접근 방법의 적용을 통해 완화를 시도하고, 이를 바탕으로 ART의 오류 검출 효율 개선을 시도한다. 제안된 접근 방법들은 실험을 통해 성능을 분석한다. 실험 결과 제안된 방법들 가운데 오류 검출 효율을 가장 많이 증가시키는 것은 입력 도메인의 가상 확장을 이용한 방법으로 실험이 수행된 모든 환경에서 랜덤 테스트의 약 50~60% 수준의 적은 테스트 케이스 수로 오류 영역을 검출한다. 한편, 각 접근 방법에 요구되는 추가 부하에 따른 트레이드오프를 고려했을 때는 입력 도메인의 가상 배치를 이용한 방법이 가장 좋은 결과를 보이는데, 이는 입력 도메인 반복 분할 기법에 비해 2차원 입력 도메인에서 약 3%, 8차원 입력 도메인에서 약 200% 수준의 성능 향상이 이루어졌음을 보여, 높은 차원에서 느린 테스트 케이스 선택 속도를 보이는 입력 도메인 가상 확장 방법의 대안 정책으로서의 적용 가능성을 갖는다. 본 논문에서는 기존의 ART가 가진 테스트 확장성 한계의 극복을 위해 ART를 통합 테스트(integration test)에 적용하기 위한 방법 또한 제시한다. 이를 위해 ART를 통합 테스트에 적용했을 때 발생되는 문제점을 먼저 지적하고, 이를 해결하기 위한 해법을 제안한다. 제안된 방법에서는 가정된 통합 테스트 환경에서 ART가 생성하는 고른 테스트 케이스 분포를 자신에게 주어진 행동 양식에 따라 왜곡시키는 소프트웨어의 출력 분포를 사전 테스팅 절차를 통해 예측하고, 이를 바탕으로 ART가 테스트 케이스 분포를 파티션 크기 조절을 통해 테스트 이전 단계에서 조절하도록 관리한다. 이에 대한 실험에서는 제안된 방법을 사용하는 경우, ART를 통합 테스트에 적용했을 때 발생되는 문제점이 완화될 수 있으며, 이에 따라 유닛 테스트에 대해 ART를 적용한 경우와 유사한 성능을 통합 테스트 시에도 얻어낼 수 있음을 확인한다.

more

목차

감사의 글 i
논문 요약 iv
차 례 vi
표 차 례 ix
그림 차례 xi
수식 차례 xiii
약 어 표 xiv

1. 서 론 1
1.1 소프트웨어 테스팅 1
1.2 랜덤 테스팅 및 응용 4
1.2.1 랜덤 테스팅 4
1.2.2 퍼징 5
1.3 오류의 특성 7

2. 관련 연구 9
2.1 적응적 랜덤 테스팅 9
2.1.1 정 의 9
2.1.2 ART 개요 12
2.2 거리기반 ART 13
2.3 분할기반 ART 18
2.4 반복 분할을 통한 ART의 개선 정책 22

3. 유닛 테스팅을 위한 ART 25
3.1 입력 도메인의 가상 확장을 이용한 분할기반 ART 25
3.1.1 최초 분할 수치 변화에 따른 테스트 케이스 분포 29
3.1.2 노름(Norm)을 이용한 제한 영역 설정 30
3.1.3 수행 알고리즘 34
3.1.4 성능 평가 36
3.1.5 입력 도메인 확장 정책 평가 47
3.2 테스트 케이스 분포 분석 기반 ART 48
3.2.1 IP-ART 테스트 케이스 분포 분석 48
3.2.2 ED-IP-ART의 테스트 케이스 분포 분석 51
3.2.3 테스트 케이스 선택 제어 정책 52
3.2.4 접근 방법별 비교 58
3.2.5 성능 평가 61
3.2.6 테스트 케이스 분포 제어 정책 평가 71
3.3 테스트 케이스 선택제한영역의 관리를 이용한 ART 73
3.3.1 확장된 제한 영역 관리 73
3.3.2 입력 도메인의 가상 배치 - 입력 도메인 타일링 76
3.3.3 성능 평가 78
3.3.4 실험 결과 80
3.3.5 제한 영역 관리 방법의 평가 89
3.4 유닛 테스팅을 위한 ART 평가 90

4. 통합 테스팅을 위한 ART 91
4.1 ART의 통합 테스트 적용 시 고려사항 91
4.2 분포기반 ART 96
4.2.1 분포기반 ART 개요 96
4.2.2 성능 평가 99
4.2.3 출력 분포 기반 ART 평가 103
4.3 분포 예측기반 ART 104
4.3.1 고려사항 104
4.3.2 분포 예측을 통한 ART 기반 통합 테스트 정책 104
4.3.3 성능 평가 112
4.3.4 출력 분포 예측기반 ART 평가 116

5. 결 론 117

참 고 문 헌 119
ABSTRACT 126

more