Testing

Unit testing

For testing our solution, we have written a suite of automated unit tests for all our smart contracts. These tests, implemented using Embark and Mocha cover all the smart contract code verify the basic functionality of the application.

Integration testing

We also carried out integration tests, which verify that the Javascript API, smart contracts, and IPFS subsystem work correctly. However, due to the decentralized nature of the application, these are difficult to automate (true testing requires multiple machines, on different networks etc.). In general, we conducted integration tests manually. Example integration tests include:

User acceptance testing

For the user interface and overall product, we have conducted user acceptance tests. These involved showing the product to users and to our client, and getting them to complete our use cases. We asked them to rate the experience in terms of ease of use and how intuitive it is. Example test cases:

  1. Create a new identity
  2. Request a reference from a different user
  3. Fulfill an incoming request
  4. Consult your own records
  5. See another user's CV
  6. Create a CV