본문 바로가기
엑셈 기업문화/엑셈 사람들

[정영원]벌레 잡는 엑셈킬라

by EXEM 2008. 7. 31.

사용자 삽입 이미지
 

 몇 년 전 PIXAR에서 제작한 ‘A Bug’s Life’라는 애니메이션을 보고 너무 재미있어서 영화관을 나와서도 한참을 깔깔거리며 웃었던 기억이 있다. 그리고 약 10년 후 나의 하루하루는 매일매일 Bug와 함께 씨름하고 있고 Bug는 더 이상 나에게 웃음을 주지 않는다. (월급을 준다 -_-;;)

 

QA업무를 하면서 제품 자체에 대한 지식은 물론이거니와 Domain영역에 대한 지식의 중요성을 많이 느낀다. Maxgauge For Oracle을 테스팅 하기 위해서는 당연히 오라클 관련 지식이 필요하고 설치 플랫폼도 다양하기 때문에 많이 알면 알수록 제품에 대한 이해도 빠르고 숨어있는 BUG들을 쉽게 찾을 수 있다.

 

얼마 전 릴리즈 된 Maxgauge V3.1에서 ‘SQL Planner’라는 새로운 기능이 추가 되었다. 약간 생소한 부분이어서 제발 다른 사람이 맡았으면 좋겠다고 생각하고 있었는데 다른 사람들도 같은 생각이었는지 결국 내게 SQL Planner의 테스팅업무가 맡겨 졌다. 처음에는 어떤 이유에서 이런 기능이 추가되었고 주요 기능은 무엇이며 실행 파일이 3개가 있는데 구성은 어떻게 되어 있는지 뭘 어떻게 시작해야 할지 전혀 감이 잡히지 않아서 갑갑했다. 프로그램을 켜놓고 무작정 눌러 보는 체력기반 테스트를 해야 하나.. 하는 생각과 함께 한숨이 흘러나왔다.

 

그때!!!!!!!!!!!!!!!!!!!!!!!!!

 

 지난 ASTA 국제 소프트웨어 테스팅 컨퍼런스에서 접한 “Noun and Verb’ 테스팅기법이 생각났다.  “Elisabeth Hendrickson의해 처음 제시하였으나 살을 덫 붙여 “Vipul Kocher”가 소개해준 이 기법은 제품 동작에 중요한 질문들을 많이 만들어 효율적으로 TestCase를 작성할 수 있고 요구사항에오류나 부족한 부분이 없는지 확인할 수 있는 방법이다.


기왕 나온 김에 간단하게 그 방법을 살펴보면 다음과 같다.

(어설픈 번역으로 소문이 잘못 날까봐 원문을 옮겼다.)

1)     Extract the nouns and verbs

2)     Use “5W1H” (who, what, why, where, when, how, how many, how far …) to extract adjectives, adverbs

3)     Use pre and post conditions to extract more nouns and verbs

4)     Enumerate properties of every noun

5)     Break down these properties to base elements

6)     Use boundary values, equivalence classes on the base elements

7)     Write tests for individual properties

8)     Combine operations (verbs) to write scenario based tests  


 잘 활용한다면 굉장히 유용한 방법으로 생각되었지만 전문가가 제시한 방법을 그대로 실무에 적용하기는 어려움이 있어 우리 제품에 맞게 조금 변형하여 Maxgauge V3.1 SQL Planner 테스팅에 이 기법을 적용해 보기로 했다. 우선 명사로 정의 가능한 요소들을 뽑고 조작할 수 있는 범위 등을 동사로 설정해서 TestCase의 기본 뼈대를 작성하고 조작방법을 다양하게 변형하여 TestCase를 확장해 나갔다.

 

 그 결과, 지정한 테스팅 기간이 끝났을 때 98건의 TestCase가 작성되었고 45건의 Bug를 등록할 수 있었다. 음하하하


 사실 큰 문제가 없을 것으로 생각했던 프로그램이었는데 예상 보다 많은 수의 Bug가 발견되어서 개발팀도 놀라고 우리팀도 놀랐다. 그 이후에도 2번의 릴리즈가 더 있었지만 그 때 작성했던 TestCase는 계속 보완/재사용되면서 유용하게 활용하고 있다.

 

 퇴근 시간, 어딘가 숨어서 나를 비웃고 있는 Bug들을 생각하며 GPS를 통해 Bug의 위치상세 정보를 확인(자동 수정은 아무리 생각해도 오바다.) 해주는 Google Bugs가 나온다면 얼마나 좋을까 하는 엉뚱한 상상을 해본다.

댓글