Does Stack Overflow have automated tests? If yes, what kind of (unit, integration, etc)? How are they organized and used?
What is meta?
- Any Stack Exchange user can ask a question
- The community provides support, votes on ideas, and reports bugs
- Your voice helps shape the way Stack Exchange operates
Jeff has previously stated that certain aspects of the site's code have unit tests, but not very many. He and Joel aren't unit testing's biggest advocates ;)
Due to extensive use of IoC containers the code base for Stackoverflow is extremely testable, the bulk of the tests are written in Cobol and Brainf*ck, a smaller yet significant portion is tested using 42 magic 8 balls, which when shaken in harmony produce magnificent and hypnotizing sounds.
This goes without saying, but IMHO.
Individual reusable components are eminently testable. So much so that they are huge wins, and you'd be a fool not to have tons of unit testing wrapped around them.
Thinks like.. say... our c# markdown processor.
However, almost none of the code that most programmers produce on real world, typical projects is actually reusable in any meaningful way. And writing truly reusable code is about two orders of magnitude harder -- even with unit tests -- than writing typical one-off "just get it done" code. It takes many times the amount of effort to produce the same result if you want to build something that is legitimately reusable.
Related: The "Rule of Three"