What every developer should know about testing – part 1
hartsock.blogspot.com
hartsock.blogspot.com
This means thinking of yourself as the user and optimizing for your needs (avoiding repetitive tasks, minimizing bugs in your project). It means sometimes creating interfaces for creating new tests, like how admin pages are nice interfaces for SQL queries. Conversely, it also means things like not writing overly fine-grained tests in the name of test coverage (this would be like if your admin page had two separate tools for "change user first name" and "change user last name").