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.
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.
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:
We then moved on to test and add new functions in the following sequence
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.
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.
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.
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.