Upload
technopark
View
216
Download
1
Embed Size (px)
Citation preview
Автоматизация функционального
тестирования
Влад Алюков
Кто?
Занимаюсь тестированием 9 лет
Из них 5 лет автоматизацией тестирования и тестовой инфраструктурой
2
О чём?
Подходы
Инструменты
Проблемы
3
4
Зачем?
Зачем?
Широкий взгляд на вопрос качества
Понимание методов его обеспечения
Решение задач подобающим способом
Умение поставлять качественные артефактысвоего труда
5
Agile development
6
Тесты – документация на ваш код
7
Функциональное тестирование
8
Функциональное тестирование
Контроль конечной функциональности на:
пригодность
соответствие требованиям/спецификациям
точность (accuracy testing)
защищённость (security testing)
9
10
Автоматизацияфункционального
тестирования
Автоматизированныефункциональные тесты
11
Автоматизированныефункциональные тесты
Взаимодействуют с GUI или внешним API
Тестируют возможности вашегоприложения/сервиса
12
Каждому уровню свои тесты
13
Почему не unit/интеграционные тесты?
Конечные возможности продукта
Высокая степень интеграции
14
Testing pyramid
15
Предпосылки для автоматизации
16
Предпосылки для автоматизации
Монотонные действия
Стабильные интерфейсы
Высокая частота изменений
Критичность продуктовой возможности
17
Как автоматизировать
Атомарность тестовых сценариев
Герметичность тестовых окружений
18
Герметичность
19
Обеспечение герметичности
Виртуализация
Заглушки
Тестовые состояния приложения
20
Варианты интерфейсов
GUI (Web-интерфейсы/Десктоп)
API (RESTful/SOAP)
21
Паттерны проектированияGUI тестов
22
PageObject
23
DRY
24
фу! плохой тест!
25
PageObject
26
PageObject
27
хороший, образцовый, годный тест!
28
Инструменты
29
Выбор инструментов
Тест должен находиться в максимальной близостик тестируемой возможности
Нельзя автоматизировать что-либо, не написавни одной строчки кода
30
Тестирование Web-Приложений
WebDriver
Jasmine/jstestdriver
phantomjs
31
WebDriver
История
Возможности
Применимость
32
История
33
Возможности
34
35
Как и для чего следуетприменять WebDriver
Браузерозависимые сценарии
Drag’n’Drop - загрузка файлов
Клавиатурные действия
Кроссбраузерное тестирование
Тестирование с браузерными расширениями
36
Нагрузочное тестирование
37
Нагрузочное тестирование
38
Тестирование бизнес - логики
39
Запись/воспроизведение
40
Запись/воспроизведение
41
Запись/воспроизведение
42
Нельзя автоматизировать что-либо, не написав ни одной строчки кода
Практики написания тестов
Keyword based testing
BDD
43
BDD example
44
BDD/PageObject example
45
Keyword Driven Test example
46
Применимость BDD/KDT
Документция на возможности
Кейсы составленные по практике BDD может понять средней руки гуманитарий.
47
Отчётность
48
Антипаттерны в тестировании
49
Антипаттерны в тестировании
god tests
Гейзенбаг
Неуправляемое окружение
50
51
Как тестируем мы
Технологии
ЯП: java/python
FW: testng/py.tests
CI: jenkins
IaaS: OpenStack/chef
build tool: maven/distutils
reporting: graphite/xunit/text reports
52
Браузерные тесты
фрэймворк: maven/testng/guice/webdriver/browsermobproxy/800loc
тесты: 13kloc ~700 тестов
53
Функциональный мониторинг
54
Семинар
Написать тесты на проект Поиск@Mail.Ru
Тесты должны работать в 2х браузерахfirefox/chrome
Отчёт должен генерироваться в формате xUnitreport
Тесты в браузерах должны исполняться параллельно.
55
Семинар
Подмес «Календарь» ( q= календарь)
Подмес «Конвертор валют» ( q= курс доллара)
Подмес «Восход-Закат» ( q= закат )
Все подмесы геозависимые
У меня не должно возникнуть проблем с запуском ваших тестов =)
56
Вопросы
57
Спасибо за внимание
Влад Алюков[email protected]