Functional tests are mostly concerned with verifying whether the behavior displayed by an application is the behavior that is expected; however, there are more risks when it comes to application development: whether an application performs actions quickly enough, whether this performance degrades if more users use the system concurrently, and whether the system is easy for end users to use. Tests that verify these properties of a system under test are called non-functional tests.
There are many types of non-functional tests, but three of them that are important in DevOps scenarios are as follows:
- Performance testing
- Load testing
- Usability testing
Let's go over them one by one.