В групповой ситуации, когда ваш код, вероятно, будет использоваться кем-то другим, тесты имеют дополнительное преимущество, которое может уменьшить количество дефектов без необходимости даже улучшать чей-либо код.
Если документация плохая (что во время разработки "часто"), тесты показывают, как вы ожидаете, что ваш код будет вызываться. Таким образом, даже в тех случаях, когда код действительно очень хрупок, TDD все еще может уменьшить количество дефектов, возникающих в конечном продукте, - благодаря тому, что ваши коллеги могут увидеть хорошо написанные тесты, прежде чем они смогут использовать ваш код, вы они знают, как вы собираетесь использовать ваш код, прежде чем они его вызовут. Таким образом, они с меньшей вероятностью будут вызывать ваш код в неожиданной последовательности / не настроив то, что вы ожидали (но забыли написать проверку) в качестве предварительного условия. Таким образом, они с меньшей вероятностью вызовут состояние сбоя, и вы с меньшей вероятностью увидите, что они или (человеческая) группа тестирования выявляют дефект, потому что что-то сломалось.
Конечно, видите ли вы, что "там есть скрытая ошибка, она просто еще не вызывается", поскольку сама проблема - еще один хороший вопрос.