What to tests?
-
Happy path
-
Sad path
-
Valid input
-
Valid edge cases (0, -1, empty string, etc.)
-
Broken input (string instead of number, invalid values, too long input, etc.)
-
Extreme load
-
System failure (power failure, network outage, lack of memory, lack of disk, ...)
-
Third-party error or failure - How does your system work if the 3rd party API returns rubbish?