SlideShare una empresa de Scribd logo
1 de 24
BDD на Java при помощи
  Selenium UI тестов
         Май 2012
     Алексей Резчиков



                        AUTOMATED-
                        TESTING.INFO
Обо мне
    • Java разработчик и тимлид
    с более чем 10-летним стажем

    • Евангелист автоматизированного
    тестирования уже более 4-х лет

    • Энтузиаст XP/Agile/Lean

    • Успел «понюхать порох» вместе с eBay и HP


2                                                 AUTOMATED-
                                                  TESTING.INFO
План
    •   В чем польза BDD?
    •   BDD + Selenium : как это работает вместе?
    •   Практика (live coding)
    •   Альтернативы
    •   Критика подхода
    •   Выводы



3                                         AUTOMATED-
                                          TESTING.INFO
Все началось с XP




4                       AUTOMATED-
                        TESTING.INFO
Потом придумали TDD




5                         AUTOMATED-
                          TESTING.INFO
Суть TDD




6              AUTOMATED-
               TESTING.INFO
TDD это прекрасно, но…




    Кто будет думать о качестве?
7                            AUTOMATED-
                             TESTING.INFO
Что ИМЕННО дает TDD?
    A 2005 study found that using TDD meant
    writing more tests and, in turn, programmers
    who wrote more tests tended to be more
    productive. Hypotheses relating to code
    quality and a more direct correlation between
    TDD and productivity were inconclusive.
    Wikipedia


8                                         AUTOMATED-
                                          TESTING.INFO
Что ИМЕННО дает TDD?
    Test-driven development offers more than just
    simple validation of correctness, but can also
    drive the design of a program
    Wikipedia




9                                         AUTOMATED-
                                          TESTING.INFO
Попытка исправить TDD – ATDD




10                          AUTOMATED-
                            TESTING.INFO
Попытка исправить TDD – ATDD
     Acceptance Test Driven Development (ATDD)
     is a practice in which the whole team
     collaboratively discusses acceptance criteria,
     with examples, and then distills them into a
     set of concrete acceptance tests before
     development begins.
       http://testobsessed.com/blog/2008/12/08/acceptance-test-driven-development-
                                                                  atdd-an-overview/




11                                                                   AUTOMATED-
                                                                     TESTING.INFO
Попытка исправить TDD – ATDD
     Acceptance TDD helps coordinate software
     projects in a way that helps us deliver exactly
     what the customer wants when they want it,
     and that doesn’t let us implement the required
     functionality only half way.
                 http://www.methodsandtools.com/archive/archive.php?id=72




12                                                         AUTOMATED-
                                                           TESTING.INFO
Что же такое BDD?
     • At the heart of BDD is a rethinking of the
       approach to unit testing and acceptance
       testing: unit test names are whole sentences
       starting with the word "should" and they are
       written in order of business value.
     • BDD encourages collaboration among
       developers, QA and non-technical or business
       participants in a software project. It has
       evolved over the last few years.
     Wikipedia

13                                           AUTOMATED-
                                             TESTING.INFO
Магия слов: GWT




14                     AUTOMATED-
                       TESTING.INFO
BDD + Selenium
     Concordion is an open source tool for writing
     automated acceptance tests in Java*
                  * There are also versions for .NET, Python, Scala, and Ruby.




15                                                             AUTOMATED-
                                                               TESTING.INFO
How it works?

      Concordion
                     WebDriver     Browser
      Test Runner


     TestNG/JUnit
                    PageObject
         test


      Concordion    TestNG/JUnit
       test spec    test methods

16                                   AUTOMATED-
                                     TESTING.INFO
Практика
     Пример тестирования сайта




17                               AUTOMATED-
                                 TESTING.INFO
Альтернативы: платформа
     Стоит быть прагматичными –
     не стоит добавлять Java в проекты где ее
     нет.




18                                      AUTOMATED-
                                        TESTING.INFO
Альтернативы: BDD фреймворк
     • Cucumber
     • JBehave
     • easyB
     …




19                          AUTOMATED-
                            TESTING.INFO
Альтернативы: UI тесты
        не Selenium’ом единым




20                              AUTOMATED-
                                TESTING.INFO
Критика подхода
     • BDD может быть не нужен, достаточно
       ATDD
     • часто разумней заменить UI тесты более
       низкоуровневыми




21                                      AUTOMATED-
                                        TESTING.INFO
Выводы




22            AUTOMATED-
              TESTING.INFO
А если серьезно
     • BDD незаменим в проектах, где
       необходима тесная связь бизнеса с
       командой разработки
     • BDD имеет свою четкую область
       применения
     • внедрение BDD это комплексный процесс
     • успешная команда работает на качество
       вместе

23                                    AUTOMATED-
                                      TESTING.INFO
