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?