Тестирование с актуальными, реалистичными данными с самого начала. И тестирование необходимо не только во время написания кода, но оно должно начинаться на ранней стадии разработки. Узнайте, какими будут ваши худшие варианты использования, и убедитесь, что ваш дизайн справится с этим. Если ваш дизайн выглядит хорошо и элегантно, даже несмотря на эти случаи использования, он может быть действительно хорошим.
Автоматические тесты отлично подходят для проверки правильности написанного вами кода. Однако, прежде чем приступить к написанию кода, вы должны убедиться, что вы строите правильные вещи.