2/01/2009

AutoIT: 애용할 것만 같은 QA 자동화 스크립팅 툴


본인은 직업이 QA가 아니다. 그래서 QA 분야는 그냥 어깨 너머로만 보았지 QA팀이 회사에 존재하므로 QA에 대해서는 별 걱정 없이 살아 왔다. 그런데 요 몇일 인력 공백으로 인해서 QA를 2-3주간 수행하다 보니 QA 오토메이션이 절실하게 느껴졌다. 물론 회사 내 QA 조직에서는 나름대로 좋은 상용 자동화 솔루션을 구매해서 사용하고 있다.
 
문제는 앞으로도 QA로 넘어 가기 전에 나도 내가 만든 코드에 대해서 유닛테스팅뿐만 아니라 통합 테스트를 해봐야 한다는 것이다. 유닛테스팅에 모두 패스해도 시스템 콤포넌트의 오작동이나 예외 상황 처리 미숙으로 인해서 문제가 생기는 것을 목격하였다. 유닛테스팅이 환상적으로 보이지만 모든 문제를 해결해 줄 수 있는 황금 열쇠는 아니라는 것이다.
 
결국 지루한 통합 테스트를 거쳐야 하는데, 이 과정은 실로 인내심을 요구하는 경우가 많다. 먼저 가상 머신의 테스트용 스냅샷으로 넘어 가야 하고, 거기에다 빌드 머신에서 막 구워져 나온 인스톨러를 올리고 인스톨 시작, 마우스 클릭, 클릭, 체크 박스 체크, 체크 하고 인스톨이 끝나면 그제서야 내가 금방 구현한 몇줄의 코드에 대한 테스팅이 가능하게 된다. 추가된 몇줄이 예상대로 돌아 간다는 것을 확인하기 위해서 대해서 적어도 20-30분의 추가 시간을 할애해야 하는 것이다. 물론 그 과정을 건너 뛰면 꼭 QA에서 걸려서 결국 버그트래킹 시스템에 등재되는 영광을 얻을 수도 있다.
 
그런데, 이러한 과정을 자동화 해 줄 툴을 드디어 발견하였다. 바로 AutoIt 이다. 이미 사실 QA에서 사용하는 툴이고 아는 사람이 추천해 준 툴인데, GUI 자동화에 대해서는  회의적인 생각을 가지고 있어서 보지 않고 있다가 요번에 하도 반복작업이 괴로워서 조금 들여다 보았다.

일단 기본적인 GUI 자동화가 가능하다. 또한 네트워크 접근 API들을 포함해서 윈도우즈 기본 API에 대한 랩퍼 제공이나 자체 GUI를 만들 수 있는 점 등등. 그리고 VB와 비슷한 신택스 등, 짧은 시간에 많은 것을 할 수 있는 좋은 툴로 생각된다. 

GUI자동화는 핫키를 메시지로 보내는 방식으로 사용할 수 도 있고, 컨트롤에 대한 ID를 AutoIT에서 제공하는 툴로 얻어 내어서 바로 컨트롤에 메시지를 쏘는 것도 가능하다. 또한 정규식(regular expression)도 제공하니 금상 첨화다.

일단 금요일 오후의 실험에서는 단지 1시간 내외의 코딩으로 제품 인스톨에서 부터 세팅 바꾸고 테스트를 수행하는 일까지 진행하는 코드를 무리 없이 만들 수 있었고, 해당 스크립트는 사용자 간섭이 없을 경우 VMWare내에서 꽤 안정적으로 수행 되었다. 예를 들어 똑같은 GUI 인터렉션을 한 100번정도 수행하는 스크립트 같은 것들도 쉽게 구현이 가능했다. 만약 100번 정도 어떤 오퍼레이션을 하면 1번 나올까 말까 한 버그를 잡는 다면 수동으로 그러한 일을 하는 바보짓은 이제 하지 않아도 될 것 같다.

기타 AutoIT의 강력한 기능들에 대해서는 시간을 두고 하나씩 정리해 보려고 한다.

Posted via email from bugtruck's posterous

댓글 없음:

댓글 쓰기