Сам комментарий был тут - http://programmingmindstream.blogspot.ru/2013/11/tdd_28.html?showComment=1386063749826#c6337489882377572276
ОЧЕНЬ ПРАВИЛЬНЫЙ и НУЖНЫЙ комментарий. О МНОГОМ заставляет задуматься.
Вот мой ответ:
"Роман, ты ВО МНОГОМ ПРАВ!
Ты даже заставил меня ПО ИНОМУ взглянуть на процесс разработки и тестирования.
СПАСИБО!
Пред-условий и пост-условия - это - КРУТО!
И они - ВАЖНЫ и РАБОТАЮТ.
И я ими - ПОЛЬЗУЮСЬ. Хотя я смотрел на них "несколько иначе".
Но они НЕ ЗАМЕНЯЮТ тестов.
Скажу так - пред-условие и пост-условие - это КОНТРАКТ. А ТЕСТ - это "точка входа" для проверки контракта.
БЕЗ "точки входа" КОНТРАКТ может оказаться НЕ ПРОВЕРЕННЫМ.
Ну ведь не на "реальных же пользователях тестировать".
Если "не донёс" - могу развить тему. Если интересно."
Ремарка. "Покрытие" пред-условий и пост-условий - КТО может гарантировать, если не тесты?
Нужен какой-то "запускатор" проверки пред- и пост-условий. Понятно о чём я?
Ещё раз повторюсь. Про "TDD ведёт" и "TDD обеспечивает ИНФРАСТРУКТУРУ разработки".
Пишем ФУНКЦИЮ. Пишем в ней ПРАВИЛЬНЫЕ и ДОСТАТОЧНЫЕ пред- и пост-условия.
Где эта функция будет вызвана?
В "контексте большого проекта"...
Ответ - "да хрен её знает где"....
Пишем тест.
ОТДЕЛЬНОСТОЯЩИЙ.
Делаем mock'и или "эталоны".
Запускаем ТЕСТ или ТЕСТЫ.
Всё! Вуаля.
Вот и ответ - "где эта функция будет вызвана". С её ПРАВИЛЬНЫМИ и ДОСТАТОЧНЫМИ пред- и пост-условиями.
Где?
Да вот В ТЕСТЕ и БУДЕТ вызвана.
И не надо ждать пока она "вызовется" в "большом проекте" или когда "пользователь вызовет её".
Мысль понятна?
"TDD - обеспечивает ИНФРАСТРУКТУРУ разработки".
Мысль понятна?
P.S. Ещё мне кажется, что не все "вкурили" смысл "атомарных тестов".
Когда проверяется "очевидное" что-то вроде:
Или:
"Атомарные тесты" - это РЕАЛЬНО КРУТО... Поверьте мне "на слово"...
ОЧЕНЬ ПРАВИЛЬНЫЙ и НУЖНЫЙ комментарий. О МНОГОМ заставляет задуматься.
Вот мой ответ:
"Роман, ты ВО МНОГОМ ПРАВ!
Ты даже заставил меня ПО ИНОМУ взглянуть на процесс разработки и тестирования.
СПАСИБО!
Пред-условий и пост-условия - это - КРУТО!
И они - ВАЖНЫ и РАБОТАЮТ.
И я ими - ПОЛЬЗУЮСЬ. Хотя я смотрел на них "несколько иначе".
Но они НЕ ЗАМЕНЯЮТ тестов.
Скажу так - пред-условие и пост-условие - это КОНТРАКТ. А ТЕСТ - это "точка входа" для проверки контракта.
БЕЗ "точки входа" КОНТРАКТ может оказаться НЕ ПРОВЕРЕННЫМ.
Ну ведь не на "реальных же пользователях тестировать".
Если "не донёс" - могу развить тему. Если интересно."
Ремарка. "Покрытие" пред-условий и пост-условий - КТО может гарантировать, если не тесты?
Нужен какой-то "запускатор" проверки пред- и пост-условий. Понятно о чём я?
Ещё раз повторюсь. Про "TDD ведёт" и "TDD обеспечивает ИНФРАСТРУКТУРУ разработки".
Пишем ФУНКЦИЮ. Пишем в ней ПРАВИЛЬНЫЕ и ДОСТАТОЧНЫЕ пред- и пост-условия.
Где эта функция будет вызвана?
В "контексте большого проекта"...
Ответ - "да хрен её знает где"....
Пишем тест.
ОТДЕЛЬНОСТОЯЩИЙ.
Делаем mock'и или "эталоны".
Запускаем ТЕСТ или ТЕСТЫ.
Всё! Вуаля.
Вот и ответ - "где эта функция будет вызвана". С её ПРАВИЛЬНЫМИ и ДОСТАТОЧНЫМИ пред- и пост-условиями.
Где?
Да вот В ТЕСТЕ и БУДЕТ вызвана.
И не надо ждать пока она "вызовется" в "большом проекте" или когда "пользователь вызовет её".
Мысль понятна?
"TDD - обеспечивает ИНФРАСТРУКТУРУ разработки".
Мысль понятна?
P.S. Ещё мне кажется, что не все "вкурили" смысл "атомарных тестов".
Когда проверяется "очевидное" что-то вроде:
List.Insert(1, SomeValue); Assert(List.Item[1] = SomeValue);
Или:
l_Count := List.Count; List.Delete(SomeIndex); Assert(List.Count == l_Count - 1);
"Атомарные тесты" - это РЕАЛЬНО КРУТО... Поверьте мне "на слово"...
Комментариев нет:
Отправить комментарий