Tests are categorized in a variety of ways based on purpose and scope. This page collects the various categories of tests that we engage with.
- Acceptance Testing – testing that verifies the system satisfies the requirements of the customer
- Functional Testing – testing that verifies the system is behaving correctly
- Fuzz Testing – supplying your system with invalid, malformed, and unexpected inputs to find defects
- Integration Testing – testing two or more software units in combination to ensure behavioral correctness of the integrated components.
- Manufacturing Testing – tests that are intended for use on the manufacturing line to ensure that units have been properly built and are suitable for sale
- Performance Testing – tests that are intended to stress performance attributes like speed, responsiveness, stability, scalability, and reliability under particular workloads.
- Regression Testing – testing that ensures that new changes or updates to the software do not break existing functionality
- Regression test suites often comprise the various unit and integration tests for the system
- Unit Testing – testing individual software components in isolation to ensure correctness
- A “unit” could be a function, a file, a complete library, etc.
These are not distinct categories. There is often overlap among testing types. The same test might fall into different categories depending on the purpose of the test or how it is executed.
