2. ПРЕАМБУЛА
Всем известна бородатая шутка из «Журнала
невоспроизводимых результатов» о том, сколь
вредны огурцы: «среди людей, родившихся в 1839 г. и
питавшихся впоследствии огурцами, смертность
равна 100%», «99,9% всех людей, умерших от рака, при
жизни ели огурцы» и т.д. и т.п.
Так вот, данная презентация вообще не об
этом. Какие к черту шутки?! Умирают люди!
3. ЭЙНШТЕЙН И АВТОМАТИЗАЦИЯ
Работая над своей общей
теорией фреймворков
автоматизации
тестирования, Эйнштейн
якобы сказал: «Две вещи
бесконечны: Вселенная и
человеческая глупость; и
насчет Вселенной я не
уверен».
4. СЛЕДСТВИЕ КАПИТАНА ХАОСА
Мы не знаем, кто в действительности является автором
этого, безусловно, справедливого, наблюдения.
Тем не менее, возьмем на себя смелость
сформулировать так называемое следствие Капитана
Хаоса:
ЕСЛИ ВЫ СТРЕМИТЕСЬ К ТОМУ, ЧТОБЫ ВАШИМ
ФРЕЙМВОРКОМ МОГЛИ ПОЛЬЗОВАТЬСЯ ДАЖЕ
ДЕБИЛЫ, ИМЕННО ОНИ ИМ И БУДУТ ПОЛЬЗОВАТЬСЯ.
6. ИТАК, CUCUMBER
Вся низость и коварство этого инструмента проявляется в том,
что на бумаге все выглядит охуенно.
• Бизнес-аналитики, не напрягаясь, описывают желаемые фичи
на человеческом языке;
• Счастливые разработчики тут же запускают полученные
сценарии и, убедившись, что ничего не работает, пишут
тестовый код;
• Покончив с этим, усталые и довольные разработчики
добавляют в продуктовый код парочку констант и
захардкоданных магических чисел, чтобы тесты стали
зелеными;
• Cucumber генерирует аккуратные отчеты во всевозможных
форматах, взглянув на которые, начальство тут же повышает
всем зарплаты и уезжает на месяц играть в гольф;
• После чего вся команда резвится на залитом солнцем лугу,
играя с котятами, щенками и утятами.
7. ГДЕ ПОДВОХ?
Что же происходит в реальности?
• Бизнес-аналитики чхать хотели на какие-то там
Cucumber-сценарии. «Мы наняли команду
автоматизаторов, вот они пускай и пишут тесты»;
• Матерясь и наступая на все возможные грабли,
разработчики и автоматизаторы пишут сценарии и
степы к ним, которые потом все равно никто не читает;
• По мере того, как в команде сменяются кадры, общая
архитектура тестового фреймворка асимптотически
стремится к модели Big ball of mud.
9. К ЧЕМУ ВСЕ ЭТО ВЕДЕТ?
• «Так, напишем с десяток сценариев про нашу фичу. Да это же
настоящая живая документация! Ништяк!»
• «Ну вот, автоматические acceptance-тесты у нас есть. Но надо
бы нахуячить и всяких там еще других. Зачем выбирать какой-
то другой инструмент, ведь есть же Cucumber? Что плохого,
если начальство и прочие двоечники смогут читать наши
интеграционные тесты? Ничего плохого, погнали!»
• «End-to-end-сценарии? Где-то мы уже слышали это слово
«сценарий». Cucumber спешит на помощь! Да и опять же,
начальство сможет почитать. Ну, если захочет, конечно…»
И вот у вас уже полноразмерная автоматическая сюита на
Cucumber’е, покрывающая решительно все, что только есть в
вашем приложении.
10. ГДЕ ПОДВОХ?
Вся печаль ситуации заключается в том, что Cucumber в
принципе не предназначен для тестирования. Он
вообще непонятно для чего предназначен: для решения
какой-то полумифической проблемы коммуникации,
которой в большинстве команд просто нет, либо она
успешно решается другими, менее хипстерскими
способами.
Не верите мне, так послушайте хотя бы дядю Аслака.
11. ВОНМИ АСЛАКУ
«Не вздумай тестировать с помощью Cucumber», как бы говорит нам Аслак.
12. ЛЕММА КАПИТАНА ХАОСА
Позволим себе скромно сформулировать следующую
лемму:
ОГУРЦЫ СЛЕДУЕТ УПОТРЕБЛЯТЬ
ТОЛЬКО В ПИЩУ.
ДЛЯ ВСЕГО ОСТАЛЬНОГО ЕСТЬ
СООТВЕТСТВУЮЩИЕ
ИНСТРУМЕНТЫ.