-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


TDD vs не TDD

Среда, 02 Сентября 2020 г. 01:01 + в цитатник
D_KEY:
Цитата korvin @
Цитата D_KEY @
Не свидетельствует ли это о хреновой декомпозиции?

Нет, с чего бы?

Ну потому что при нормальной декомпозиции размер системы не должен настолько сильно сказываться.

Цитата
Цитата D_KEY @
Так ты правишь и там и там, просто наличие теста позволит тебе в следующий раз, когда сломаешь, заметить это на более ранней стадии.

На какой более ранней?

На самой ранней из возможных. В идеале, это в юнит-тест добавить. Если не получается, то дальше.
В любом случае, это будет отловлено в процессе CI.

Цитата
Цитата D_KEY @
Встречал. И это всегда были или хреновые тесты или хреновая подсистема или хреновая декомпозиция и кривые связи.

Ага, т.е. к хреновому коду ещё и добавляем хреновые тесты. Больше хрени богу хрени.

Я к тому, что на первый взгляд мне кажется, что TDD показывает проблемы системы. И это хорошо.
А если его применять сначала, то кажется, что многих проблем можно будет избежать.
Но пока не поработаю плотно с этим хотя бы полгодика, не стану ничего утверждать.
Цитата

Цитата D_KEY @
То есть опять же некий признак, что явно идет не так, как хотелось бы

Ага:
— У нас что-то не так
— Давайте использовать TDD
— Теперь у нас что-то не так x10

Не совсем так. Начали использовать TDD, что помогло нам заметить проблемы. Устранили проблемы, стало лучше со многим.

Цитата
Цитата D_KEY @
Ну и почему на это не стоит написать тест?

Потому что этот код полностью корректен.

Корректность кода определяется не самим кодом, а тем, удовлетворяет ли он контрактам, которые от него хотят извне.

Цитата
Цитата D_KEY @
Ты ведь можешь в случае правок учесть не все места, где он используется.

А какое мне дело до того, где он используется? Это независимый юнит, если по каким-то требованиям у него меняется определение, то либо новые требования / новое определение корректны для всех, либо кому-то придётся использовать старую версию или не использовать расшаренный юнит, а писать свою реализацию. Как тут поможет юнит-тест этого кода?

В юнит-тесте должны проверяться контракты юнита, которые декларируются наружу. Соответственно, поправили код, если тесты упали, значит нужно или сохранить совместимость со старыми контрактами или найти и исправить все места, где этот код используется в соответствии с новым контрактом.

Цитата
Цитата D_KEY @
На моем опыте всегда было лучше, когда разрабы продукта писали сами unit-тесты и активно участвовали в разработке автотестов на других уровнях.

На моём опыте — это дичайшая дичь.

Интересно.

Цитата
Цитата D_KEY @
У меня сейчас автотесты "опаздывают" чуть по разработке продукта

Так это не TDD.

Я знаю. Мне кажется, что если бы он применялся с самого начала, было бы лучше.

Цитата
Так это потому что «хреновая подсистема или хреновая декомпозиция и кривые связи».

Да! :D
И я думаю, что многих из этих проблем не было бы при использовании TDD со старта.

https://forum.sources.ru/index.php?showtopic=419507&view=findpost&p=3838080

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку