Test strategy

We tried to combine different testing strategies to achieve a reasonably comprehensive testing of our web app in limited time. The testing methods we have used are as follows.

  • Unit Testing
  • Integration Testing
  • System Testing
  • Performance and Stress Testing
  • Compatibility Testing
  • Responsive Design Testing

Unit Testing

We started our testing with the smallest testable part of our web app. In our case, we used a lot of functions for our algorithms, the functions are listed on the right. By tracking the variables in functions, we make sure they output expected result.

intro-img

Integration Testing

We used incremental integration testing to test different parts of the web app and make sure each part functions well before introducing a new function. We started with these basic functions:

  • Data retrieval and write to MarkLogic database
  • JSON file processing in the back-end to extract information
  • Dummy data display in the front-end
  • Login system of the web app

We then moved on to test and add new functions in the following sequence

  • Filter and display transactions
  • Business Intelligence of data
  • Categorisation of transactions
  • Setting spending caps
  • Bill reminders and overdraft warning
  • Summary page

System Testing

We created a test user in our web app to simulate the use of our app. This tests the integration of different functions and the overall functionality of the app.
We purposely tried to break our system to find bugs. This includes using an invalid account id and entering an invalid date.

intro-img

Performance and Stress Testing

In real use, there will be many users accessing our web app at the same time. Thus the test of sensitivity, reactivity and stability is very important.
We used this open-source load testing tool k6 for performance test. The test shows that 20 virtual users made 4.4K requests to our web app and all of them were successful, along with an average response time of 106ms.

Compatibility Testing

We used BrowserStack for both compatibility and responsive design testing.
As a web app, it is compatible with main stream browsers that are ES5-comliant. This includes the browsers below and more.

  • Edge 80 on Windows 10, 8 and 7
  • Internet Explorer 11 on Windows 10, 8.1 and 7
  • Chrome 80 on Windows 10, 8 and 7
  • Safari on MacOS
1 / 4
Microsoft Edge 80
2 / 4
Internet Explorer 11
3 / 4
Chrome 80
4 / 4
Safari

1 / 4
Microsoft Edge 80
2 / 4
Internet Explorer 11
3 / 4
Chrome 80
4 / 4
Safari
4 / 4
Safari
4 / 4
Safari
4 / 4
Safari
4 / 4
Safari

Responsive Design Testing

Although this isn't the main focus of our project, our web app can also be used on most mobile devices without any issues in appearance.
We have tested it on many main stream Android and iOS devices where most of the tests passed. Only some texts are not in place on some devices with smaller screens as shown in picture 8 for the Samsung Note 4.

  • Samsung Galaxy S10
  • Google Pixel 4
  • OnePlus 7T
  • Xiaomi Redmi Note7
  • Apple iPhone XS
  • Apple iPad Pro 11
  • Samsung Tab S6
  • Samsung Galaxy S4