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

4,086 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,086
On SlideShare
0
From Embeds
0
Number of Embeds
102
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

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

×