58
Автоматизация функционального тестирования Влад Алюков

Тестирование осень 2013 лекция 3

Embed Size (px)

Citation preview

Page 1: Тестирование осень 2013 лекция 3

Автоматизация функционального

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

Влад Алюков

Page 2: Тестирование осень 2013 лекция 3

Кто?

Занимаюсь тестированием 9 лет

Из них 5 лет автоматизацией тестирования и тестовой инфраструктурой

2

Page 3: Тестирование осень 2013 лекция 3

О чём?

Подходы

Инструменты

Проблемы

3

Page 4: Тестирование осень 2013 лекция 3

4

Зачем?

Page 5: Тестирование осень 2013 лекция 3

Зачем?

Широкий взгляд на вопрос качества

Понимание методов его обеспечения

Решение задач подобающим способом

Умение поставлять качественные артефактысвоего труда

5

Page 6: Тестирование осень 2013 лекция 3

Agile development

6

Page 7: Тестирование осень 2013 лекция 3

Тесты – документация на ваш код

7

Page 8: Тестирование осень 2013 лекция 3

Функциональное тестирование

8

Page 9: Тестирование осень 2013 лекция 3

Функциональное тестирование

Контроль конечной функциональности на:

пригодность

соответствие требованиям/спецификациям

точность (accuracy testing)

защищённость (security testing)

9

Page 10: Тестирование осень 2013 лекция 3

10

Автоматизацияфункционального

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

Page 11: Тестирование осень 2013 лекция 3

Автоматизированныефункциональные тесты

11

Page 12: Тестирование осень 2013 лекция 3

Автоматизированныефункциональные тесты

Взаимодействуют с GUI или внешним API

Тестируют возможности вашегоприложения/сервиса

12

Page 13: Тестирование осень 2013 лекция 3

Каждому уровню свои тесты

13

Page 14: Тестирование осень 2013 лекция 3

Почему не unit/интеграционные тесты?

Конечные возможности продукта

Высокая степень интеграции

14

Page 15: Тестирование осень 2013 лекция 3

Testing pyramid

15

Page 16: Тестирование осень 2013 лекция 3

Предпосылки для автоматизации

16

Page 17: Тестирование осень 2013 лекция 3

Предпосылки для автоматизации

Монотонные действия

Стабильные интерфейсы

Высокая частота изменений

Критичность продуктовой возможности

17

Page 18: Тестирование осень 2013 лекция 3

Как автоматизировать

Атомарность тестовых сценариев

Герметичность тестовых окружений

18

Page 19: Тестирование осень 2013 лекция 3

Герметичность

19

Page 20: Тестирование осень 2013 лекция 3

Обеспечение герметичности

Виртуализация

Заглушки

Тестовые состояния приложения

20

Page 21: Тестирование осень 2013 лекция 3

Варианты интерфейсов

GUI (Web-интерфейсы/Десктоп)

API (RESTful/SOAP)

21

Page 22: Тестирование осень 2013 лекция 3

Паттерны проектированияGUI тестов

22

Page 23: Тестирование осень 2013 лекция 3

PageObject

23

Page 24: Тестирование осень 2013 лекция 3

DRY

24

Page 25: Тестирование осень 2013 лекция 3

фу! плохой тест!

25

Page 26: Тестирование осень 2013 лекция 3

PageObject

26

Page 27: Тестирование осень 2013 лекция 3

PageObject

27

Page 28: Тестирование осень 2013 лекция 3

хороший, образцовый, годный тест!

28

Page 29: Тестирование осень 2013 лекция 3

Инструменты

29

Page 30: Тестирование осень 2013 лекция 3

Выбор инструментов

Тест должен находиться в максимальной близостик тестируемой возможности

Нельзя автоматизировать что-либо, не написавни одной строчки кода

30

Page 31: Тестирование осень 2013 лекция 3

Тестирование Web-Приложений

WebDriver

Jasmine/jstestdriver

phantomjs

31

Page 32: Тестирование осень 2013 лекция 3

WebDriver

История

Возможности

Применимость

32

Page 33: Тестирование осень 2013 лекция 3

История

33

Page 34: Тестирование осень 2013 лекция 3

Возможности

34

Page 35: Тестирование осень 2013 лекция 3

35

Как и для чего следуетприменять WebDriver

Page 36: Тестирование осень 2013 лекция 3

Браузерозависимые сценарии

Drag’n’Drop - загрузка файлов

Клавиатурные действия

Кроссбраузерное тестирование

Тестирование с браузерными расширениями

36

Page 37: Тестирование осень 2013 лекция 3

Нагрузочное тестирование

37

Page 38: Тестирование осень 2013 лекция 3

Нагрузочное тестирование

38

Page 39: Тестирование осень 2013 лекция 3

Тестирование бизнес - логики

39

Page 40: Тестирование осень 2013 лекция 3

Запись/воспроизведение

40

Page 41: Тестирование осень 2013 лекция 3

Запись/воспроизведение

41

Page 42: Тестирование осень 2013 лекция 3

Запись/воспроизведение

42

Нельзя автоматизировать что-либо, не написав ни одной строчки кода

Page 43: Тестирование осень 2013 лекция 3

Практики написания тестов

Keyword based testing

BDD

43

Page 44: Тестирование осень 2013 лекция 3

BDD example

44

Page 45: Тестирование осень 2013 лекция 3

BDD/PageObject example

45

Page 46: Тестирование осень 2013 лекция 3

Keyword Driven Test example

46

Page 47: Тестирование осень 2013 лекция 3

Применимость BDD/KDT

Документция на возможности

Кейсы составленные по практике BDD может понять средней руки гуманитарий.

47

Page 48: Тестирование осень 2013 лекция 3

Отчётность

48

Page 49: Тестирование осень 2013 лекция 3

Антипаттерны в тестировании

49

Page 50: Тестирование осень 2013 лекция 3

Антипаттерны в тестировании

god tests

Гейзенбаг

Неуправляемое окружение

50

Page 51: Тестирование осень 2013 лекция 3

51

Как тестируем мы

Page 52: Тестирование осень 2013 лекция 3

Технологии

ЯП: java/python

FW: testng/py.tests

CI: jenkins

IaaS: OpenStack/chef

build tool: maven/distutils

reporting: graphite/xunit/text reports

52

Page 53: Тестирование осень 2013 лекция 3

Браузерные тесты

фрэймворк: maven/testng/guice/webdriver/browsermobproxy/800loc

тесты: 13kloc ~700 тестов

53

Page 54: Тестирование осень 2013 лекция 3

Функциональный мониторинг

54

Page 55: Тестирование осень 2013 лекция 3

Семинар

Написать тесты на проект Поиск@Mail.Ru

Тесты должны работать в 2х браузерахfirefox/chrome

Отчёт должен генерироваться в формате xUnitreport

Тесты в браузерах должны исполняться параллельно.

55

Page 56: Тестирование осень 2013 лекция 3

Семинар

Подмес «Календарь» ( q= календарь)

Подмес «Конвертор валют» ( q= курс доллара)

Подмес «Восход-Закат» ( q= закат )

Все подмесы геозависимые

У меня не должно возникнуть проблем с запуском ваших тестов =)

56

Page 57: Тестирование осень 2013 лекция 3

Вопросы

57

Page 58: Тестирование осень 2013 лекция 3

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

Влад Алюков[email protected]