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

More Related Content

What's hot

Code Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCoCode Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCo
Evgeny Mandrikov
 
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
KTH, 케이티하이텔
 

What's hot (20)

Linux network stack
Linux network stackLinux network stack
Linux network stack
 
Problem solving
Problem solvingProblem solving
Problem solving
 
Load Testing with k6 framework
Load Testing with k6 frameworkLoad Testing with k6 framework
Load Testing with k6 framework
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Testes de ponta a ponta
Testes de ponta a pontaTestes de ponta a ponta
Testes de ponta a ponta
 
(DEV310) CI/CD of Services with Mocking & Resiliency Testing Using AWS
(DEV310) CI/CD of Services with Mocking & Resiliency Testing Using AWS(DEV310) CI/CD of Services with Mocking & Resiliency Testing Using AWS
(DEV310) CI/CD of Services with Mocking & Resiliency Testing Using AWS
 
Code Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCoCode Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCo
 
Gauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web RevivedGauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web Revived
 
いまさら聞けないselectあれこれ
いまさら聞けないselectあれこれいまさら聞けないselectあれこれ
いまさら聞けないselectあれこれ
 
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
 
バイナリ解析入門
バイナリ解析入門バイナリ解析入門
バイナリ解析入門
 
gRPC vs REST: let the battle begin!
gRPC vs REST: let the battle begin!gRPC vs REST: let the battle begin!
gRPC vs REST: let the battle begin!
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
 
How shit works: the CPU
How shit works: the CPUHow shit works: the CPU
How shit works: the CPU
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてSECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについて
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JS
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
 

Viewers also liked

Part II. How to automate properly
Part II. How to automate properlyPart II. How to automate properly
Part II. How to automate properly
Þorgeir Ingvarsson
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QAFest
 

Viewers also liked (9)

Amusing Geometry in Test Automation
Amusing Geometry in Test AutomationAmusing Geometry in Test Automation
Amusing Geometry in Test Automation
 
How to write good autotests
How to write good autotestsHow to write good autotests
How to write good autotests
 
Part II. How to automate properly
Part II. How to automate properlyPart II. How to automate properly
Part II. How to automate properly
 
Tao and Test Automation
Tao and Test AutomationTao and Test Automation
Tao and Test Automation
 
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
 
Моделирование угроз для приложений
Моделирование угроз для приложенийМоделирование угроз для приложений
Моделирование угроз для приложений
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
 
Безопасность мобильных приложений. Что тестировать?
Безопасность мобильных приложений. Что тестировать?Безопасность мобильных приложений. Что тестировать?
Безопасность мобильных приложений. Что тестировать?
 
Priority Inversion on Mars
Priority Inversion on MarsPriority Inversion on Mars
Priority Inversion on Mars
 

More from Þorgeir Ingvarsson

Pros and Cons of Being an Automation Specialist
Pros and Cons of Being an Automation SpecialistPros and Cons of Being an Automation Specialist
Pros and Cons of Being an Automation Specialist
Þorgeir Ingvarsson
 
How to Put Automation Engineers Down
How to Put Automation Engineers DownHow to Put Automation Engineers Down
How to Put Automation Engineers Down
Þorgeir Ingvarsson
 
Basics of assertions in automated testing
Basics of assertions in automated testingBasics of assertions in automated testing
Basics of assertions in automated testing
Þorgeir Ingvarsson
 
UI Automation Patterns: "Sleep" Pattern
UI Automation Patterns: "Sleep" PatternUI Automation Patterns: "Sleep" Pattern
UI Automation Patterns: "Sleep" Pattern
Þorgeir Ingvarsson
 
Part I. How to stop fooling around and begin automating
Part I. How to stop fooling around and begin automatingPart I. How to stop fooling around and begin automating
Part I. How to stop fooling around and begin automating
Þorgeir Ingvarsson
 
Part III. How to maximize profit from automation
Part III. How to maximize profit from automationPart III. How to maximize profit from automation
Part III. How to maximize profit from automation
Þorgeir Ingvarsson
 

More from Þorgeir Ingvarsson (6)

Pros and Cons of Being an Automation Specialist
Pros and Cons of Being an Automation SpecialistPros and Cons of Being an Automation Specialist
Pros and Cons of Being an Automation Specialist
 
How to Put Automation Engineers Down
How to Put Automation Engineers DownHow to Put Automation Engineers Down
How to Put Automation Engineers Down
 
Basics of assertions in automated testing
Basics of assertions in automated testingBasics of assertions in automated testing
Basics of assertions in automated testing
 
UI Automation Patterns: "Sleep" Pattern
UI Automation Patterns: "Sleep" PatternUI Automation Patterns: "Sleep" Pattern
UI Automation Patterns: "Sleep" Pattern
 
Part I. How to stop fooling around and begin automating
Part I. How to stop fooling around and begin automatingPart I. How to stop fooling around and begin automating
Part I. How to stop fooling around and begin automating
 
Part III. How to maximize profit from automation
Part III. How to maximize profit from automationPart III. How to maximize profit from automation
Part III. How to maximize profit from automation
 

Recently uploaded

2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 

Recently uploaded (9)

2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 

The Dangers of Cucumber

  • 1.
  • 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. ЛЕММА КАПИТАНА ХАОСА Позволим себе скромно сформулировать следующую лемму: ОГУРЦЫ СЛЕДУЕТ УПОТРЕБЛЯТЬ ТОЛЬКО В ПИЩУ. ДЛЯ ВСЕГО ОСТАЛЬНОГО ЕСТЬ СООТВЕТСТВУЮЩИЕ ИНСТРУМЕНТЫ.