탐색적 테스팅은 직관적(intuitive) 테스팅으로 불리며 다음과 같은 사상에 의거해 수행한다.
즉, 스크립티드 테스팅과 탐색적 테스팅을 비교하면 다음과 같을 것이다.
이렇게 비교하면 결론적으로, S 테스팅은 조직의 역량과 프로젝트의 단계별 준비가 잘 된 상황에 사용할 수 있을 것이며, E 테스팅은 아무런 준비가 없는 상태에서 테스터가 투입되거나 그 보다 더 열악한 환경에 사용할 수 있을 것이다.
또한, E 테스팅이라고 해도 구체적인 방법론을 제시하는 것이 아닌 순전히 맨파워에 의존적이라는 인상을 주기 때문에 사람마다 제각각 다른 결과를 낸다는 어려움이 있을 수 있다. 또, 테스터 임의로 수행하는 테스트에 대해서 E 테스팅이라고 주장해도 사실이 그러한지 아니면 Ad hoc인지를 판단할 방법이 없다.
그렇다면, 현실적으로도 그렇게 하고 있지만 이 두가지 사상을 함께 사용하는 방법으로 테스트를 수행하는 것이 정답이라는 결론에 이르게 된다.
쥔장은 스크립티트 테스팅에 대한 지지자이다. 하지만, 돌이켜보면 반드시 이것만 사용하거나 이것만 사용할 수 있었던 것은 아니었다. 스크립티드 테스팅의 수행 이후의 결과에 대한 대응으로 몇가지 임의적으로 테스팅을 수행해 보고, 정보를 더 획득한 이후에는 이 테스팅을 개정해서 수행했었기 때문에, 이 자체가 S 테스팅과 E 테스팅의 결합으로 생각된다. 단순히 계획이 있다 없다의 문제라기 보다는 거시적 관점에서 테스팅을 보고, 현재 상태에 대한 판단을 통해 더 나아질 수 있는 무언가를 추구하는 것이 S 테스팅 vs E 테스팅을 올바르게 이해하는 관점이 아닌가 싶다.
쥔장이 특히 스크립티드 테스팅의 가치를 높이 평가하는 이유는 테스팅의 프로세스성, 즉 반복적으로 수행하다보면 맞는 기대 동작에 대한 습득이 자연스럽게 되어, 이후의 테스팅 수행에서 옳고 그름에 대한 판단이 가능하리라는 기대 때문이다. 물론 E 테스팅에서도 이것이 가능하겠으나, 경험이 없고 프로세스적 사고에 대한, 공식적인 QA 활동에 대한 경험이 없는 인력은 E 테스팅의 정수를 깨닫지 못하고 임의로 수행할 위험성이 있기 때문이다. 즉, 쥔장은 오해의 소지가 많은 E 테스팅 보다는 어떤 간략화된 절차를 따름으로서 생기는 이득에 초보 테스터들이 집중하는 것이 낫다는 판단이다. (또한 정식의, 매우 성공적이었던 practice를 알지 못하면, 자신감을 가지지 못해, 카운터 파트에 이를 강제, 설득하지 못하는 문제도 있다.)
또한, S 테스팅이든 E 테스팅이든 간에 가장 중요한 문제는 기대 동작, 기대 행동을 사전에 정의하는 문제이다. 이것을 어떤 방법을 동원해 도달하는 가가 이 두가지 사상을 나눈다고도 볼 수 있다. 당신은 해당 소프트웨어나 시스템의 올바른 동작을 어떻게 획득할 것인가?(test oracle?) 어려운 문제이다. 테스터가 해당 프로젝트의 이전 프로젝트에 참여해서 경험을 가지고 있다면 베스트이다. 하지만, 그렇지 않은 상황의 경우는? 대안으로는 유사 프로젝트의 경험을 셰어받거나 유사 제품을 동작시키면서, 어떤 mental model을 테스터가 수립하는 것이다. 구체적으로는 프로젝트마다 다르겠으나 테스팅을 수행하기 이전에 전략의 관점에서 이러한 문제들이 결정되어야 한다고 본다.
이 글로 인해서 조금이나마, 테스팅의 관점과 사고에 대해서 고민하는 분들에게 도움이 되었기를 빈다!
댓글 영역