티스토리 뷰

 

스크립트에는 크게 세 가지 오류가 존재할 수 있는데 첫째는 구문오류(syntax error), 둘째는 논리오류(logical error), 그리고 세번째 실행오류(runtime error)가 그것이다[1]. 구문오류란 문법을 지키지 않아서 발생하는 오류로 이는 CS:build 할 때 빠짐없이 잡아 주기 때문에 걱정할 것이 없다. 이에 반해 논리오류는 작성자의 의도를 알아야 찾아낼 수 있는 오류이기 때문에 CS가 발견해 내는데 한계가 많다. 가장 흔한 논리 오류는 룰과 토픽 간에 연결성이 없는 경우이다. 논리오류 중 일부는 CS가 찾아주거나 경고해 줄 수 있지만 대부분의 논리오류는 작성자가 테스트를 통해 찾아야 한다. 실행오류란 실제 스크립트가 작동될 때 발견되는 오류로 실제 작동해 보기 전에는 미처 예상할 수 없는 오류를 말한다. 변수에 값이 할당될 것으로 설계하였는데 실제 작동되면서 값이 할당되지 않는 경우가 대표적인 실행오류이다. 이런 오류를 찾아내기 위해 테스트가 필요한 것인데, 테스트는 작은 단위로 자주 테스트를 해서 완성범위를 점차 넓혀가는 것이 한 번에 몰아서 하는 것보다 더 효율적이다.

챗봇을 만드는 과정에서 작성자가 해야 하는 테스트는 크게 3종류로 나눠볼 수 있는데(아래 표 참조) 룰 단위 테스트, 토픽 단위 테스트, 그리고 대화 단위의 테스트이다.  

 


룰단위 테스트란 입력문과 패턴의 매칭 여부를 테스트하는 것이다. 입력문이 어떻게 전처리 되는지, 사용한 단어가 등록된 단어인지, 소속된 컨셉은 어디인지 등을 확인하며 테스트하게 된다. 토픽단위 테스트란 한 토픽 내에서 대화를 주고 받는 것인데, 가장 먼저 해당 토픽이 활성화 되느냐를 확인해야 하고 그런 후 그 토픽 내에서 여러 분기점들을 점검하게 된다. 예를 들어 ?”라고 반문하는 경우, “당신은요?”라고 되묻는 경우, “의지감탄사와 묶어 답하는 경우등에 설계한 대로 반응을 하는지 확인하는 것이다. 작성한 예상응답도 모두 테스트 해 보는 등 한 토픽에 대해 철저히 테스트하는 단계이기 때문에 다른 토픽은 주석처리하고 테스트하려는 토픽 하나만 활성화시켜 테스트하는 것이 효율적이다. 이에 반해 대화단위 테스트는 작성한 모든 토픽을 한꺼번에 테스트 하는 것이다. 사전지식이 조금도 없는 사용자라 가정하고 대본에 없는 대화도 입력하면서 챗봇의 반응을 테스트하는 것이다. 대화 단위 테스트를 하다 보면, 챗봇이 이 대목에서 왜 이런 답을 했는지, 지금 활성화된 토픽이 무엇인지, 현재 대기 중인 토픽이 무엇인지 등의 정보가 필요한데 CS는 그에 맞는 적절한 툴을 제공하고 있다.

이번 장에서는 이상의 테스트에 활용할 수 있는 명령어를 테스트 단계별로 나눠 알아보기로 하겠다. 일부 명령어는 앞절의 “K-POP 소재로 스크립트 작성하기에서 이미 다룬 것이지만 이곳에서 종합적으로 다시 한 번 설명하기로 하겠다.

 




[1] CS 뿐만 아니라 모든 컴퓨터 프로그램은 이 세 가지의 오류 가능성을 가지고 있다.


'8장. 테스트 및 보완' 카테고리의 다른 글

6. 대화내용 분석하고 보완하기  (0) 2016.06.17
5. 최종 점검하기  (2) 2016.06.16
4. 대화 단위 테스트  (0) 2016.06.15
3. 토픽 단위 테스트  (0) 2016.06.14
2. 룰 단위 테스트  (0) 2016.06.13
1. 테스트 단계와 종류  (0) 2016.06.10
댓글
댓글쓰기 폼