Testing

Testing Overview

One of the things that is noticable about this project that details from others is the level of testing that’s taken place. 97% code coverage is better than most student projects. - Prof. Joseph Connor

Testing Strategy

In our project, we are providing medical advice and it is vital that the chatbot the clinician receives is precisely the one they expect.

When it comes to testing, we can break it down to testing three major components: the UI, the packages (vf-to-ubf, ubf-to-twilio), and the system altogether.

Results

We tested 97% of our vf-to-ubf and ubf-to-twilio packages which contain all of our system’s functionality and field contribution.

A total of 104 tests ran between 18 different test suites.

Testing the UI

The UI has taken a major part of our time, mostly to ensure good HCI design. In terms of functionality, it doesn’t do much more than call API methods to display data and amend data changes, as well as proper error logging and handling. As such, it wasn’t a testing priority for our team. Nonetheless, we have produced thorough unit and end-to-end tests for the UI too.

Apart from automated testing, we discussed the design and functionality with our client to ensure it meets the target. In addition, we handed over a binary of our product to our client for use in small scale NHS trials in Wales.

Testing Business Logic

The core logic for taking a Voiceflow diagram and turning it into a chatbot on Twilio is held within our two published npm packages. To guarantee that each function does as expected as individual packages and when bundled together, we carry out unit tests as well as integration tests.

pyramid

In this section’s articles, we’ll go over each and every type of test that we carried out and dive into the importance of each of these tests.