All code

Type of test Required Definition When it should be used
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    

For APIs

Type of test Required Definition When it should be used
Pact consumer testing Mandatory    
Pact producer testing Mandatory    
Penetration testing Mandatory    
Full Performance testing Mandatory    
Smoke testing Recommended    

For web components

Type of test Required Definition When it should be used
Pact consumer testing Mandatory    
Browser Compatability testing Mandatory    

For websites

Type of test Required Definition When it should be used
Pact consumer testing Mandatory    
Browser compatibility testing Mandatory These are functional tests that executed on lots of different browser.  
Full Performance testing Mandatory    
Penetration testing Mandatory    
Smoke testing Recommended