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

Aviation basic aviation history one perspective for Air Force Cadets
Aviation basic   aviation history one perspective for Air Force CadetsAviation basic   aviation history one perspective for Air Force Cadets
Aviation basic aviation history one perspective for Air Force Cadetsoldcramo2009
 
The OWASP Zed Attack Proxy
The OWASP Zed Attack ProxyThe OWASP Zed Attack Proxy
The OWASP Zed Attack ProxyAditya Gupta
 
Dynamic Security Analysis & Static Security Analysis for Android Apps.
Dynamic Security Analysis & Static Security Analysis for Android Apps.Dynamic Security Analysis & Static Security Analysis for Android Apps.
Dynamic Security Analysis & Static Security Analysis for Android Apps.VodqaBLR
 
Configuration Surgery with Augeas
Configuration Surgery with AugeasConfiguration Surgery with Augeas
Configuration Surgery with AugeasPuppet
 
Causes of Airplane Accidents
Causes of Airplane AccidentsCauses of Airplane Accidents
Causes of Airplane Accidentsdorismmahoney
 
Modern Static Site with GatsbyJS
Modern Static Site with GatsbyJSModern Static Site with GatsbyJS
Modern Static Site with GatsbyJSRiza Fahmi
 
Secrets of Google VRP by: Krzysztof Kotowicz, Google Security Team
Secrets of Google VRP by: Krzysztof Kotowicz, Google Security TeamSecrets of Google VRP by: Krzysztof Kotowicz, Google Security Team
Secrets of Google VRP by: Krzysztof Kotowicz, Google Security TeamOWASP Delhi
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appiumAmbreen Khan
 
Qpw170 pgt m ed-01 b737-458 mel[1]
Qpw170 pgt m ed-01  b737-458 mel[1]Qpw170 pgt m ed-01  b737-458 mel[1]
Qpw170 pgt m ed-01 b737-458 mel[1]Thi Ha
 
La historia del Mouse
La historia del MouseLa historia del Mouse
La historia del MouseCarlos CR
 
Cryptography for Absolute Beginners (May 2019)
Cryptography for Absolute Beginners (May 2019)Cryptography for Absolute Beginners (May 2019)
Cryptography for Absolute Beginners (May 2019)Svetlin Nakov
 
Injecting Security into vulnerable web apps at Runtime
Injecting Security into vulnerable web apps at RuntimeInjecting Security into vulnerable web apps at Runtime
Injecting Security into vulnerable web apps at RuntimeAjin Abraham
 
Crafting the Discovery Phase: Starting Design Projects Right
Crafting the Discovery Phase: Starting Design Projects RightCrafting the Discovery Phase: Starting Design Projects Right
Crafting the Discovery Phase: Starting Design Projects RightDan Brown
 
Payload safety and related human factors
Payload safety and related human factorsPayload safety and related human factors
Payload safety and related human factorsLahiru Dilshan
 
Practical Malware Analysis Ch13
Practical Malware Analysis Ch13Practical Malware Analysis Ch13
Practical Malware Analysis Ch13Sam Bowne
 

What's hot (20)

1 Dangerous goodsfinal2.doc
1 Dangerous goodsfinal2.doc1 Dangerous goodsfinal2.doc
1 Dangerous goodsfinal2.doc
 
Bloco ii
Bloco iiBloco ii
Bloco ii
 
Owasp zap
Owasp zapOwasp zap
Owasp zap
 
Aviation basic aviation history one perspective for Air Force Cadets
Aviation basic   aviation history one perspective for Air Force CadetsAviation basic   aviation history one perspective for Air Force Cadets
Aviation basic aviation history one perspective for Air Force Cadets
 
The OWASP Zed Attack Proxy
The OWASP Zed Attack ProxyThe OWASP Zed Attack Proxy
The OWASP Zed Attack Proxy
 
