Upload
technopark
View
123
Download
3
Embed Size (px)
Citation preview
Автоматизация функционального тестирования
Влад Алюков
Monday, 29 April 13
Кто?
Занимаюсь тестированием 9 лет
Из них 5 лет автоматизацией тестирования и тестовой инфраструктурой
Monday, 29 April 13
О чём?
Подходы
Инструменты
Проблемы
Monday, 29 April 13
Зачем?
Monday, 29 April 13
Зачем?
Широкий взгляд на вопрос качества
Понимание методов его обеспечения
Решение задач подобающим способом
Умение поставлять качественные артефакты своего труда
Monday, 29 April 13
Scrum
Monday, 29 April 13
Тесты как документация
Monday, 29 April 13
Функциональное тестирование
Monday, 29 April 13
Функциональное тестирование
Контроль конечной функциональности на:
пригодность
соответствие требованиям/спецификациям
точность (accuracy testing)
защищённость (security testing)
Monday, 29 April 13
Автоматизация функционального тестирования
Monday, 29 April 13
Автоматизированные функциональные тесты
Monday, 29 April 13
Автоматизированные функциональные тесты
Взаимодействуют с GUI или верхнеуровневым API
Тестируют возможности вашего приложения/сервиса
Monday, 29 April 13
Каждому уровню свои тесты
Monday, 29 April 13
Почему не unit/интеграционные
тесты?
Конечные возможности продукта
Высокая степень интеграции
Monday, 29 April 13
Testing pyramid
Monday, 29 April 13
Предпосылки для автоматизации
Monday, 29 April 13
Предпосылки для автоматизации
Монотонные действия
Стабильные интерфейсы
Высокая частота изменений
Критичность продуктовой возможности
Monday, 29 April 13
Как автоматизировать
Атомарность тестовых сценариев
Герметичность тестовых окружений
Monday, 29 April 13
Герметичность
Monday, 29 April 13
Обеспечение герметичности
Виртуализация
Заглушки
Тестовые состояния приложения
Monday, 29 April 13
Варианты интерфейсов
GUI (Web-интерфейсы/Десктоп)
API (RESTful/SOAP)
Monday, 29 April 13
Паттерны проектирования GUI
тестов
Monday, 29 April 13
Его величество PageObject
Monday, 29 April 13
DRY
Monday, 29 April 13
фу! плохой тест!
Monday, 29 April 13
PageObject
Monday, 29 April 13
PageObject
Monday, 29 April 13
хороший, образцовый, годный тест!
Monday, 29 April 13
Инструменты
Monday, 29 April 13
Выбор инструментов
Тест должен находиться в максимальной близости к тестируемой возможности
Нельзя автоматизировать что-либо, не написав ни одной строчки кода
Monday, 29 April 13
Тестирование Web-Приложений
WebDriver
Jasmine/jstestdriver
phantomjs
Monday, 29 April 13
WebDriver
История
Возможности
Применимость
Monday, 29 April 13
История
Monday, 29 April 13
Возможности
Monday, 29 April 13
Как и для чего следует применять
WebDriver
Monday, 29 April 13
Браузерозависимые сценарии
Drag’n’Drop - загрузка файлов
Клавиатурные действия
Кроссбраузерное тестирование
Тестирование с браузерными расширениями
Monday, 29 April 13
Нагрузочное тестирование
Monday, 29 April 13
Нагрузочное тестирование
Monday, 29 April 13
Тестирование бизнес- логики
Monday, 29 April 13
Документирование тестов. Отчёты
Keyword based testing
BDD
xUnit report
Monday, 29 April 13
BDD example
Monday, 29 April 13
BDD/PageObject example
Monday, 29 April 13
Keyword Driven Test example
Monday, 29 April 13
Применимость BDD/KDT
Тесты, воспринимаемые человеком гуманитарного склада ума
Проблемы, которые возникают при бездумном применении практик
Monday, 29 April 13
xUnit report
Monday, 29 April 13
Антипаттерны в тестировании
Monday, 29 April 13
Антипаттерны в тестировании
god tests
Гейзенбаг
Неуправляемое окружение
Monday, 29 April 13
Как тестируем мы
Monday, 29 April 13
ТехнологииЯП: java/python
FW: testng/py.tests
CI: jenkins
IaaS: OpenStack/chef
build tool: maven/distutils
reporting: graphite/xunit/text reports
Monday, 29 April 13
Браузерные тесты
фрэймворк: maven/testng/guice/webdriver/browsermob proxy/800loc
тесты: 13kloc ~300 тестов
Monday, 29 April 13
Функциональный мониторинг
Monday, 29 April 13
СеминарНаписать тесты на 5 возможностей вашего продукта, если нет продукта то напишите тесты на поиск mail.ru
Тесты должны работать в 2х браузерах firefox/chrome
Отчёт должен генерироваться в формате xUnit report
Реализовать возможность исполнения тестов параллельно (опционально)
Monday, 29 April 13
browser farm
Monday, 29 April 13
container: virtualbox
user/pass: ubuntu/reverse
hub http://localhost:4444/hub/wd
ssh ubuntu@localhost:2222
browser farm
Monday, 29 April 13
Вопросы
Monday, 29 April 13
URLS
bdd: http://files.mail.ru/4C4AA6BEB9814EF89A382AC8E5F5045B
vm: files.mail.ru/6F8A625E83824F8ABE84E2E38A216D4F
Monday, 29 April 13
Спасибо за вниманиеВлад Алюков [email protected]
Monday, 29 April 13