Разработка через тестирование
Однажды кто-то из инженеров-программистов подумал: если я собираюсь написать кучу тестов для этой программы (класса), то почему бы сначала не написать тесты? С тех пор идёт война между сторонниками и противниками этого подхода - что раньше - курица или яйцо (тесты или программы). Война идёт, а подход сохранился и многими используется. Он называется разработка через тестирование (Test-Driven Development, TDD). Лично я, например, при разработке программ для компьютера, никогда почти не пишу тесты - все глюки устраняются по мере обнаружения...