Validation

Testing and Validation of QMd

Angular Testing

Our application makes use of angular's in-built testing functionality to ensure the correctness of our system. Karma/jasmine is used to conduct unit testing for individual services and components whilst protractor is used to conduct end-to-end validation of the survey component of the application.

The heavy usage of set and get functions by our application means that rigorous testing of individual functions was found to be not particularly useful for the time and opportunity cost, when our greatest concerns in terms of potential failures relates to rendering issues inherent in creating an application that supports multiple web browsers and security issues related to the back-end express server. Therefore, for the most part, for our karma testing, simple checking of parameters, calling functions and ensuring that updates occurred correctly make up the bulk of our unit testing, ensuring that ahead-of-time compilation occurs without issues.

Protractor testing is used to ensure that routing of components is validated and that HTML elements update and display correctly on the screen.

Future extension of testing however is possible, and would ensure correctness to a higher degree, such as checking for correct element placement on the screen and testing error prompts on failure.

This aspect of testing is incorporated with Travis for continuous integration testing, to see our test logs, go here.

Express Testing

To ensure the security of our back-end express server, in order to certify the ability of user data to be protected against unauthorised access, we ran tests with Karma/jasmine whilst running the express server with a series of HTTP requests, both valid and invalid. Further testing was conducted with a live hosted version of the application utilising Postman to ensure the correctness of behaviour when the application is remotely hosted.

Compatibility Testing

Compatibility testing was conducted with the limited range of free online tools available to ensure browser compatibility, however due to the limited nature of such programs, we are unable to fully certify QMd against the entirety of our browser compatibility requirements. However, paid testing services exist which could be easily integrated into our existing application framework.

Last updated