* Difficult areas to test, because behavior is dependant upon environment.
10. Testing a virgin codebase
* You will refactor code as you write tests
11. Successful strategies
* Require unit tests for all code going forward
* Reserve time to clear out test debt
* Good for new team members
* Establish a good foundation to build on
* One in the code that broke
* One is the test that would/will catch the bug
* Fixtures, mocks, ObjectCreator
13. Should I get test data from cache?
* No. Adds unnecessary complexity to unit tests.
* If tests only succeed with certain caches, probably some code that can be refactored.
14. Graceful code degredation
* Devs need to think outside their dev instance
* Service unavailable shouldn't mean your site is unavailable
* If failure is catastrophic, you should know **how** and **why** it happened.
* Code should not be written in such a way that it won't work (at least in some fashion) if certain services or infrastructers are missing/different.
* Staging should be identical to production.
* Run Solr or RabbitMQ on staging, but not dev.
* Don't overdo it on logging.