Part of building any application is testing. I am focusing only on tests executed by the developer, so the first stage in any development cycle. The first option is to do this manually. While this works for most usecases, it has some major disadvantages:
- It is time consuming.
- You can’t run all the manual tests after each change.
When a developer does a manual test, he only confirms that the change did what it had to do. To assure it did not break anything else, in most cases he will do a quick regression test, but that won’t cover all possible regression issues.
We are building a Cordova / Ionicapp, with some complicated, time consuming use cases like logging in, logging out, adding items to a list, etc. Any change we make may cause a regression. We do have some unit tests to cover certain services and controllers, but that does not cover everything.
So, we have decided to use end-to-end automated tests to be sure that before each release, the major part of the app is still working as expected. Any bugs detected with these tests can be fixed by a developer straightaway. If it would be detected by our testers, or even worse by the client in UAT, this would make it much more expensive to fix.
I have spent some time to figure out what the best way of doing this is. I couldn’t find a lot of working documentation and examples to set up automated user testing with a Cordova / Ionic mobile application.