Testing

Testing for the chatbot mainly involved unit tests and integration tests to ensure that the functions we wrote that uses the IBM Watson services are producing the intended JSON output. However, we are unable to extensively test our chatbot on a variety of test cases as the services are either on a free-tier (limited use per month) or on a paid-tier (cost per instance run).

We also conducted User Acceptance Tests (UAT) during our client meetings, where they would go over our chatbot interface. Feedback is given as to ways it can be improved for both functional and non-functional aspects.


Development Tools

  • Git

    We used GitHub as the platform for managing our source code repository. It allows us to manage version histories and ensure that any unwanted changes to the production version can be rollbacked and rectified.

  • Jaunt

    Jaunt is a Java library for web-scraping and web-automation, including JSON querying. It supports tasks such as filling out and submitting web forms, creating web-bots or web-scrapping programmes and writing http-clients for REST APIs or web-apps.

    We used Jaunt as a web-scrapping tool to generate misspellings from an online typo generator (http://tools.ppcblog.com/spelling/keywords-typos.cgi) for all the Conversation workspace entities from category, brands and colour. This helps to capturing the intent and entities more widely in a user query that contains typos, which we will map to the intended meaning of the word.

  • Chai + Mocha

    Chai is a BDD/TDD assertion library which we paired with Mocha, a JavaScript testing framework. These two tools are used to run our unit tests which focuses on ensuring the data integrity of responses after it has been processed by our code functions involving the Watson services and/or internal parsing.

  • Bootstrap

    Bootstrap is a mobile first front-end framework for faster and easier web development. We used Bootstrap as part of the development of the front-end application to demo the chatbot service.


Analytics

User conversation histories allows the system administrator of the Conversation workspace to know what type of queries the customers are asking. This will allow NET-A-PORTER to better understand the needs of their customers and extend functionalities to benefit them in a costeffective way. The in-built User Conversations tracker in Watson Conversation also allows the system administrator to manually correct the chatbot in cases where the automated training wrongly classified queries.