Здравствуйте, Гест, Вы писали:
EP>>Даже при 100% покрытии строчек кода тестами, нет гарантии отсутствия ошибок которые могли бы быть отловлены в статически типизированных языках во время компиляции. EP>>Чтобы такую гарантию получить в динамически типизированных языках — нужно делать тесты на все комбинации возможных ветвей исполнения, что во-первых практически нереально, а во-вторых даже доказательство того что покрыты все комбинации ветвей — сама по себе нетривиальная задача (и по-всей видимости неразрешимая). Г>Это неверно.
Это верно для общего случая.
Г>Скажем, тот код, который я привёл в прошлом сообщении, упадёт, будучи неверно написан, не «в одной из веток, до которой исполнение может быть и не доберётся, если не покрыть её тестами», а при любой загрузке всего кода.
Примитивные случаи — да, может отловить первый попавшийся тест. А в общем случае даже 100% покрытие по строчкам кода не поможет.
Г>Впрочем, для нового витка вечного флейма «статика vs динамика» я что-то староват уже, кажется.
Не надо флейма, главное не опускать существенные детали — мол "тесты всё отловят".