Тестирование весна 2014 смешанное занятие 1

552 views
418 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
552
On SlideShare
0
From Embeds
0
Number of Embeds
99
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Тестирование весна 2014 смешанное занятие 1

  1. 1. Автоматизация функционального тестирования Влад Алюков
  2. 2. Кто? Занимаюсь тестированием 10 лет Из них 6 лет автоматизацией тестирования и тестовой инфраструктурой 2
  3. 3. О чём? Подходы Инструменты Проблемы 3
  4. 4. 4 Зачем?
  5. 5. Зачем? §  Широкий взгляд на вопрос качества §  Понимание методов его обеспечения §  Решение задач подобающим способом §  Умение поставлять качественные артефакты своего труда 5
  6. 6. Автоматизация тестирования §  Ускорение обратной связи §  Документация на фичи 6
  7. 7. Скорость разработки 7
  8. 8. Тесты – документация на ваш код 8
  9. 9. Функциональное тестирование 9
  10. 10. Функциональное тестирование §  Контроль конечной функциональности на: §  пригодность §  соответствие требованиям/спецификациям §  точность (accuracy testing) §  защищённость (security testing) 10
  11. 11. 11 Автоматизация функционального тестирования
  12. 12. Автоматизированные функциональные тесты 12
  13. 13. Автоматизированные функциональные тесты §  Взаимодействуют с GUI или внешним API §  Тестируют возможности вашего приложения/ сервиса 13
  14. 14. Каждому уровню свои тесты 14
  15. 15. Когда применять функциональные авто-тесты? §  Конечные возможности продукта §  Высокая степень интеграции 15
  16. 16. Testing pyramid 16
  17. 17. Предпосылки для автоматизации 17
  18. 18. Предпосылки для автоматизации §  Монотонные действия §  Стабильные интерфейсы §  Высокая частота изменений §  Критичность фичи 18
  19. 19. Подходы к автоматизации §  Один кейс – один тест §  Исключение сайд-эффектов (герметичность) 19
  20. 20. Герметичность 20
  21. 21. Обеспечение герметичности §  Виртуализация §  Заглушки §  Тестовые состояния приложения 21
  22. 22. Варианты интерфейсов §  GUI (Web-интерфейсы/Десктоп) §  API (RESTful/SOAP) 22
  23. 23. Инструменты автоматизации тестирования 23
  24. 24. Выбор инструментов §  Тест должен находиться в максимальной близости к тестируемой возможности §  Нельзя автоматизировать что-либо, не написав ни одной строчки кода 24
  25. 25. Тестирование Web-Приложений §  WebDriver §  Jasmine/jstestdriver §  phantomjs 25
  26. 26. WebDriver §  История §  Возможности §  Применимость 26
  27. 27. История 27
  28. 28. Возможности 28
  29. 29. 29 Как и для чего следует применять WebDriver
  30. 30. Браузерозависимые сценарии §  Drag’n’Drop - загрузка файлов §  Клавиатурные действия §  Кроссбраузерное тестирование §  Тестирование с браузерными расширениями 30
  31. 31. Тестовые фрэймворки §  TestNG/Junit/py.test/nose/rspec 31
  32. 32. Структура теста §  Подготовка данных/Открытие контекста §  Выполнение тестов в контексте §  Закрытие контекста 32
  33. 33. Пример теста 33
  34. 34. Как WebDriver взаимодействует с браузером/приложением §  Селекторы css/xpath §  «честный» click 34
  35. 35. Виды селекторов §  CSS §  Встроенная поддержка во всех современных браузерах §  Высокая скорость работы §  XPATH §  Оси §  Поиск по тексту элемента 35
  36. 36. Проблемы §  Нестабильность интерфейсов §  Вариативность окружения (много, много браузеров!) §  Низкая скорость работы интерфейсов 36
  37. 37. Паттерны проектирования GUI тестов 37
  38. 38. PageObject 38
  39. 39. DRY 39
  40. 40. фу! плохой тест! 40
  41. 41. PageObject 41
  42. 42. PageObject 42
  43. 43. хороший, образцовый, годный тест! 43
  44. 44. 44 Антипаттерны использования webdriver
  45. 45. Нагрузочное тестирование 45
  46. 46. Нагрузочное тестирование 46
  47. 47. Тестирование бизнес - логики 47
  48. 48. Запись/воспроизведение 48
  49. 49. Запись/воспроизведение 49
  50. 50. Запись/воспроизведение 50 §  Нельзя автоматизировать что-либо, не написав ни одной строчки кода §  Selenium IDE
  51. 51. Практики написания тестов §  Keyword based testing §  BDD 51
  52. 52. BDD example 52
  53. 53. BDD/PageObject example 53
  54. 54. Keyword Driven Test example 54
  55. 55. Применимость BDD/KDT §  Документация на возможности §  Кейсы составленные по практике BDD может понять средней руки гуманитарий. 55
  56. 56. Отчётность 56
  57. 57. xUnit где применяется §  Ваша IDE §  Сервер непрерывной интеграции 57
  58. 58. Антипаттерны в тестировании 58
  59. 59. Антипаттерны в тестировании §  god tests §  Гейзенбаг §  Неуправляемое окружение 59
  60. 60. 60 Как тестируем мы
  61. 61. Технологии §  ЯП: java/python/ruby §  FW: testng/py.tests/rspec §  CI: jenkins §  IaaS: OpenStack/chef §  build tool: maven/distutils/rake §  reporting: graphite/xunit/text reports 61
  62. 62. Браузерные тесты §  фрэймворк: maven/testng/guice/webdriver/ browsermob proxy/800loc §  тесты: 17kloc ~700 тестов 62
  63. 63. Функциональный мониторинг 63
  64. 64. Домашнее задание §  Написать тесты на проект Поиск@Mail.Ru §  Тесты должны работать в 2х браузерах firefox/ chrome §  Отчёт должен генерироваться в формате xUnit report §  Тесты в браузерах должны исполняться параллельно. 64
  65. 65. Домашнее задание §  Подмес «Календарь» ( q= календарь) §  Подмес «Конвертор валют» ( q= курс доллара) §  Подмес «Восход-Закат» ( q= закат ) §  Все подмесы геозависимые §  У меня не должно возникнуть проблем с запуском ваших тестов =) 65
  66. 66. Практика §  Java 1.7/Maven 3/IDE (я использую intellij idea) §  Интернет! 66
  67. 67. Вопросы 67
  68. 68. Спасибо за внимание Влад Алюков v.alyukov@corp.mail.ru

×