| Unit Test |
Mandatory |
A test that tests the smallest possible unit of code |
Almost every method or function should have a suitable number of unit tests |
| Interaction Test |
Mandatory |
A test that tests the interaction of units of code. Typically this uses mocks or stubs |
Any code that interacts with multiple objects should have a suitable number of these |
| Interface or Law tests |
Recommended |
A test that defines the semantics of an interface. |
If we use a type class or interface that has more than a single method, we should consider making a law test. |
| Property based tests |
Optional |
Here is a good summary. It’s in scala, but the ideas are applicable to any language |
Experiment for yourself and see if you find value from them |
| Isolated Performance testing |
Recommended |
|
|
| Security scanning |
Project specific |
|
|
| Functional testing |
Recommended |
|
|
| Exploratory testing |
Mandatory |
|
|