Здравствуйте, netch80, Вы писали:
N>Здравствуйте, gandjustas, Вы писали:
G>>>> И уж точно не говорит о том что их нельзя покрывать тестами. N>>>Этого я и не говорю. Но уровень затрат ресурсов на покрытие тестами может и часто должен меняться в зависимости от того, насколько стабилизировались внешние условия и представления об основах реализации. Нет смысла плотно покрывать тестами то, что может завтра быть вынесено к лешим. G>>Именно, но ведь не любой код одинаково подвержен изменениям? Или ты вообще не можешь сказать насколько подвержена изменениям тот или иной модуль?
N>Заранее — нет. Требования постоянно уточняются и изменяются. Предсказать необходимое даже на год может быть достаточно тяжело, на большее время — практически невозможно. С каждой новой установкой мы получаем какие-то новые требования, под которые надо адаптироваться.
Так не бывает. В такой ситуации просто невозможно что-то спланировать. Если же рассмотреть рельный случай. Делается 3d игра, для нее пишется движок, она станет 2d? Нет. Алгоритм пересечения луча с плоскостью изменится? Тоже нет.
G>>>> Я например прекрасно вижу преимущества unit-тестов в виде формально проверяемых спецификаций, а также как регрессионное тестирование. N>>>Регрессионное — да. Формально проверяемая спецификация — нет. Для этого нужна верификация, а не тестирование. G>>Если язык позволяет статически верифицировать то да, а иначе только тестами. Других способов доказать что код соотвествует спецификации просто нет.
N>Ошибка в слове "доказать". Никакими тестами ты не можешь это _доказать_, можешь лишь обещать какую-то вероятность или меру корректности. Она может быть и 99.999%, но не 100%.
Почему это? Если покрываются все варианты использования, то чем это не доказательство?
Whitebox тестирование может покрыть все варианты использования.
Или ты не писал никогда таких тестов?
N>Тем не менее тесты нужны, потому что практически они действуют достаточно хорошо.
Конкретизируй понятие "хорошо" что ли.
G>>Я привел доводы когда можно использовать unit-тесты. Доводы соответствуют опыту. Не согласны — никто же не заставляет вас использовать unit-тест. G>>Своих же доводов вы не приводите. Это отчасти и подталкивает к мысли что вы не видите ценности тестов.
N>Повторюсь, что я их постоянно привожу. Только особенности Вашего восприятия не позволяют это увидеть.
Ага, вроде "тесты это хорошо".
N>А "доводы, когда можно использовать unit-test" мне не нужны. Я их и сам напишу толпами. N>Мне были бы полезны доводы, когда их реально _нужно_ использовать. Пока что с этим плохо, в основном есть две позиции — "они нахер не нужны" и "покрывайте тестами всё".
Любая программа может быть написана без тестов, поэтому необходимости в них нет. Есть примеры когда разные типы тестов дают положительный эффект. Я их привожу, а ты с чем-то споришь.