SlideShare a Scribd company logo
End to end тесты - дешево и сердито
Альтернативный подход к тестированию web-
приложений




                       Confidential
UNIT-ТЕСТЫ




             Confidential   2
Немного о Unit-тестах


• Идея состоит в том, чтобы писать тесты
  для каждой нетривиальной функции или
  метода




                        Confidential
Немного о Unit-тестах


• Идея состоит в том, чтобы писать тесты
  для каждой нетривиальной функции или
  метода
• Цель - изолировать отдельные части
  программы и показать, что по
  отдельности эти части работоспособны




                        Confidential
Немного о Unit-тестах


• Идея состоит в том, чтобы писать тесты
  для каждой нетривиальной функции или
  метода
• Цель - изолировать отдельные части
  программы и показать, что по
  отдельности эти части работоспособны
• Служат своеобразной документацией к
  модулю

                        Confidential
Где используются Unit-тесты


• Экстремальное программирование
(Test driven development)




                            Confidential
Где используются Unit-тесты


• Экстремальное программирование
(Test driven development)
• Автоматизированное тестирование
(Continuous integration)




                            Confidential
Где используются Unit-тесты


• Экстремальное программирование
(Test driven development)
• Автоматизированное тестирование
(Continuous integration)
• Полезны при рефакторинге




                            Confidential
Утилиты автоматической сборки проектов


• Jenkins
• CruiseControl




                        Confidential     9
Особенности Unit-тестов


• Повышают надежность кода




                          Confidential
Особенности Unit-тестов


• Повышают надежность кода
• Поощряют программистов к изменениям
  кода




                          Confidential
Особенности Unit-тестов


• Повышают надежность кода
• Поощряют программистов к изменениям
  кода
• Упрощают интеграцию модулей




                          Confidential
Особенности Unit-тестов


• Повышают надежность кода
• Поощряют программистов к изменениям
  кода
• Упрощают интеграцию модулей
• Тестируют внутреннюю логику модулей




                          Confidential
Проблемы Unit-тестов


• Временные затраты часто >=
  реализации самого модуля




                       Confidential
Проблемы Unit-тестов


• Временные затраты часто >=
  реализации самого модуля
• Поддержка уже написанных тестов




                       Confidential
Проблемы Unit-тестов


• Временные затраты часто >=
  реализации самого модуля
• Поддержка уже написанных тестов
• Необходима модульная архитектура




                       Confidential
Проблемы Unit-тестов


• Временные затраты часто >=
  реализации самого модуля
• Поддержка уже написанных тестов
• Необходима модульная архитектура
• Для ощутимого результата необходимо
  достаточное покрытие тестами (Code
  Coverage)


                       Confidential
А что если у нас нет таких
 ресурсов, но нам нужно
  тестировать продукт?


               Confidential
END TO END ТЕСТЫ




                   Confidential   19
Что такое End to end тесты?


• Тестирование сценариев (User test-
  cases)




                          Confidential   20
Что такое End to end тесты?


• Тестирование сценариев (User test-
  cases)
• Относятся к методам тестирования
  серого ящика, т.е. когда мы имеем некое
  представление о внутреннем устройстве
  системы




                          Confidential   21
Что такое End to end тесты?


• Тестирование сценариев (User test-cases)
• Относятся к методам тестирования серого
  ящика, т.е. когда мы имеем некое
  представление о внутреннем устройстве
  системы
• Цель - определение системы зависимостей
  и подтверждения того, чтобы нужная
  информация передается между
  различными компонентами системы


                          Confidential   22
Что такое End to end тесты?

• Тестирование сценариев (User test-cases)
• Относятся к методам тестирования серого
  ящика, т.е. когда мы имеем некое
  представление о внутреннем устройстве
  системы
• Цель - определение системы зависимостей
  и подтверждения того, чтобы нужная
  информация передается между
  различными компонентами системы
• Если не работает хоть один под-компонент,
  то не работает вся система(страница)

                          Confidential    23
End to end тесты на GameTrailers.com


• Проверяют доступность страниц




                         Confidential   24
End to end тесты на GameTrailers.com


• Проверяют доступность страниц
• Проверяют выходные данные




                         Confidential   25
End to end тесты на GameTrailers.com


• Проверяют доступность страниц
• Проверяют выходные данные
• Могут отлавливать серверные ошибки




                         Confidential   26
End to end тесты на GameTrailers.com


• Проверяют доступность страниц
• Проверяют выходные данные
• Могут отлавливать серверные ошибки
• Система тестов проста в реализации




                         Confidential   27
End to end тесты на GameTrailers.com


• Проверяют доступность страниц
• Проверяют выходные данные
• Могут отлавливать серверные ошибки
• Система тестов проста в реализации
• Добавить новый тест в систему может
  любой разработчик в команде



                         Confidential   28
Confidential   29
End to end тесты на GameTrailers.com

                    Старт теста



              Выкачиваем страницу по
               определенному адресу



               Проверяем серверные
                     ошибки


                 Проверяем наличие
               параметров для теста в
                  выходных данных




                                  Confidential   30
End to end тесты на GameTrailers.com
     Параметры end to end
            теста

                            Адрес проверяемой
                              страницы или
                                фрагмента

                             Набор проверяемых
                                   данных
                              (для проверки их
                            наличия на странице)



                             Confidential          31
End to end тесты на GameTrailers.com




Пример:
• Ожидаемая строка: collection-player
• URL страницы: http://www.example.com/page1


                            Confidential       32
С помощью End to end тестов
удалось решить следующие
          задачи



               Confidential   33
Особенность End to end тестов на GT.com


С помощью End to end тестов удалось
решить следующие задачи
  – покрытие тестами всех страниц




                          Confidential    34
Особенность End to end тестов на GT.com


С помощью End to end тестов удалось
решить следующие задачи
  – покрытие тестами всех страниц



  – мониторинг серверных ресурсов (Profiling)




                           Confidential         35
Особенность End to end тестов на GT.com


                Система тестирования




                                    End to end тесты
    Unit-тесты для
                                    для проверки
    жизненно важных
                                    доступности
    модулей
                                    системы в целом




                                Confidential           36
Минусы данного подхода




• Не тестирует JavaScript
• Нет пользовательских Test-cases




                         Confidential   37
Минусы данного подхода
   Selenium позволяет это реализовать




                         Confidential   38
Any questions?




         Confidential   39
Спасибо за внимание




            Confidential   40

More Related Content

PDF
JUnit, дай пять!
PDF
Dev collaboration
PDF
ук 03.007.02 2011
PPT
Павел Степанов
PDF
Экономически эффективный процесс тестирования
PPTX
Роман Василенко. Continuous delivery или как упростить себе жизнь
PDF
DevOps guide for awesome quality assurance
PPT
Организация тестового набора при автоматизированном функциональном тестировании
JUnit, дай пять!
Dev collaboration
ук 03.007.02 2011
Павел Степанов
Экономически эффективный процесс тестирования
Роман Василенко. Continuous delivery или как упростить себе жизнь
DevOps guide for awesome quality assurance
Организация тестового набора при автоматизированном функциональном тестировании

What's hot (18)

PDF
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
PPTX
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
PDF
Тестирование весна 2013 лекция 2
PDF
Архитектура автоматизированных тестов
PDF
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
PDF
Стратегия тестирования крупного проекта в условиях Agile разработки v2
PPTX
Шаблоны проектирования нагрузочных скриптов
PDF
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
PDF
Badger — инструмент для мониторинга качества продуктов
PPTX
TestLink
PPTX
Artem Shabarshin. CSEDays
PPTX
GUI-автоматизация в Telerik Test Studio
PPT
6 лекция. тестирование производительности
PDF
Grail: шаги для ваших Python-тестов
PPTX
Оценка качества автотестов
PPT
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
PPTX
Андрей Сильчук: "Автоматическое тестирование".
PPT
Инструментация среды исполнения в арсенале тестировщика
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
Тестирование весна 2013 лекция 2
Архитектура автоматизированных тестов
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Шаблоны проектирования нагрузочных скриптов
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Badger — инструмент для мониторинга качества продуктов
TestLink
Artem Shabarshin. CSEDays
GUI-автоматизация в Telerik Test Studio
6 лекция. тестирование производительности
Grail: шаги для ваших Python-тестов
Оценка качества автотестов
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
Андрей Сильчук: "Автоматическое тестирование".
Инструментация среды исполнения в арсенале тестировщика
Ad

Viewers also liked (8)

PPTX
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
PPT
Александр Башарин - Проведение пользовательского тестирования с большим число...
PPTX
Автоматизация тестирования веб-сервисов посредством SOAP UI
PPTX
Design patterns in test automation
PPTX
Управление тестированием в Agile
PPTX
Как оценить тестировщика
PDF
Чек-лист по юзабилити сайта
DOCX
Computer software engineer performance appraisal
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
Александр Башарин - Проведение пользовательского тестирования с большим число...
Автоматизация тестирования веб-сервисов посредством SOAP UI
Design patterns in test automation
Управление тестированием в Agile
Как оценить тестировщика
Чек-лист по юзабилити сайта
Computer software engineer performance appraisal
Ad

Similar to Сергей Семашко "End to end test: cheap and effective" (20)

PDF
Марина Широчкина - Тестирование
PDF
Марина Широчкина — «Тестирование»
PPTX
Тестирование ПО
PDF
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
PPTX
Добиваемся эффективности каждого из 9000+ UI-тестов
PDF
QAFest. Роль тестирования в Devops
PDF
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
PPTX
Невидимый фронт или тестирование digital-проектов
PDF
Тестирование весна 2013 лекция 5
PDF
Автоматическое тестирование. Моя система
PDF
Марина Широчкина: Тестирование
PDF
тестирование
PPT
Автоматизация тестирования как способ получения знаний
PDF
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
PDF
Тестирование осень 2013 лекция 3
PDF
Филипп Уваров, Avito
PDF
Introduction into Test Driven Development
PPTX
Introduction to Automation Testing
PDF
Тестирование осень 2013 лекция 5
PDF
Тестирование весна 2014 смешанное занятие 1
Марина Широчкина - Тестирование
Марина Широчкина — «Тестирование»
Тестирование ПО
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Добиваемся эффективности каждого из 9000+ UI-тестов
QAFest. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
Невидимый фронт или тестирование digital-проектов
Тестирование весна 2013 лекция 5
Автоматическое тестирование. Моя система
Марина Широчкина: Тестирование
тестирование
Автоматизация тестирования как способ получения знаний
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
Тестирование осень 2013 лекция 3
Филипп Уваров, Avito
Introduction into Test Driven Development
Introduction to Automation Testing
Тестирование осень 2013 лекция 5
Тестирование весна 2014 смешанное занятие 1

More from EPAM Systems (20)

PPTX
“Xcore (library) for android platform” by Uladzimir Klyshevich
PPTX
"Как общаться эффективнее" by Natallia Kapatsevich
PPTX
"Connections: Что общего у Шотландии и Дональда Трампа?" by Yevgeniy Rozenblat
PPTX
ДмитрийРадченко, "Brief introduction to dundas"
PPTX
Абрамович Максим, "Rad studio xe4"
PPTX
Miniq 11: Time management by Anton Zolotarev & Andrei Artisheuski
PPTX
Reporting куда как-зачем by Anton Stoliar
PPTX
Pool and billiards by Olga Nikolaeva
PDF
The Way of Creating Presentations: Just do it!
PPTX
E-mail Communication: How and Why
PPTX
николай фролов, “Gamification“
PPTX
Real time bidding by Danil Melnikov
PPTX
Никита Манько “Code review”
PPTX
Чурюканов Вячеслав, “Code simple, but not simpler”
PPTX
Демидюк Павел , “Continuous integration with the real traffic light in m&e of...
PPTX
Agile retrospectives by nick frolov miniq
PDF
Other way to travel by Anna Lukyanenka
PPSX
Computer as a musical instrument by Sergey Moiseychik
PPTX
Антон Золотарев, Екатерина Невельская "По следам SQA days"
PDF
Alexander Litvinok (software engineer) "bdd wtf"
“Xcore (library) for android platform” by Uladzimir Klyshevich
"Как общаться эффективнее" by Natallia Kapatsevich
"Connections: Что общего у Шотландии и Дональда Трампа?" by Yevgeniy Rozenblat
ДмитрийРадченко, "Brief introduction to dundas"
Абрамович Максим, "Rad studio xe4"
Miniq 11: Time management by Anton Zolotarev & Andrei Artisheuski
Reporting куда как-зачем by Anton Stoliar
Pool and billiards by Olga Nikolaeva
The Way of Creating Presentations: Just do it!
E-mail Communication: How and Why
николай фролов, “Gamification“
Real time bidding by Danil Melnikov
Никита Манько “Code review”
Чурюканов Вячеслав, “Code simple, but not simpler”
Демидюк Павел , “Continuous integration with the real traffic light in m&e of...
Agile retrospectives by nick frolov miniq
Other way to travel by Anna Lukyanenka
Computer as a musical instrument by Sergey Moiseychik
Антон Золотарев, Екатерина Невельская "По следам SQA days"
Alexander Litvinok (software engineer) "bdd wtf"

Сергей Семашко "End to end test: cheap and effective"

  • 1. End to end тесты - дешево и сердито Альтернативный подход к тестированию web- приложений Confidential
  • 2. UNIT-ТЕСТЫ Confidential 2
  • 3. Немного о Unit-тестах • Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода Confidential
  • 4. Немного о Unit-тестах • Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода • Цель - изолировать отдельные части программы и показать, что по отдельности эти части работоспособны Confidential
  • 5. Немного о Unit-тестах • Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода • Цель - изолировать отдельные части программы и показать, что по отдельности эти части работоспособны • Служат своеобразной документацией к модулю Confidential
  • 6. Где используются Unit-тесты • Экстремальное программирование (Test driven development) Confidential
  • 7. Где используются Unit-тесты • Экстремальное программирование (Test driven development) • Автоматизированное тестирование (Continuous integration) Confidential
  • 8. Где используются Unit-тесты • Экстремальное программирование (Test driven development) • Автоматизированное тестирование (Continuous integration) • Полезны при рефакторинге Confidential
  • 9. Утилиты автоматической сборки проектов • Jenkins • CruiseControl Confidential 9
  • 10. Особенности Unit-тестов • Повышают надежность кода Confidential
  • 11. Особенности Unit-тестов • Повышают надежность кода • Поощряют программистов к изменениям кода Confidential
  • 12. Особенности Unit-тестов • Повышают надежность кода • Поощряют программистов к изменениям кода • Упрощают интеграцию модулей Confidential
  • 13. Особенности Unit-тестов • Повышают надежность кода • Поощряют программистов к изменениям кода • Упрощают интеграцию модулей • Тестируют внутреннюю логику модулей Confidential
  • 14. Проблемы Unit-тестов • Временные затраты часто >= реализации самого модуля Confidential
  • 15. Проблемы Unit-тестов • Временные затраты часто >= реализации самого модуля • Поддержка уже написанных тестов Confidential
  • 16. Проблемы Unit-тестов • Временные затраты часто >= реализации самого модуля • Поддержка уже написанных тестов • Необходима модульная архитектура Confidential
  • 17. Проблемы Unit-тестов • Временные затраты часто >= реализации самого модуля • Поддержка уже написанных тестов • Необходима модульная архитектура • Для ощутимого результата необходимо достаточное покрытие тестами (Code Coverage) Confidential
  • 18. А что если у нас нет таких ресурсов, но нам нужно тестировать продукт? Confidential
  • 19. END TO END ТЕСТЫ Confidential 19
  • 20. Что такое End to end тесты? • Тестирование сценариев (User test- cases) Confidential 20
  • 21. Что такое End to end тесты? • Тестирование сценариев (User test- cases) • Относятся к методам тестирования серого ящика, т.е. когда мы имеем некое представление о внутреннем устройстве системы Confidential 21
  • 22. Что такое End to end тесты? • Тестирование сценариев (User test-cases) • Относятся к методам тестирования серого ящика, т.е. когда мы имеем некое представление о внутреннем устройстве системы • Цель - определение системы зависимостей и подтверждения того, чтобы нужная информация передается между различными компонентами системы Confidential 22
  • 23. Что такое End to end тесты? • Тестирование сценариев (User test-cases) • Относятся к методам тестирования серого ящика, т.е. когда мы имеем некое представление о внутреннем устройстве системы • Цель - определение системы зависимостей и подтверждения того, чтобы нужная информация передается между различными компонентами системы • Если не работает хоть один под-компонент, то не работает вся система(страница) Confidential 23
  • 24. End to end тесты на GameTrailers.com • Проверяют доступность страниц Confidential 24
  • 25. End to end тесты на GameTrailers.com • Проверяют доступность страниц • Проверяют выходные данные Confidential 25
  • 26. End to end тесты на GameTrailers.com • Проверяют доступность страниц • Проверяют выходные данные • Могут отлавливать серверные ошибки Confidential 26
  • 27. End to end тесты на GameTrailers.com • Проверяют доступность страниц • Проверяют выходные данные • Могут отлавливать серверные ошибки • Система тестов проста в реализации Confidential 27
  • 28. End to end тесты на GameTrailers.com • Проверяют доступность страниц • Проверяют выходные данные • Могут отлавливать серверные ошибки • Система тестов проста в реализации • Добавить новый тест в систему может любой разработчик в команде Confidential 28
  • 30. End to end тесты на GameTrailers.com Старт теста Выкачиваем страницу по определенному адресу Проверяем серверные ошибки Проверяем наличие параметров для теста в выходных данных Confidential 30
  • 31. End to end тесты на GameTrailers.com Параметры end to end теста Адрес проверяемой страницы или фрагмента Набор проверяемых данных (для проверки их наличия на странице) Confidential 31
  • 32. End to end тесты на GameTrailers.com Пример: • Ожидаемая строка: collection-player • URL страницы: http://www.example.com/page1 Confidential 32
  • 33. С помощью End to end тестов удалось решить следующие задачи Confidential 33
  • 34. Особенность End to end тестов на GT.com С помощью End to end тестов удалось решить следующие задачи – покрытие тестами всех страниц Confidential 34
  • 35. Особенность End to end тестов на GT.com С помощью End to end тестов удалось решить следующие задачи – покрытие тестами всех страниц – мониторинг серверных ресурсов (Profiling) Confidential 35
  • 36. Особенность End to end тестов на GT.com Система тестирования End to end тесты Unit-тесты для для проверки жизненно важных доступности модулей системы в целом Confidential 36
  • 37. Минусы данного подхода • Не тестирует JavaScript • Нет пользовательских Test-cases Confidential 37
  • 38. Минусы данного подхода Selenium позволяет это реализовать Confidential 38
  • 39. Any questions? Confidential 39