Keep in mind that your functions are small in order to increase the testability.
It is super important to maintain your tests according to your code. Otherwise, some tests will fail and others become un-necessary.
With a tool like "Instanbul" we can keep track of the test coverage of our code.
With the coverage we can see which part of our code is tested and what not.
With TDD we first write our test and after it the code in order to let the test pass.
TDD we ensure that we only write code we need and write code that is predictable.
or End-to-End testing
The integration between the Front-end and Back-end services.
Just test the application across browsers, platforms and mobile devices.
With different tools we can automate some part of the behavioral things of the application.
Testing styling in different browsers automatically needs some more effort. We can use tools that make screenshots and compare that to a base image of every component or layout.
A browser with a visual user interface that runs a computer, tablet & smartphone.
Selenium can automate the normal browser testing
A browser without any visual user interface that runs on the terminal.
Performing a test after making changes, we can test if the written tests are still passing.
If there are (automatic) tests you perform, you can perform this every time you have created a new feature or functionality.
If the features or functionality breaks the tests, it can mean that the tests needs to be changed or the feature has to change.
A performance test should be done to ensure that the performance of the application is good in different circumstances.
To make sure that the user interface is in line with how the user would use the interface in order to perform certain tasks.
The user-interface.
Usability tests will most of the time be done by the user them self.
Some companies will invite a few of their users and ask them to perform different tasks.
The user will perform this on a computer that has an eye tracking camera to track eye movement.
Via this way the company can collect data and change their user-interface based on the actions of the user.
To automatically check the code on code style and best practices.
For most of the programming languages there are linting tools.