title: How do you decide what to test in your test suites?
body: <p>I'm an intern working on a project that has the potential to introduce a lot of bugs at a company with an extremely large code base. Currently the company has no automated testing implemented for any of their projects, so I want to begin writing tests for the code as I go so that I can tell when I break something, but I have a hard time developing an intuition for what is worth testing and how to test it. Some things are more obvious than others: testing string manipulation functions isn't too tough, but what to write for a multithreaded custom memory manager is trickier.</p>
  
  <p>How do <em>you</em> go about designing tests for an existing codebase and what do you test for? How do you figure out what underlying assumptions the code is making?</p>