제임스 바흐(James Bach)가 방한하여 10월 말에 쾌속 소프트웨어 테스팅(Rapid Software Testing) 교육을 한다고 합니다.

제임스 바흐는 탐험적(탐색적) 테스팅의 창시자 중 한 사람입니다. 탐험적 테스팅이란, 간단히 말해 테스트 설계와 실행이 동시에 이뤄지는 테스팅을 말합니다. 스무고개를 할 때 미리 스무개의 질문을 모두 정해놓고 답을 듣는 것이 아니고, 하나의 질문을 묻고 거기에 대한 답을 들은 다음, 거기에 기반해 다음 질문을 생각해 내고 하면서 피드백의 순환고리를 돌며 진행하는 것이죠.

테스팅은 소프트웨어 개발에 무척 중요한 요소이며, 앞으로 더욱 중요해질 것이리라 생각합니다. 그런데, 많은 조직에서 우리는 테스팅에 투자할 여력이 없다고 외칩니다. 테스팅의 비용이 크다고 느끼기 때문입니다. 또 체계적 테스팅을 도입하기 위해 필요한 조직적 변화가 엄청나기 때문입니다.

하지만 이 탐험적 테스팅은 비교적 적은 비용으로 적용할 수 있습니다. 그리고 투입 대비 효과가 높습니다. 또 학습 효과가 높습니다. 저는 이 탐험적 테스팅을 실제 프로젝트에 적용하면서 투자 대비 효과 측면에서 놀란 적이 한 두 번이 아닙니다. 탐험적 테스팅은 실용적이며 현실적인 테스팅 접근법입니다.

넓게 보아, 이 탐험적 테스팅은 맥락 주도 학파(Context Driven School)의 핵심 실천법입니다. 이 맥락 주도 학파는 소프트웨어 테스팅의 주요 네 개 학파 중 하나로, 애자일과 친척뻘로 볼 수 있습니다. 그래서 애자일과 궁합이 잘 맞습니다(실제로 맥락 주도 학파의 주요 인물들은 대부분 친 애자일적이고, 또 애자일의 주요 인물들 역시 친 맥락 주도적입니다).

애자일은 세상이 변하거나 내가 더 똑똑해지는 상황에서 유리한데, 이 탐험적 테스팅도 비슷합니다. 애자일을 하다 보면 사람들이 점점 더 똑똑해 지는 것을 느낍니다. 마찬가지로 탐험적 테스팅을 하다 보면 점점 더 똑똑해 집니다.

저는 개인적으로 탐험적 테스팅이 사람들이 자신의 머리를 더 효과적, 효율적으로 쓸 수 있게 해주는 좋은 훈련이 된다고 믿습니다. 예를 들면, 디버깅을 더 효과적으로 할 수 있고, 소프트웨어로 원하는 목표를 더 쉽게 달성하며, 또 심지어는 잃어버린 물건을 더 쉽게 찾을 수 있습니다(기회가 되면 이런 실제 경험들을 글로 옮겨보겠습니다). 제임스 바흐의 교육 소개를 보면, 이 교육에서 배우게 되는 핵심은 비판적으로 생각하는 능력(A core skill is the ability to think critically)이라고 합니다. 저는 탐험적 테스팅에 테스팅이라는 특정 분야를 초월하는 가치가 있다고 생각하며 그런 의미에서 "탐험적 접근법"이라고 일반화하여 부르기도 합니다.

저는 탐험적 접근법을 익히면 자기 능력의 상수항의 값을 변화시키는 것이 아니라, 계수를 바꾸게 된다(즉, 미분값을 변화시킨다)고 생각합니다.

다음은 제임스 바흐의 구글 강연 동영상입니다. 제목은 "Becoming a Software Testing Expert"입니다. 하지만 어떤 분야의 전문가에게도 적용될 수 있는 내용이 많이 담겨 있습니다.


 

제임스 바흐 교육이 한국에서 진행된다는 것은 굉장히 기쁜 소식입니다. 이런 일을 가능하게 해준 STA의 권원일 대표님께 진심으로 감사드립니다.