Operating Systems have to handle an open-ended number of bad system-calls without crashing.


  • Generate random bytes
  • Turn off system-level exception handling
  • Run the system using the random bytes as input to system calls
  • If it crashes, harden the code to handle it

Trust Boundaries

  • These are the interfaces where the user of the code enters input and you have to trust them to enter valid input.
  • Trust Boundaries have to be tested with as many inputs outside the domain as possible
From Udacity's Software Testing course Unit 1.