과거에 테스트 케이스 설계에 빠졌던 적이 있었다.

테스트 설계 관련 내용 중에 테스트의 충분성을 위한 커버리지 측정이 있는데, 그 중 코드 구문을 분석하여 테스트 케이스를 만드는 기법 중에 변형된 조건/결정 커버리지 (MC/DC)라는 것이 있다. 조건의 모든 조합을 테스트 하는 게 아니라 조건이 변경되면 결과가 바뀌는 것만 추려서 테스트를 하는 기법인데 조건이 늘어날수록 사람이 손으로 이를 뽑아내기가 무척 어렵다. 그래서 이를 분석해 주는 엔진을 나도 만든 적이 있다(지금도 내 깃헙 레포 어딘가에 처박혀 있을 것이다).

지금도 성업중인 테스트 설계 도구 제작사인 S사. MC/DC기법은 국방, 의료 분야에서는 필수적으로 요구되는 커버리지이기 때문에 10여년전 내가 소프트웨어 테스팅 업계에서 일할 때 이 회사는 MC/DC설계 엔진을 만들고 솔루션화하여 국방이나 자동차 업계에 열심히 팔고 있었다. 이 솔루션은 상당히 고가였다.

테스팅 업계를 떠나 지금의 일을 하던 중 작년 말에 교육생 중 한 명이 S사에 입사지원을 하겠다고 상담을 온 일이 있었다. 그 교육생은 그 회사에 대해 이것저것 나에게 물어봤다. 나름 과거 이 회사와 많은 소통을 해 왔기에 나는 내가 아는 대로 S에 대해 이야기해 주었고 반가운 마음에 S사의 홈페이지를 들어가 보았다.

그 회사의 주력 솔루션들을 보는데 10여년전 내가 봤던 강력한 도구들은 이제 다 빠져 있었다. 거기도 이제 AI시대를 맞이하여 포커싱이 미션 크리티컬한 분야(국방, 의료, 자동차)에 AI를 적용하는 솔루션들이 주력으로 소개되고 있었다.

한 때 나도 MC/DC엔진은 만들었다는 자부심으로 살아왔었는데 이제 이런 것들은 전혀 통하지 않는 시대가 되어 버렸다. 지금 codex를 가지고 어떻게 TDD를 시작하고 상황에 맞는 커버리지를 설정하는가에 대한 자료를 만들고 있는데 보니까 MC/DC정도는 과거의 비싼 솔루션 없이도 쉽게 만들 수 있다. 이제 중요한 것은MC/DC를 만들어내는게 아니고 ‘어떻게 적절하게 쓰느냐’ 이다.

이제 휴먼은 선택의 문제를 고민하고 그 실행은 AI에게 맡겨야 한다.