Вопросы
               @twincengray



                   alex.mcgray@gmail.com



                      http://mcgray.com.ua

24                                AUTOMATED-
                                  TESTING.INFO

Más contenido relacionado

La actualidad más candente

Тестирование весна 2013 лекция 1
Тестирование весна 2013 лекция 1Тестирование весна 2013 лекция 1
Тестирование весна 2013 лекция 1
Technopark
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
Badoo Development
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
it-people
 
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
RIF-Technology
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET Applications
Anton Vidishchev
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
Technopark
 

La actualidad más candente (20)

Оценка методологии автоматизации - MBT
Оценка методологии автоматизации - MBTОценка методологии автоматизации - MBT
Оценка методологии автоматизации - MBT
 
Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?
 
Тестирование весна 2013 лекция 1
Тестирование весна 2013 лекция 1Тестирование весна 2013 лекция 1
Тестирование весна 2013 лекция 1
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
 
«Особенности Agile-разработки интернет-проектов»
«Особенности Agile-разработки интернет-проектов»«Особенности Agile-разработки интернет-проектов»
«Особенности Agile-разработки интернет-проектов»
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
 
Ігор Лужанський Театр начинается с вешалки или тестирование требований
Ігор Лужанський Театр начинается с вешалки или тестирование требованийІгор Лужанський Театр начинается с вешалки или тестирование требований
Ігор Лужанський Театр начинается с вешалки или тестирование требований
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектах
 
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
А. Ахметов "Когда тесты пишут разработчики", DUMP-2014
 
Асхат Уразбаев, Руководство по организации тестирования в Agile
Асхат Уразбаев, Руководство по организации тестирования в AgileАсхат Уразбаев, Руководство по организации тестирования в Agile
Асхат Уразбаев, Руководство по организации тестирования в Agile
 
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
 
Темная сторона метрик
Темная сторона метрикТемная сторона метрик
Темная сторона метрик
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET Applications
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
 
Улучшить KPI в два раза? Сделано!
Улучшить KPI в два раза? Сделано!Улучшить KPI в два раза? Сделано!
Улучшить KPI в два раза? Сделано!
 
Гибкое тестирование
Гибкое тестированиеГибкое тестирование
Гибкое тестирование
 
Иван Дубровин, Возможные подходы к контрактованию в Agile
Иван Дубровин, Возможные подходы к контрактованию в AgileИван Дубровин, Возможные подходы к контрактованию в Agile
Иван Дубровин, Возможные подходы к контрактованию в Agile
 
Тестирование требований
Тестирование требованийТестирование требований
Тестирование требований
 
Антон Столяр - Agile Testing
Антон Столяр - Agile TestingАнтон Столяр - Agile Testing
Антон Столяр - Agile Testing
 
KPI тестировщиков - особенности и проблемы
KPI тестировщиков - особенности и проблемыKPI тестировщиков - особенности и проблемы
KPI тестировщиков - особенности и проблемы
 

Similar a Bdd with java_using_concordion_and_selenium_ui_tests

Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
CEE-SEC(R)
 
QA MeetUp - Алексей Чумагин: "Тестирование в Big Data"
QA MeetUp - Алексей Чумагин: "Тестирование в Big Data"QA MeetUp - Алексей Чумагин: "Тестирование в Big Data"
QA MeetUp - Алексей Чумагин: "Тестирование в Big Data"
Provectus
 
Тестирование осень 2013 лекция 3
Тестирование осень 2013 лекция 3Тестирование осень 2013 лекция 3
Тестирование осень 2013 лекция 3
Technopark
 
Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...
tabtabus
 
Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)
Dmitry Melikov
 
Роман Кокин «Организация тестирования в больших командах»
Роман Кокин «Организация тестирования в больших командах»Роман Кокин «Организация тестирования в больших командах»
Роман Кокин «Организация тестирования в больших командах»
DataArt
 
Процесс разработки Agile & Java
Процесс разработки Agile & JavaПроцесс разработки Agile & Java
Процесс разработки Agile & Java
devclub
 
Практика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к KanbanПрактика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к Kanban
Alexander Byndyu
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controll
Mykyta Hopkalo
 

Similar a Bdd with java_using_concordion_and_selenium_ui_tests (20)

Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
 
QA MeetUp - Алексей Чумагин: "Тестирование в Big Data"
QA MeetUp - Алексей Чумагин: "Тестирование в Big Data"QA MeetUp - Алексей Чумагин: "Тестирование в Big Data"
QA MeetUp - Алексей Чумагин: "Тестирование в Big Data"
 
Тестирование осень 2013 лекция 3
Тестирование осень 2013 лекция 3Тестирование осень 2013 лекция 3
Тестирование осень 2013 лекция 3
 
Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...
 
На пути к совершенному инжинирингу
На пути к совершенному инжинирингуНа пути к совершенному инжинирингу
На пути к совершенному инжинирингу
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in net
 
Модульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NETМодульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NET
 
AgileDays11 Resume
AgileDays11 ResumeAgileDays11 Resume
AgileDays11 Resume
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
 
Андрій Лазарєв “Автоматизація тестування Enterprise систем”
Андрій Лазарєв “Автоматизація тестування Enterprise систем”Андрій Лазарєв “Автоматизація тестування Enterprise систем”
Андрій Лазарєв “Автоматизація тестування Enterprise систем”
 
SCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max KolodezniySCRUMopen Developer Max Kolodezniy
SCRUMopen Developer Max Kolodezniy
 
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
 
Рефакторинг
РефакторингРефакторинг
Рефакторинг
 
Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)Вебинар Microsoft ALM (11.12.2012)
Вебинар Microsoft ALM (11.12.2012)
 
Роман Кокин «Организация тестирования в больших командах»
Роман Кокин «Организация тестирования в больших командах»Роман Кокин «Организация тестирования в больших командах»
Роман Кокин «Организация тестирования в больших командах»
 
Что такое проект по автоматизации тестирования ПО?
Что такое проект по автоматизации тестирования ПО?Что такое проект по автоматизации тестирования ПО?
Что такое проект по автоматизации тестирования ПО?
 
Процесс разработки Agile & Java
Процесс разработки Agile & JavaПроцесс разработки Agile & Java
Процесс разработки Agile & Java
 
Agile Process Wizard или как собрать Agile методологию под конкретный проект
Agile Process Wizard или как собрать Agile методологию под конкретный проектAgile Process Wizard или как собрать Agile методологию под конкретный проект
Agile Process Wizard или как собрать Agile методологию под конкретный проект
 
Практика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к KanbanПрактика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к Kanban
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controll
 

Más de Oleksiy Rezchykov

Más de Oleksiy Rezchykov (12)

Boot in Production
Boot in ProductionBoot in Production
Boot in Production
 
How we tested our code "Google way"
How we tested our code "Google way"How we tested our code "Google way"
How we tested our code "Google way"
 
TestNG vs JUnit: cease fire or the end of the war
TestNG vs JUnit: cease fire or the end of the warTestNG vs JUnit: cease fire or the end of the war
TestNG vs JUnit: cease fire or the end of the war
 
Spring Data: New approach to persistence
Spring Data: New approach to persistenceSpring Data: New approach to persistence
Spring Data: New approach to persistence
 
Spring MVC is still alive
Spring MVC is still aliveSpring MVC is still alive
Spring MVC is still alive
 
Почему это не работает (Записки консультанта)
Почему это не работает (Записки консультанта)Почему это не работает (Записки консультанта)
Почему это не работает (Записки консультанта)
 
Социология Code Review или что делать, елси ваши тестировщики начали писать т...
Социология Code Review или что делать, елси ваши тестировщики начали писать т...Социология Code Review или что делать, елси ваши тестировщики начали писать т...
Социология Code Review или что делать, елси ваши тестировщики начали писать т...
 
Recruitment vs Engineering: Кто виноват? и Что делать?
Recruitment vs Engineering: Кто виноват? и Что делать?Recruitment vs Engineering: Кто виноват? и Что делать?
Recruitment vs Engineering: Кто виноват? и Что делать?
 
!Сделай сам
!Сделай сам!Сделай сам
!Сделай сам
 
Light weightj2ee developmentusingspring
Light weightj2ee developmentusingspringLight weightj2ee developmentusingspring
Light weightj2ee developmentusingspring
 
Code review psyhology
Code review psyhologyCode review psyhology
Code review psyhology
 
Story Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium FrameworkStory Testing Approach for Enterprise Applications using Selenium Framework
Story Testing Approach for Enterprise Applications using Selenium Framework
 

