보이스봇은 대화한다, 테스트도 그래야 한다

10

by 장연우
보이스봇의 품질은 ‘기능이 잘 작동하느냐’가 아니라, ‘대화가 사람답게 이어지느냐’에서 결정된다.


1. 어디서부터 테스트할 것인가

우리는 기반을 다지고, 불확실함을 견디는 기준을 세우며, 보이지 않는 곳에서 신뢰를 쌓아왔다.
이제 기술적으로는 모든 준비가 끝난 듯 보인다.

하지만 보이스봇은 코드를 실행하는 시스템이면서도, 그 코드를 움직이는 건 사람의 ‘말’이다.
같은 기능이라도 말의 뉘앙스, 맥락, 어순에 따라 전혀 다른 결과를 낸다.
결국 보이스봇의 품질은 코드가 아니라, 그 코드를 움직이는 ‘대화의 맥락’에서 결정된다.

그래서 기능이 완벽하다고 해서 대화가 자연스럽다고 말할 수는 없다.
보이스봇의 진짜 완성은 개발이 끝난 뒤에 시작된다.
이제는 시스템을 테스트하는 게 아니라, 사람과의 대화를 검증해야 한다.


2. 기능 테스트만으로는 대화를 검증할 수 없다

단위 테스트가 시작되면, 많은 팀이 익숙한 방식대로 기능 하나하나를 따로 점검한다.
그러면 시스템은 멀쩡해도, 대화는 어색해진다.

예를 들어 사용자가 묻는다.
“지금 배송 중이에요?”
보이스봇은 답한다.
“네, 배송 중입니다.”

겉보기엔 아무 문제없다. 배송 상태를 알려주는 기능은 정확히 작동했다.
하지만 사용자가 진짜 알고 싶었던 건 “그래서 언제 도착하나요?”였다.
기능은 맞았지만, 대화는 끊겼다.
기술은 정답을 말했지만, 사람은 공감을 잃었다.

문제의 본질은 시나리오가 틀린 게 아니라, 검증의 단위가 기능에 머물러 있었기 때문이다.


3. 우리는 왜 ‘기능 단위’에 익숙한가

탓할 사람은 없다. 우리는 오랫동안 화면과 기능 중심의 테스트에 익숙해져 왔다.
하나의 기능을 만들고, 그 기능이 정상 동작하는지 확인하는 것.
이게 수십 년간 IT 프로젝트의 기본 공식이었다.

하지만 보이스봇은 다르다.
대화는 하나의 기능이 아니라 여러 맥락이 이어지는 흐름으로 완성된다.
“환불해 주세요.”라는 짧은 문장 속에도 사과 → 확인 → 안내라는 리듬이 숨어 있다.
이 리듬이 어긋나면, 대화는 부자연스러워지고 신뢰는 깨진다.

그럼에도 많은 팀은 여전히 기능만 확인한다.
그러면 개발자는 “기능은 정상입니다.”라고 말하고, 대화의 어색함을 가장 먼저 발견하는 사람은 시나리오 설계자가 된다.
그리고 설계자는 “왜 이상하지?”라는 질문 앞에 혼자 남는다.

결국 문제의 본질은 사람의 역량이 아니라, 일을 바라보는 단위에 있다.
기능 단위로 일하면 문제의 책임이 특정 담당자에게 몰리고, 대화의 흐름 단위로 보면 팀 전체가 함께 움직이며 문제를 찾는다.
즉, 단위를 바꾸면 일의 구조가 달라진다.


4. 테스트를 ‘대화처럼’ 설계하라


4-1. 테스트 단위를 기능에서 ‘흐름’으로

점검 질문을 바꾸자.
이전: “이 기능은 잘 작동하는가?”
이후: “이 대화가 사람에게 자연스러운가? 어느 지점에서 맥락이 끊기는가?”

같은 기능이라도 등장 시점과 말의 목적이 다르면 결과가 달라진다.
그래서 테스트의 최소 단위를 의도 → 맥락 → 응답 → 다음 전이로 잡는다.
즉, 한 번의 대화가 끝나는 게 아니라 ‘어떤 의도로 시작되어, 어떤 맥락을 거쳐, 어떤 응답을 내고, 그다음 어디로 이어지는가’를 한 세트로 검증한다.

챕터12_표1.png

이렇게 단위를 바꾸면, 기능이 아니라 대화의 연결성을 중심으로 품질을 점검할 수 있다.


4-2. 시나리오 기반 체크리스트를 만들어라

기능형 검증은 운송장 입력 → 배송 조회로 끝난다.
대화형 검증은 이렇게 흐른다.
배송이 안 온다 → 운송장 확인 → 지연 사유 안내 → 도착 예정 시점 제시 → 선택(대기/환불)

이렇게 정리하면 각 기능이 어떤 상황에서, 어떤 대화로 사용되는지 모두가 이해한다.
문서는 눈으로 읽는 언어지만, 대화는 귀로 듣고 몸으로 확인하는 언어다.
이제는 직접 말로 검증해야 한다.


4-3. 모두가 직접 ‘흐름’을 경험하게 하라

응답 결과만 보는 테스트로는 부족하다.
실제 사용자처럼 묻고, 이어가며 검증해야 한다.
직접 몸으로 대화의 흐름을 겪어봐야, 왜 이런 방식이 필요한지 실감하게 된다.

예를 들어, 같은 ‘환불’이라도 맥락이 다르면 말의 온도가 달라야 한다.

- 단순 요청: “환불하고 싶어요.” → “네, 환불 가능합니다.”
- 불만 상황: “배송이 너무 늦어요. 환불해 주세요.” → “늦어서 죄송합니다. 환불 도와드리겠습니다.”

기능은 같아도, 말의 온도는 다르다.
보이스봇의 품질은 바로 이 온도 차이에서 갈린다.


4-4. 오류 보고는 ‘흐름 기준’으로

보이스봇의 문제는 대개 여러 단계가 얽힌 지점에서 생긴다.
그래서 “에러 발생” 한 줄로는 아무도 원인을 못 찾는다.

나쁜 예: “계좌 변경 응답 없음.”
좋은 예: “본인 확인은 정상 → 계좌 확인 후 응답 지연 → 사용자의 재질문 미처리.”

이처럼 어디서 대화가 끊겼는지를 표기하면 원인 파악이 빨라지고, 책임이 한 사람에게 쏠리지 않는다.
프로젝트팀 모두가 함께 같은 그림을 보게 된다.


5. 정리하며: 단위를 바꾸면, 팀의 구조가 바뀐다

보이스봇의 품질은 기술보다 일의 방식에서 갈린다.
기능 단위로 보면 개인이 고립되고, 흐름 단위로 보면 팀이 협업한다.
대화의 끊김을 함께 발견하고, 함께 수정한다.

개인의 책임이 아니라, 흐름 전체를 관리하는 팀의 리듬이 만들어지는 것이다.
그래서 이제 이렇게 묻자.

- 내 기능은 어떤 대화 속에서 호출되는가?
- 이 응답은 고객에게 어떤 감정을 남기는가?
- 흐름이 끊긴다면, 그 단절은 어디서 시작되는가?

이 질문들이 팀의 공통 언어가 될 때, 보이스봇의 품질은 더 이상 한 사람의 감각이 아니라 팀의 역량으로 완성된다.
결국 기술의 완성도는 사람의 감각에서 시작해, 협업으로 완성된다.


한 줄 요약
기능을 테스트하면 기술이 완성되고, 흐름을 테스트하면 신뢰가 완성된다.
이전 09화좋은 시나리오, 보이지 않는 곳에서 완성된다