본 논문에서는 윈도우 환경에서 블랙박스 테스트 기법을 사용하여 GUI 기반 테스트를 자동화하는 테스트 자동화 프로그램 도구를 제안 및 개발한다. 제안된 테스트 자동화 프로그램 도구의 주요한 특징은 다음과 같다. 첫째, 에러 상태를 이미지로써 지정하고, 테스트 스텝마다 화면을 캡처하여 이미지 유사도 비교를 통해 에러 메시지 검출 여부를 확인한다. 둘째, 실행 중 이벤트 대기시간이나 각 테스트 스텝 간 좌표 증가 값 등 여러 옵션 설정을 지원한다. 이러한 블랙박스 테스트 자동화 연구는 안드로이드나 웹 등의 환경에서는 많았지만 윈도우 환경에서는 그렇지 않았다. 제안된 시스템의 성능평가 결과 제안된 시스템은 이미지 비교 모듈로써 GUI 테스트 자동화를 수행하고, 프로세스 상태 확인과 에러 이미지 검출 여부를 확인함으로써 테스트를 정상적으로 수행함을 확인하였다.
본 논문에서는 윈도우 환경에서 블랙박스 테스트 기법을 사용하여 GUI 기반 테스트를 자동화하는 테스트 자동화 프로그램 도구를 제안 및 개발한다. 제안된 테스트 자동화 프로그램 도구의 주요한 특징은 다음과 같다. 첫째, 에러 상태를 이미지로써 지정하고, 테스트 스텝마다 화면을 캡처하여 이미지 유사도 비교를 통해 에러 메시지 검출 여부를 확인한다. 둘째, 실행 중 이벤트 대기시간이나 각 테스트 스텝 간 좌표 증가 값 등 여러 옵션 설정을 지원한다. 이러한 블랙박스 테스트 자동화 연구는 안드로이드나 웹 등의 환경에서는 많았지만 윈도우 환경에서는 그렇지 않았다. 제안된 시스템의 성능평가 결과 제안된 시스템은 이미지 비교 모듈로써 GUI 테스트 자동화를 수행하고, 프로세스 상태 확인과 에러 이미지 검출 여부를 확인함으로써 테스트를 정상적으로 수행함을 확인하였다.
In this paper, we propose and develop a test automation program tool that automates GUI based testing using black box testing technique in Windows environment. The main features of the proposed test automation program tool are as follows. First, an error condition is designated as an image, a screen...
In this paper, we propose and develop a test automation program tool that automates GUI based testing using black box testing technique in Windows environment. The main features of the proposed test automation program tool are as follows. First, an error condition is designated as an image, a screen is captured for each test step, and an error message is detected through comparison of image similarity. Second, the proposed system supports various setting options such as event waiting time during execution and coordinate increment value between each test step. Such black box test automation research was common in environments such as Android and Web, but not in Windows environment. The results of performance evaluation show that the proposed system performs GUI test automation as an image comparison module and confirms that the test is performed normally by confirming process status and error image detection.
In this paper, we propose and develop a test automation program tool that automates GUI based testing using black box testing technique in Windows environment. The main features of the proposed test automation program tool are as follows. First, an error condition is designated as an image, a screen is captured for each test step, and an error message is detected through comparison of image similarity. Second, the proposed system supports various setting options such as event waiting time during execution and coordinate increment value between each test step. Such black box test automation research was common in environments such as Android and Web, but not in Windows environment. The results of performance evaluation show that the proposed system performs GUI test automation as an image comparison module and confirms that the test is performed normally by confirming process status and error image detection.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
특히 솔루션 개발 시에 기능이 계속하여 추가되는 경우라면 모듈의 통합에 따른 치명적인 사이드 이펙트를 모두 검출하기는 불가능할 것이다. 그렇기 때문에 본 연구는 단순하고 수많은 입력으로 예기치 않은 오류가 발생하여 프로그램이 종료되는 오류나 예상치 못한 부분에서 예상했던 오류가 발생하는 경우를 찾아내는 자동화 도구를 연구 및 개발하는 것을 목표로 한다.
하지만 기존에 있던 입력 데이터와 관련한 블랙박스 테스트 케이스 설계 기법(경계값 또는 상태 등에 기반을 둔 설계 기법)에 따라 정통적인 테스트 케이스 목록을 작성하지는 않는다. 따라서 테스트 커버리지를 판단하기가 모호했다. 두 번째로, 오류 발생 상황을 예측할 수 없다고 가정했을 때, 오류 검출을 위한 목표 이미지를 정의하기가 어려웠다.
테스트 자동화에 중점을 둔다면 현재 화면 및 프로세스 상태에 따라 테스트 방향을 자동으로 바꾸는 기능이 필요해질 것이다. 또한, 다양한 목적 프로그램을 대상으로 실용성에 대해서 평가하고자 한다.
본 연구에서는 윈도우 환경에서 블랙박스 테스트 기법을 사용하여 GUI 관점으로 테스트를 자동화하는 테스트 자동화 도구를 연구 및 개발하고자 한다. GUI 관점에서 입력은 키보드 입력, 마우스를 이용한 클릭, 드래그 등으로 발생할 수 있고 이에 대한 출력은 화면으로 나타날 것이다.
이 실험의 기대 결과는 원본 이미지의 부분 이미지나 훼손된 이미지에 대하여 2.0E8보다 작은 값을 반환하는지 확인하는 것이다. 실험 결과 모든 변수에 대하여 기대에 충족하는 결과를 얻었고, 정상적으로 목표 이미지를 검출했다는 의미로 결과를 true와 false로 표 1에 표기하였다.
이 연구는 GUI 상태를 정밀하게 구분하고 유효한 테스트 모델을 생성하여 안드로이드 GUI 테스트의 성능 향상 가능성을 제시한다. 본 연구에서도 GUI 상태를 저장하지만, 결과 분석용으로 사용하며, 모델 생성을 하지 않는 점이 차이가 있다.
제안 방법
윈도우 이벤트를 한 스텝으로 놓고 이를 조합하여 테스트 케이스를 생성했던 것이다. 메뉴, 텍스트, 버튼, 윈도우 네 가지 구성으로 GUI를 분류한 점을 참고하였다.
이미지 비교는 C언어 기반의 오픈소스 OpenCV를 이용하여 jpg 이미지의 ‘Template Matching’으로써 구현하였다.
제안된 시스템의 프로그램은 Step 4(테스트 매크로 실행) 도중에 설정된 좌표 또는 횟수에 따라 마우스를 눌렀다 떼는 동작을 반복하며, 이 한 번의 테스트 스텝마다 전체 화면을 캡처하여 목표 이미지와 비교한다. 이미지 비교는 C언어 기반의 오픈소스 OpenCV를 이용하여 jpg 이미지의 ‘Template Matching’으로써 구현하였다.
성능/효과
따라서 테스트 커버리지를 판단하기가 모호했다. 두 번째로, 오류 발생 상황을 예측할 수 없다고 가정했을 때, 오류 검출을 위한 목표 이미지를 정의하기가 어려웠다.
제안된 시스템을 퍼징이 아닌 블랙박스 테스트 도구로 이용한다면 디버그 도구로 활용할 수도 있다. 어떤 종류의 오류 상황에 특정 메세지 다이얼로그가 출력되도록 디버그를 위한 경고를 지정한다면 제안된 시스템은 이 경고 상태를 찾아낼 수 있으므로 예상할 수 있지만 스텝을 알 수 없는 오류를 검출할 수 있다.
퍼징이란 프로그램에 유효한 예상치 않은, 또는 무작위 데이터를 입력하여 예상하지 못한 오류를 발생시키는 것이다[5]. 테스트 케이스를 생성하지 않는 대신에 제안된 시스템을 이용하여 입력 데이터를 무작위로 발생시키면 예상하지 못한 오류를 확인할 수도 있다. 만약 목표 이미지를 프로그램 응답 없음 오류 등의 이미지로 지정한다면 이 퍼징이라는 의미가 더욱 뚜렷해질 것이다.
템플릿 매칭 임계값: 성능 평가에 앞서 여러 가지 목적 이미지를 사용하여 구현된 시스템을 테스트한 결과 템플릿 매칭의 임계값은 2.0E8에서 명확하게 구분되었다. 이 경계값은 method CV_TM_SQDIFF(픽셀 차의 제곱의 합)[4] 기준으로 구현한 기준이다.
후속연구
제안된 시스템을 퍼징이 아닌 블랙박스 테스트 도구로 이용한다면 디버그 도구로 활용할 수도 있다. 어떤 종류의 오류 상황에 특정 메세지 다이얼로그가 출력되도록 디버그를 위한 경고를 지정한다면 제안된 시스템은 이 경고 상태를 찾아낼 수 있으므로 예상할 수 있지만 스텝을 알 수 없는 오류를 검출할 수 있다.
소프트웨어에 숨어있는 결함을 발견하기 위해서 소프트웨어를 작동시키는 행위는 시간과 노력이 매우 많이 필요하다. 좋은 테스트 기법을 적용한다면 적은 노력으로 많은 오류를 찾아낼 수 있겠지만, 모든 경우를 테스트하여 오류가 전혀 없다는 것을 확인하기 위해서는 결국 기하급수적인 시간과 비용이 들어갈 것이다. 그렇기 때문에 단순하거나 경우의 수가 많은 테스트 케이스에 대해서는 테스트 자동화 도구가 필요하다.
이 단순한 입력을 이용한 테스트 케이스는 무수히 많을 수밖에 없기 때문에 자동화 도구가 꼭 필요하다. 특히 솔루션 개발 시에 기능이 계속하여 추가되는 경우라면 모듈의 통합에 따른 치명적인 사이드 이펙트를 모두 검출하기는 불가능할 것이다. 그렇기 때문에 본 연구는 단순하고 수많은 입력으로 예기치 않은 오류가 발생하여 프로그램이 종료되는 오류나 예상치 못한 부분에서 예상했던 오류가 발생하는 경우를 찾아내는 자동화 도구를 연구 및 개발하는 것을 목표로 한다.
향후 연구 계획으로는, GUI 이벤트 발생 순서에 대해 조합이 무수히 많으므로 효율적인 알고리즘 추가 개발을 통해 테스트 수행 능력을 향상 시킬 것이다. 테스트 자동화에 중점을 둔다면 현재 화면 및 프로세스 상태에 따라 테스트 방향을 자동으로 바꾸는 기능이 필요해질 것이다.
질의응답
핵심어
질문
논문에서 추출한 답변
모듈의 통합에 따른 치명적인 사이드 이펙트를 모두 검출하기 불가능한 경우는 무엇인가?
이 단순한 입력을 이용한 테스트 케이스는 무수히 많을 수밖에 없기 때문에 자동화 도구가 꼭 필요하다. 특히 솔루션 개발 시에 기능이 계속하여 추가되는 경우라면 모듈의 통합에 따른 치명적인 사이드 이펙트를 모두 검출하기는 불가능할 것이다. 그렇기 때문에 본 연구는 단순하고 수많은 입력으로 예기치 않은 오류가 발생하여 프로그램이 종료되는 오류나 예상치 못한 부분에서 예상했던 오류가 발생하는 경우를 찾아내는 자동화 도구를 연구 및 개발하는 것을 목표로 한다.
소프트웨어 테스트란 무엇인가?
소프트웨어 테스트란, 소프트웨어가 요구사항에 맞게 동작하여 입력에 대한 적절한 결과를 출력하는지 검사하는, 개발된 소프트웨어의 오류를 검출하는 과정이다. 이는 소프트웨어가 아무런 오류 없이 완전하다는 것을 증명하기 위한 것이 아니라 숨어있는 결함을 찾기 위한 과정이다.
블랙박스 테스트가 화이트박스 테스트와 다른점은 무엇인가?
특히 블랙박스 테스트는 프로그램의 구조를 고려하지 않고 요구사항이나 명세를 기반으로 테스트하는 방법이다. 화이트박스 테스트와는 반대로 프로그램의 상세한 동작을 검사하는 것이 아니라 입력한 값에 대한 출력이 기대한 결과인지 아닌지를 검사하는 방법이므로, 소프트웨어의 기능이 정상적으로 동작하는지 검사하는 방법이다[1-13].
참고문헌 (13)
Jemin Lee, Hyungshin Kim, "A Black-Box based Testing for GUI Bug Detection," Journal of KIISE, 41(12), pp.1013-1017, December 2014.
JungGyuew Lee, HyeonSoo Kim, SeunGhak Kuk, DaeWan Cho, "Record-Playback based Automatic test case generation for GUI test," Proc. of KCC 2007, vol.34, no.1(B), pp.96-100, June 2007.
Youngmin Baek, Gwangui Hong, Cheonghyun Lee, Doo-Hwan Bae, "A GUI State Comparison Technique for Effective Model-based Android GUI Testing," Journal of KIISE, JOK, vol.42, no.11, pp. 1386-1396, 2015.
OpenCV,"Template Matching," https://docs.opencv.org/3.0-last-rst/doc/tutorials/imgproc/hist ograms/template_matching/template_matching.html, December 2014.
Wikipedia, "Fuzzing," https://ko.wikipedia.org/wiki/%ED%8D%BC%EC%A7%95, March 2016.
Jung Gyw Lee, Seung Hak Kuk, Hyeon Soo Kim, "Test Cases Generation Method for GUI Testing with Automatic Scenario Generation," Journal of KISS : Software and Applications 36(1), pp.45-53, January 2009.
Atif M. Memon, Martha E. Pollack and Mary Lou Soffa, Hierarchical GUI Test Case Generation Using Automated Planning, IEEE Transaction on Software Engineering, vol.27, no.2, pp.144-155, February 2001.
Li, Kanglin, Mengqi Wu, Effective GUI testing automation: Developing an automated GUI testing tool, John Wiley & Sons, 2006.
Myers, Glenford J., Corey Sandler, and Tom Badgett, The art of software testing, John Wiley & Sons, 2011.
Soeui Kim, Duri Choi, Beongku An, "Detection and Prevention Method by Analyzing Malignant Code of Malignant Bot," JIIBC, Vol. 13, No.2, pp.199-207, April 2013.
Sungjik Choi, Minji Kim, Jeungwook Han, Beongku An, "Android Based Mobile Student Identity Card," JIIBC, Vol. 13, No.2, pp. 209-215, April 2013.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.