Bdd with java_using_concordion_and_selenium_ui_tests

  • 1. BDD на Java при помощи Selenium UI тестов Май 2012 Алексей Резчиков AUTOMATED- TESTING.INFO
  • 2. Обо мне • Java разработчик и тимлид с более чем 10-летним стажем • Евангелист автоматизированного тестирования уже более 4-х лет • Энтузиаст XP/Agile/Lean • Успел «понюхать порох» вместе с eBay и HP 2 AUTOMATED- TESTING.INFO
  • 3. План • В чем польза BDD? • BDD + Selenium : как это работает вместе? • Практика (live coding) • Альтернативы • Критика подхода • Выводы 3 AUTOMATED- TESTING.INFO
  • 4. Все началось с XP 4 AUTOMATED- TESTING.INFO
  • 5. Потом придумали TDD 5 AUTOMATED- TESTING.INFO
  • 6. Суть TDD 6 AUTOMATED- TESTING.INFO
  • 7. TDD это прекрасно, но… Кто будет думать о качестве? 7 AUTOMATED- TESTING.INFO
  • 8. Что ИМЕННО дает TDD? A 2005 study found that using TDD meant writing more tests and, in turn, programmers who wrote more tests tended to be more productive. Hypotheses relating to code quality and a more direct correlation between TDD and productivity were inconclusive. Wikipedia 8 AUTOMATED- TESTING.INFO
  • 9. Что ИМЕННО дает TDD? Test-driven development offers more than just simple validation of correctness, but can also drive the design of a program Wikipedia 9 AUTOMATED- TESTING.INFO
  • 10. Попытка исправить TDD – ATDD 10 AUTOMATED- TESTING.INFO
  • 11. Попытка исправить TDD – ATDD Acceptance Test Driven Development (ATDD) is a practice in which the whole team collaboratively discusses acceptance criteria, with examples, and then distills them into a set of concrete acceptance tests before development begins. http://testobsessed.com/blog/2008/12/08/acceptance-test-driven-development- atdd-an-overview/ 11 AUTOMATED- TESTING.INFO
  • 12. Попытка исправить TDD – ATDD Acceptance TDD helps coordinate software projects in a way that helps us deliver exactly what the customer wants when they want it, and that doesn’t let us implement the required functionality only half way. http://www.methodsandtools.com/archive/archive.php?id=72 12 AUTOMATED- TESTING.INFO
  • 13. Что же такое BDD? • At the heart of BDD is a rethinking of the approach to unit testing and acceptance testing: unit test names are whole sentences starting with the word "should" and they are written in order of business value. • BDD encourages collaboration among developers, QA and non-technical or business participants in a software project. It has evolved over the last few years. Wikipedia 13 AUTOMATED- TESTING.INFO
  • 14. Магия слов: GWT 14 AUTOMATED- TESTING.INFO
  • 15. BDD + Selenium Concordion is an open source tool for writing automated acceptance tests in Java* * There are also versions for .NET, Python, Scala, and Ruby. 15 AUTOMATED- TESTING.INFO
  • 16. How it works? Concordion WebDriver Browser Test Runner TestNG/JUnit PageObject test Concordion TestNG/JUnit test spec test methods 16 AUTOMATED- TESTING.INFO
  • 17. Практика Пример тестирования сайта 17 AUTOMATED- TESTING.INFO
  • 18. Альтернативы: платформа Стоит быть прагматичными – не стоит добавлять Java в проекты где ее нет. 18 AUTOMATED- TESTING.INFO
  • 19. Альтернативы: BDD фреймворк • Cucumber • JBehave • easyB … 19 AUTOMATED- TESTING.INFO
  • 20. Альтернативы: UI тесты не Selenium’ом единым 20 AUTOMATED- TESTING.INFO
  • 21. Критика подхода • BDD может быть не нужен, достаточно ATDD • часто разумней заменить UI тесты более низкоуровневыми 21 AUTOMATED- TESTING.INFO
  • 22. Выводы 22 AUTOMATED- TESTING.INFO
  • 23. А если серьезно • BDD незаменим в проектах, где необходима тесная связь бизнеса с командой разработки • BDD имеет свою четкую область применения • внедрение BDD это комплексный процесс • успешная команда работает на качество вместе 23 AUTOMATED- TESTING.INFO
  • 24. Вопросы @twincengray alex.mcgray@gmail.com http://mcgray.com.ua 24 AUTOMATED- TESTING.INFO

Notas del editor

  1. Почему я решил рассказать про BDD,почему я могу считать себя экспертом в этом вопросе
  2. Разработчики увлеклись TDD. TDD это прекрасно, НО…Кто будет думать о качестве?ИспользованиеTDD только косвенно влияет на качество кодаИ не несет никакой прямойпользы для бизнеса
  3. Где TDDпроцессе разработки
  4. Быстрый цикл обратной связи
  5. Как и темная сторона силы TDD обманчив, он ведь абсолютно ничего не говорит о качестве. Ну почти ничего.
  6. Оставить только основное!!!http://en.wikipedia.org/wiki/Test-driven_developmentСначала мы представляем что хотим получить, а потом уже делаем. Преимущество в том, что это как раз правильный порядок действий а не «обратный» как может показаться. Самое сложное это перестроить себя.
  7. Оставить только основное!!!http://en.wikipedia.org/wiki/Test-driven_development
  8. http://testobsessed.com/blog/2008/12/08/acceptance-test-driven-development-atdd-an-overview/http://www.methodsandtools.com/archive/archive.php?id=72Elisabeth Hendrickson
  9. Given WhenThenhttp://en.wikipedia.org/wiki/Behavior_Driven_DevelopmentМасштабATDD
  10. Annotated HTML
  11. Логотипы?
  12. АльтернативыSelenium? Watir? Что еще ?