There are many different types of testing, but for frontend, we are mainly interested in the following:
- Static - static type checking combined with linters capture common errors, like typos or incorrect syntax
- Unit tests - focus on critical behavior, business logic and the functionality of your app
- Integration tests - are making sure everything works together correctly
- End-to-end (e2e) tests - automated click-testing of critical paths (instead of relying on your users to do it for you). Or visual regression testing comparing the implementation of designs.
- Efficient use of developers’ time by not having them test the solution manually
- After every code change, you don’t need to manually retest it (making it less expensive and less time-consuming, since devs will focus only on development)
- Easier cooperation between BE and FE (reduces interactions between platforms after each change)
- Application stability
- Reduce the number of bugs by a massive number
- Ensure that every functionality works exactly as it is supposed to
- Huge waste of money/time that could be used towards feature development
- No one can ensure a “bugless” solution and the proper behavior of all functionalities
- The bigger the solution, the more fragile it becomes
- Really hard or almost impossible to do refactoring