К основному контенту

И снова про юнит-тесты

Интересное мнение о том, зачем нам нужны юнит-тесты.
  • положительно влияют на модульность и дизайн системы
  • это отличный источник спецификации системы
  • позволяют повторно использовать потраченные программистом усилия
  • экономят наше время
А заключение, так вообще как будто я писал :)   Юнит-тесты - это инструмент, его надо правильно использовать, а чтобы это делать - надо учиться. И тут одной теории мало.

Кстати, заметьте. Речь не идет о контроле качества. Успешно пройденные юнит-тесты ничего не доказывают, они просто помогают делать жить проще. А качество приходит само. Чудо! (хмм, как то это не сочетается с названием моего блога...)

Еще хочу заметить, что успех внедрения и использования юнит-тестов очень сильно зависит от используемого языка программирования: например на C++ писать тесты сложнее, чем скажем на Python. И, очень часто, это используется как "уважительная причина", без попыток реального использования (свой опыт). Сейчас у меня второй "заход". Первый, 4 года назад, был признан неудачным, писали на Visual Studio через MS test framework (дергали native код через C++/CLR). Сейчас использую Google C++ test framework. Не идеал, но работает и можно использовать.

Две полезные ссылки на подкасты Кента Бека внутри оригинального поста.

Комментарии

Популярные сообщения из этого блога

Полезные ресурсы для молодых (и не только) тестировщиков

сперто(с) Уже 3 месяца провожу собеседования тестировщиков (март 2016). Поначалу они просто  веселили - после 15-летнего опыта собеседования С++-разработчиков, общение с тестировщиками (чаще были "-цы") было чем-то экзотическим и забавным. Потом становилось все грустнее и грустнее, мимими закончилось. Началась печаль.

Mock vs Stub

Когда мы начали изучать модульное тестирование, то одними из первых терминов, с которыми пришлось познакомиться, стали Mock и Stub. Ниже попробуем порассуждать в чем их сходство и различие, как и для чего они применяются. Проверять работоспособность тестируемого объекта (system under test - SUT) можно двумя способами: оценивая состояние объекта или его поведение. В первом случае проверка правильности работы метода SUT заключается в оценке состояния самого SUT, а также взаимодействующих объектов, после вызова этого метода. Во-втором, мы проверяем набор и порядок действий (вызовов методов взаимодействующих объектов, других методов SUT), которое должен совершить метод SUT. Собственно, если коротко, то в одном случае используется Stub, а в другом Mock. Это объекты, которые создаются и используются взамен реальных объектов, с которым взаимодействует SUT в процессе своей работы. Теперь подробнее. Gerard Meszaros использует термин Test Double (дублер), как обозначение для объе

Заметки на коленке - 3. Что еще делать, если ваши тесты уже "зеленые"?

"Lately I find I'm working on automated tests that return non-binary results. Tests that neither pass nor fail" by  @noahsussman Отличная мысль, которую я ретвитил еще в 2016. Но давайте вместе подумаем, что за этим может скрываться? ( кстати, не знаю, что при этом думал Noah ) Ваши тесты прошли и прошли "успешно". Все хорошо или все же есть, куда еще посмотреть? Дальше то, что использовал я лично и то, что еще можно прикрутить дополнительно. Естественно все шаги ниже должны быть автоматизированны. 1. Контролируйте время выполнения тестов. Если набор проверок не меняется (а такое часто бывает, к сожалению), то рост времени выполнения может говорить о проблемах в продакшен коде (чаще всего) или проблемах с окружением. 2. Контроль за количеством выполняемых тестов. "Все зеленое" не значит, что сегодня выполняли те же Х тестов, что и вчера. Смешно(нет), но случается такое, что какие-то проверки "исчезают" из запуска из-за того, что у кого-то &qu