Хочу поделиться своими последними наблюдениями об эффективности TDD.
Наверное, не секрет, что я сейчас готовлю 3.0.2 (которой на самом деле не будет
), в которой изменения происходят в самом ядре.
Поэтому в теории может произойти все, что угодно, как в плане общей стабильности, так и в плане глубоких нарушений работоспособности отдельных модулей и механизмов.
Разумеется, это как раз тот самый случай, когда тесты могут помочь и их наличие крайне желательно.
К счастью, у нас есть набор тестов и я решаю его задействовать.
Как вы думаете,
какой процент ошибок найден с помощью автоматизированного тестов?
...
Здесь стоило бы взять паузу и собрать ставки.
Но да ладно, обойдемся пока без розыгрыша призов.
...
Ровно 1 (одна) ошибка типа "проваливание в операторе switch", привнесенную еще (очевидно) Deb'ом в файле CreateMetaInfoClasses.cpp 100% не позднее , чем 12 июля 2004 года.
Надо ли говорить, что этот забытый break; ровным счетом ничего не решает.
Остальные проблемы (коих было немало) отфильтрованы на входе путем логических заключений и путем проверки гипотез.
Несколько оставшихся проблем отфильтрованы на выходе коллективным тестированием и обсуждением.
Вообще, результаты веселые, но показательные.
Коллективный разум рулит, логика решает, тесты обещают, но не дают.
И тем не менее, мы их любим.
Так и живем.