Как стать автором
Обновить
7
0
Андрей Коломенский @onedev_link

Founder, Executive Partner at LeadStartup

Отправить сообщение
Как правило, в современной промышленной разработке теоретическое доказательство верности программ (а) практически невозможно и (б) не требуется.


Что такое «теоретическое доказательство верности программ»?

В условиях, когда каждый тест перепроверяет функцию целиком, без знания о ее зависимостях и внутреннем устройстве, тест действительно сообщает, работает ли данная функция.


… и это действительно очень плохо.

Однако, напоминаю, мы имеем дело с тестированием черного ящика, а значит, мы не знаем, будет ли использована функция is_german_letter. Но это знание играет решающую роль в выборе наборов входных данных, о которых говорилось выше.


Почему у вас входные данные зависят от реализации метода, а не наоборот? Почему имеет значение какой метод был вызван для получения ожидаемого тестом результата?

1. Ненаписанную функцию можно тестировать только как черный ящик
2. Ненаписанную функцию не стоит тестировать как черный ящик


Я вижу тут или противоречие, или «аргумент» против TDD.

Но при тестировании методом черного ящика, игнорируя возможное наличие классов эквивалентности, никаким нормальным образом выбрать эти примеры вы не сможете — их будет или слишком много, и будет делаться лишняя работа, или слишком мало, и тестирование будет не закончено.


Нормальным образом можно это зафиксировать написав все тесты строго до реализации.
Почему бы и нет? То что в Rocket Science ещё не применялся Agile, это не значит что там он работать не будет.
Спасибо, исправил свою опечатку. В будущем, пожалуйста, отправляйте подобные сообщения мне в личку.
2

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность