Unit Tests - We did this to ensure that the individual components of the program were functional. This increases confidence of each component working.
Integration Test - As the frontend and backend were formed in two seperate sections, we ran tests to ensure the connection between the two were running correctly.
User Tests - We conducted user tests to ensure that our interface was easy and efficient to use and understand.
We conducted user tests in the following areas:
- Front to back tests
- Code matching tests
- UI tests
- Location testing
- Integration file testing
- Postgres database testing
- Read File tests
- Q&A model tests
Splitting the sections up into sections allows tests to be correctly made. This also allows for in-depth testing with the correct levels of coverage.
Unit tests were introduced for the Backend Integration file through the Unit Testing file.
By instantiating the files seperately allows us to feed them each custom data for unit testing.
Unit tests are used in testing the testable parts of the module, including the functions for extracting data from the files, filtering unecessary data, creating answers from the text obtained, returning these answers correctly, and ensuring that these answers are in suitable formats.
We ensured the tests compiled answers from the same documents as seen in the UnitTesting file, so that comparisons can be made between the known answers of these file, and the compiled tests by the program.
Integration tests between the front and back end are necessary in covering all types of input and data sent between the UI interface from the user, and the correct answers/ outputs needed to be sent back to the UI from the backend files.
Integration testing was conducted in the new_integ and fronttoback test files. The tests simulate information sent between the frontend and the backend components of the program. As they were both created independently, integration testing is very important to produce and display outputs most effectively.
We created user tests to ensure that our system was easy and efficient to use. We used 4 different people with no prior information about our project to ensure this.
These are the tests that we used, with descriptions of what they are for and why they are needed:
These are the results of the tests showing how many were successfully completed by the users and how many attempts on average they took.
From the Unit Testing, we found a few bugs that were easily fixed, mainly in returning values. This allowed us to easily increase system coverage and the percentage success overall.
From Integration Testing, we were able to find functions that we didn't need or that could be combined to increase code efficiency.
From User Testing, we had clarity of how easy our program was to use and we concluded that it was, based on the success rate of the tests.