Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The Dangers of Cucumber

31,627 views

Published on

Published in: Technology

The Dangers of Cucumber

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

×