Dynamic Security Analysis & Static Security Analysis for Android Apps.
Dynamic Security Analysis & Static Security Analysis for Android Apps.Dynamic Security Analysis & Static Security Analysis for Android Apps.
Dynamic Security Analysis & Static Security Analysis for Android Apps.
 
Configuration Surgery with Augeas
Configuration Surgery with AugeasConfiguration Surgery with Augeas
Configuration Surgery with Augeas
 
Causes of Airplane Accidents
Causes of Airplane AccidentsCauses of Airplane Accidents
Causes of Airplane Accidents
 
Modern Static Site with GatsbyJS
Modern Static Site with GatsbyJSModern Static Site with GatsbyJS
Modern Static Site with GatsbyJS
 
Secrets of Google VRP by: Krzysztof Kotowicz, Google Security Team
Secrets of Google VRP by: Krzysztof Kotowicz, Google Security TeamSecrets of Google VRP by: Krzysztof Kotowicz, Google Security Team
Secrets of Google VRP by: Krzysztof Kotowicz, Google Security Team
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
 
Qpw170 pgt m ed-01 b737-458 mel[1]
Qpw170 pgt m ed-01  b737-458 mel[1]Qpw170 pgt m ed-01  b737-458 mel[1]
Qpw170 pgt m ed-01 b737-458 mel[1]
 
Progressive Web Apps are here!
Progressive Web Apps are here!Progressive Web Apps are here!
Progressive Web Apps are here!
 
.NET6.pptx
.NET6.pptx.NET6.pptx
.NET6.pptx
 
La historia del Mouse
La historia del MouseLa historia del Mouse
La historia del Mouse
 
Cryptography for Absolute Beginners (May 2019)
Cryptography for Absolute Beginners (May 2019)Cryptography for Absolute Beginners (May 2019)
Cryptography for Absolute Beginners (May 2019)
 
Injecting Security into vulnerable web apps at Runtime
Injecting Security into vulnerable web apps at RuntimeInjecting Security into vulnerable web apps at Runtime
Injecting Security into vulnerable web apps at Runtime
 
Crafting the Discovery Phase: Starting Design Projects Right
Crafting the Discovery Phase: Starting Design Projects RightCrafting the Discovery Phase: Starting Design Projects Right
Crafting the Discovery Phase: Starting Design Projects Right
 
Payload safety and related human factors
Payload safety and related human factorsPayload safety and related human factors
Payload safety and related human factors
 
Practical Malware Analysis Ch13
Practical Malware Analysis Ch13Practical Malware Analysis Ch13
Practical Malware Analysis Ch13
 

Viewers also liked

Amusing Geometry in Test Automation
Amusing Geometry in Test AutomationAmusing Geometry in Test Automation
Amusing Geometry in Test AutomationÞorgeir Ingvarsson
 
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
 
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииDeutsche Post
 
Моделирование угроз для приложений
Моделирование угроз для приложенийМоделирование угроз для приложений
Моделирование угроз для приложенийSQALab
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QAFest
 
Безопасность мобильных приложений. Что тестировать?
Безопасность мобильных приложений. Что тестировать?Безопасность мобильных приложений. Что тестировать?
Безопасность мобильных приложений. Что тестировать?SQALab
 

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 Calculate Test Automation ROI
How to Calculate Test Automation ROIHow to Calculate Test Automation ROI
How to Calculate Test Automation ROIÞ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 (7)

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 Calculate Test Automation ROI
How to Calculate Test Automation ROIHow to Calculate Test Automation ROI
How to Calculate Test Automation ROI
 
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 (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
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ 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...
 
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
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [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
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [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
 
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
 
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. ЛЕММА КАПИТАНА ХАОСА Позволим себе скромно сформулировать следующую лемму: ОГУРЦЫ СЛЕДУЕТ УПОТРЕБЛЯТЬ ТОЛЬКО В ПИЩУ. ДЛЯ ВСЕГО ОСТАЛЬНОГО ЕСТЬ СООТВЕТСТВУЮЩИЕ ИНСТРУМЕНТЫ.