Extremely Agile/General2008.10.20 20:45

어제부터 탐험적 (탐색적) 테스팅 강의를 듣고 있습니다. 강사는 제임스 바흐(James Bach)이고, 여기서 김창준님을 처음 뵈었습니다. 이 강의를 앞으로 이틀은 더 들어야 합니다만, 개발자로서 첫 이틀의 강의를 들은 소감을 간단히 정리하자면, 테스트를 대하는 제 시각이 조금은 넓어졌다는 것을 들 수 있겠습니다.

흔히 개발자는 테스트를 jUnit이나 CppUnit으로 정의된 테스트 케이스(Test Case) 묶음 정도로 생각하는 경향이 있습니다. 물론 이 정도로만 생각하더라도 많은 효과가 있는 것은 사실입니다. TDD와 연계해서 단위 테스트 작업을 하게 되면 효과는 좀 더 높아지게 되기도 하죠. 테스트가 쉬운(Testable) 코드를 만들게 된다는 부수적인 효과도 있구요. 제임스 바흐도 개발자가 해야 할 일 중 하나로 이것을 지적했습니다.

하지만 일반적으로 테스트라고 불리는 작업은 그 규모가 엄청나게 큰 작업입니다. 무엇을 테스트 했는지, 테스트를 했다면 얼마나 했는지, 했다면 제대로 하기나 한 것인지를 추적하는 작업만 해도 만만하지가 않습니다. 테스트 케이스 중심적인 테스트 방법, 스크립트 중심적인 테스트 방법이 각광받기 시작한 것은 그래서 인것 같습니다. 하지만 개발 계획이 컨베이어 벨트가 아니듯, 개발자나 테스터 또한 그 컨베이어 벨트 주위에 공구를 들고 늘어서있는 사람들이 될 수는 없습니다. 잘 정의된 계획이나 테스트 케이스, 또는 스크립트들은 종종 그 사실을 잊습니다. 테스트를 수행하는 사람들의 창의적이고 탐험적인 측면을 충분히 고려하지 않는 것이죠. 그래서 탐험적 테스트라는 접근법이 등장했다고 생각합니다.

탐험적 테스트 접근법은 테스터가 시스템에 몰입하여 그 시스템에 숨겨진 결함을 찾아내는 과정에 주목하고, 어떻게 하면 그 결함을 보다 빨리, 보다 많이 찾아낼 수 있는지를 알려주려고 애씁니다. 아직 실전에 적용해 본 바가 없어서 '정말 그런지' 보증할 수는 없습니다만, 어쨌던 테스팅이라는 작업에 문외한인 저에게도 그럴싸 해 보이는 접근법인것 같기는 합니다.

강의 중간 중간에 다양한 연습문제들이 등장하는데, 이 연습문제들을 풀어보는 것 만으로도 얻을 수 있는 것이 제법 되는 것 같습니다. 특히 훌륭한 테스터가 되려면 이런 것들을 할 줄 알아야 되겠구나, 하고 생각한 것이 두 가지 정도 있는데, 첫 번째는 '현상'을 '징후'로 해석하는 능력이고, 두 번째는 끝까지 다양한 시도를 해 보는 끈기가 되겠습니다. 부연설명을 좀 하자면...

1.
저는 오늘 연습문제를 풀면서 신기한 경험을 했습니다. '뭔가 이상하구나(weird)'하고 느꼈지만 '설마 이게 버그겠어?'하고 체크리스트에 적어두지 않고 넘겨버린 것들(테스트 케이스를 그럴듯하게 만들기 위해 도외시했던 문제들)이 '발견된 버그들' 목록에 죄다 등장하는 겁니다. 폰트 색깔, 프로세스가 죽을때 덩달아 죽는 프로세스의 존재 같은 것들이 바로 그것이었습니다. 이런 것들은 제 입장에서는 그저 '현상'이지 버그의 '징후'는 아니었는데, 테스터 분들은 그것들을 전부 '버그의 징후'로 잡아 내더군요. 이런 것들은 반복적인 테스트 훈련이 없이는 체득될 수 없는 경험이 아닐까, 그런 생각을 했습니다.

2.
오늘 김창준님이 연습문제 풀이에 직접 참여하셨는데요. 저로서는 'QA 만족 조건을 알려주지 않으면 테스트를 진행할 수 없다. 테스트를 진행하지 않는다고 나를 해고한다면, 나는 당신을 고소할 생각이다'라고 으름장을 놓는 방법밖에는 생각이 나질 않았는데 ㅋㅋ 김창준님은 그런 상황에서도 평정심을 잃지 않고 이런 저런 시도를 해 보시더군요. 물론 실제 상황은 아니니까 그런 시도가 가능한 측면도 있습니다만, 생각을 펼쳐 나가는 방법이 보통 주변에서 제가 만날 수 있는 사람하고는 조금 달라서 신기했고, 그 끈기가 좀 놀라왔습니다. 결국 테스터가 가져야 할 가장 중요한 덕목 중 하나는 바로 끈기가 아닐까, 그런 생각이 들더군요. 생각의 패턴은 훈련을 거듭하면 개선될 수 있는 부분이라고 생각됐구요.

아무튼 강의를 들으면서 이런 저런 생각들을 좀 했는데, 나중에 기회가 있으면 한번 정리해 보도록 하겠습니다. 혹시 이 블로그에 들르시는 분 중에 저랑 같이 이 강의를 들으시는 분 계신가요? 계시면 나중에 인사라도 했으면 좋겠습니다. 제 이름은 이병준이고, 좌측 열 앞에서 세번째쯤 앉아 있습니다. :-)

신고
Posted by 이병준

소중한 의견, 감사합니다. ^^