SlideShare a Scribd company logo
И никуда не надо ехать!
“Можно ли перевернуть пирамиду?”
– автоматизируем тестирование с
меньшим числом посредников
Игорь Хрол
http://www.khroliz.com
О себе
• Игорь Хрол
• Более семи лет в
автоматизации тестирования
• Консультант, тренер, инженер,
менеджер, архитектор
• Selenium, HP QTP, TestCompete,
JMeter
• Докладчик на
AutoConfeT&QA’2012
О чём будем говорить?
О чём будем говорить?
Что мы понимаем под
автоматизацией тестирования?
Проблема
Автоматические тесты через
пользовательский интерфейс медленные
Проблема
Автоматические тесты через
пользовательский интерфейс нестабильные и
хрупкие
Проблема
• Автотесты долго писать
• А что мне делать, пока работает
автотест?
Причины
Большое число посредников
Проблема
Большое число посредников
Что делать?
Хороший фреймворк!
Становится лучше, но не хорошо
Тестируем функционал там, где он
реализован
Поддержка
Количество тестов
Уровень
Правильная «Пирамида»
UI
API тесты
Unit тесты
Обычная картина на проектах
UI тесты
API тесты
Unit
Направления для решения
Научиться программировать
Понимать, что происходит внутри
Структурируйте тестовую методику
• Понять, что именно тестируем
• Не тестировать много раз одно и то же
Сценарий 1: авторизация
Шаг Ожидаемый результат
Открыть страницу логина Страница открыта
Заполнить имя пользователя Имя пользователя заполнено
Заполнить поле пароля Пароль введён
Нажать на кнопку «Войти» Пользователь вошёл в систему
Сценарий 2: поиск
Шаг Ожидаемый результат
Открыть страницу логина Страница открыта
Заполнить имя пользователя Имя пользователя заполнено
Заполнить поле пароля Пароль введён
Нажать на кнопку «Войти» Пользователь вошёл в систему
Найти продукт «Холодильник» Продукт найден
Сценарий 3: добавление в корзину
Шаг Ожидаемый результат
Открыть страницу логина Страница открыта
Заполнить имя пользователя Имя пользователя заполнено
Заполнить поле пароля Пароль введён
Нажать на кнопку «Войти» Пользователь вошёл в систему
Найти продукт «Холодильник» Продукт найден
Добавить продукт в корзину Продукт находится в корзине
Сценарий 1-3: авторизация, поиск и
добавление в корзину
Шаг Ожидаемый результат
Открыть страницу логина Страница открыта
Заполнить имя пользователя Имя пользователя заполнено
Заполнить поле пароля Пароль введён
Нажать на кнопку «Войти» Пользователь вошёл в систему
Найти продукт «Холодильник» Продукт найден
Добавить продукт в корзину Продукт находится в корзине
Много зависимостей
«Цепные» падения тестов
Шаг Ожидаемый результат
Открыть страницу логина Страница открыта
Заполнить имя пользователя Имя пользователя заполнено
Заполнить поле пароля Пароль введён
Нажать на кнопку «Войти» Пользователь вошёл в систему
Шаг Ожидаемый результат
Найти продукт «Холодильник» Продукт найден
Сценарий 1: авторизация
Сценарий 2: поиск
Шаг Ожидаемый результат
Добавить продукт в корзину Продукт находится в корзине
Сценарий 3: добавление в корзину
Предусловие: пользователь авторизован
Предусловие : страница с результатами поиска под авторизованным пользователем
Куда убрать предусловия?
• Авторизация:
– Открывать браузер уже с готовой веб-сессией
или cookies
• Страница с результатами поиска:
– Открывать URL напрямую
• Любой другой способ доведения системы
до нужного состояния…
Куда убрать предусловия?
Убрать генерацию тестовых данных через
интерфейс
• Через веб-сервисы
• Через sql-скрипты
• Поднимать базу из snapshot’a и тестировать
на одних и тех же данных каждый раз
Не переделывать работу других
• Много систем делается на основе готовых
решений
Не переделывайте работу других
• Используйте готовые API третьих систем
Ваша система на основе
коробочного продукта
Браузер
Автоматические тесты
API
Автоматизировать то, что тестируем,
а не то, как это делается
• Наша цель – протестировать конкретный
функционал, а не покрыть автотестом
ручной сценарий
• Пример:
– Цель теста: проверить, что нельзя добавить
продукт без названия
– Место реализации функционала: триггер в базе
данных
Автоматизировать то, что тестируем,
а не то, как это делается
• Эффективная реализация тестов:
1. Проверить, что данные отправляются из веб-
формы на сервер (отдельный тестовый
сценарий)
2. Проверить, что сервер приложений сохраняет
данные в базу
3. Попробовать добавить в базу запись и
получить результат триггера
Разделяй и властвуй
• Отдельно тестируем серверную логику
– Через веб-сервисы
– Через любой другой API
– Напрямую на сервере
• Отдельно проверяем работу UI
– Jasmine
• Смотрим, что вместе всё также работает
– Selenium, QTP (вершина пирамиды)
Недостатки
• Надо понимать, что именно и как
тестируется
• При тестировании «по кусочкам» можно
что-то упустить
• Вывод: следует находить «золотую
середину»
Подводя итоги…
• UI-автотесты – универсальные, но
длительные и нестабильные
• Как с этим бороться:
– Понимайте, что именно и как вы тестируете
– Заглядывайте внутрь вашей системы, чтобы
стать ближе к объекту тестирования
– Разбивайте задачу тестирования на части
– Не переделывайте работу других
Спасибо за внимание!
Вопросы?
Игорь Хрол
• E-mail: khroliz@gmail.com
• Skype: igor.khrol
• LinkedIn: http://www.linkedin.com/in/khroliz
• Блог: http://ru.khroliz.com
• Facebook: https://www.facebook.com/khroliz

More Related Content

What's hot

The fast and the continuous
The fast and the continuousThe fast and the continuous
The fast and the continuous
SQALab
 
История HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуИстория HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качеству
SQALab
 
Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?
Igor Khrol
 
Webium: Page Objects in Python
Webium: Page Objects in PythonWebium: Page Objects in Python
Webium: Page Objects in Python
Igor Khrol
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрока
SQALab
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестов
CodeFest
 
Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriver
Igor Khrol
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
Igor Lyubin
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
Igor Lyubin
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
SQALab
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
SQALab
 
Continuous Integration для тестировщиков
Continuous Integration для тестировщиковContinuous Integration для тестировщиков
Continuous Integration для тестировщиков
Uladzimir Kryvenka
 
Continuous Integration для QA
Continuous Integration для QAContinuous Integration для QA
Continuous Integration для QA
Ivan Kolodyazhny
 
CQRS. Event Sourcing. Особенности тестирования
CQRS. Event Sourcing. Особенности тестированияCQRS. Event Sourcing. Особенности тестирования
CQRS. Event Sourcing. Особенности тестирования
Uladzimir Kryvenka
 
Практика тестирования web сервисов
Практика тестирования web сервисовПрактика тестирования web сервисов
Практика тестирования web сервисов
SQALab
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Mail.ru Group
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QAFest
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
COMAQA.BY
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Mail.ru Group
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Mail.ru Group
 

What's hot (20)

The fast and the continuous
The fast and the continuousThe fast and the continuous
The fast and the continuous
 
История HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуИстория HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качеству
 
Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?
 
Webium: Page Objects in Python
Webium: Page Objects in PythonWebium: Page Objects in Python
Webium: Page Objects in Python
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрока
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестов
 
Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriver
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Continuous Integration для тестировщиков
Continuous Integration для тестировщиковContinuous Integration для тестировщиков
Continuous Integration для тестировщиков
 
Continuous Integration для QA
Continuous Integration для QAContinuous Integration для QA
Continuous Integration для QA
 
CQRS. Event Sourcing. Особенности тестирования
CQRS. Event Sourcing. Особенности тестированияCQRS. Event Sourcing. Особенности тестирования
CQRS. Event Sourcing. Особенности тестирования
 
Практика тестирования web сервисов
Практика тестирования web сервисовПрактика тестирования web сервисов
Практика тестирования web сервисов
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
 

Viewers also liked

Why test automation projects are failing
Why test automation projects are failingWhy test automation projects are failing
Why test automation projects are failing
Igor Khrol
 
автоматизация Flex приложений с помощью selenium rc
автоматизация Flex приложений с помощью selenium rcавтоматизация Flex приложений с помощью selenium rc
автоматизация Flex приложений с помощью selenium rcIgor Khrol
 
Пирамида Тестирования через призму ROI калькулятора и прочая геометрия
Пирамида Тестирования через призму ROI калькулятора и прочая геометрияПирамида Тестирования через призму ROI калькулятора и прочая геометрия
Пирамида Тестирования через призму ROI калькулятора и прочая геометрия
SQALab
 
QA Fest 2015. Игорь Хрол. Автоматизация тестирования: отбрасываем лишнее и пр...
QA Fest 2015. Игорь Хрол. Автоматизация тестирования: отбрасываем лишнее и пр...QA Fest 2015. Игорь Хрол. Автоматизация тестирования: отбрасываем лишнее и пр...
QA Fest 2015. Игорь Хрол. Автоматизация тестирования: отбрасываем лишнее и пр...
QAFest
 
Page object with selenide
Page object with selenidePage object with selenide
Page object with selenide
COMAQA.BY
 
Appium для народа
Appium для народаAppium для народа
Appium для народа
SQALab
 

Viewers also liked (6)

Why test automation projects are failing
Why test automation projects are failingWhy test automation projects are failing
Why test automation projects are failing
 
автоматизация Flex приложений с помощью selenium rc
автоматизация Flex приложений с помощью selenium rcавтоматизация Flex приложений с помощью selenium rc
автоматизация Flex приложений с помощью selenium rc
 
Пирамида Тестирования через призму ROI калькулятора и прочая геометрия
Пирамида Тестирования через призму ROI калькулятора и прочая геометрияПирамида Тестирования через призму ROI калькулятора и прочая геометрия
Пирамида Тестирования через призму ROI калькулятора и прочая геометрия
 
QA Fest 2015. Игорь Хрол. Автоматизация тестирования: отбрасываем лишнее и пр...
QA Fest 2015. Игорь Хрол. Автоматизация тестирования: отбрасываем лишнее и пр...QA Fest 2015. Игорь Хрол. Автоматизация тестирования: отбрасываем лишнее и пр...
QA Fest 2015. Игорь Хрол. Автоматизация тестирования: отбрасываем лишнее и пр...
 
Page object with selenide
Page object with selenidePage object with selenide
Page object with selenide
 
Appium для народа
Appium для народаAppium для народа
Appium для народа
 

Similar to “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников

Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадКонцепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
SQALab
 
Плюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизниПлюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизни
z-tech
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
WrikeTechClub
 
Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три года
SQALab
 
Automation Overview
Automation OverviewAutomation Overview
Automation OverviewKiraKeiss
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
CodeFest
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
SQALab
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
Return on Intelligence
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
vyacheslavmaslov
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентацияvyacheslavmaslov
 
Автоматизация тестирования: почему умирают проекты?
Автоматизация тестирования: почему умирают проекты?Автоматизация тестирования: почему умирают проекты?
Автоматизация тестирования: почему умирают проекты?
SQALab
 
Автоматизация Тестирования - Почему умирают проекты?
Автоматизация Тестирования - Почему умирают проекты?Автоматизация Тестирования - Почему умирают проекты?
Автоматизация Тестирования - Почему умирают проекты?
Igor Khrol
 
Автоматизация тестирования
Автоматизация тестированияАвтоматизация тестирования
Автоматизация тестирования
Колёса Крыша Маркет
 
Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)Paul Stashevsky
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
SQALab
 
Автоматизация сборки и тестирования в разрезе эффективного производства
Автоматизация сборки и тестирования в разрезе эффективного производстваАвтоматизация сборки и тестирования в разрезе эффективного производства
Автоматизация сборки и тестирования в разрезе эффективного производства
SQALab
 
Нагрузочное тестирование web проектов
Нагрузочное тестирование web проектовНагрузочное тестирование web проектов
Нагрузочное тестирование web проектов
SQALab
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
SQALab
 
Mikhail Dovgiy, QA Stand Up: Episode 4
Mikhail Dovgiy, QA Stand Up: Episode 4Mikhail Dovgiy, QA Stand Up: Episode 4
Mikhail Dovgiy, QA Stand Up: Episode 4
Provectus
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
 

Similar to “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников (20)

Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадКонцепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
 
Плюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизниПлюсы и минусы автоматизации, пример из жизни
Плюсы и минусы автоматизации, пример из жизни
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 
Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три года
 
Automation Overview
Automation OverviewAutomation Overview
Automation Overview
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
 
3 лекция. презентация
3 лекция. презентация3 лекция. презентация
3 лекция. презентация
 
Автоматизация тестирования: почему умирают проекты?
Автоматизация тестирования: почему умирают проекты?Автоматизация тестирования: почему умирают проекты?
Автоматизация тестирования: почему умирают проекты?
 
Автоматизация Тестирования - Почему умирают проекты?
Автоматизация Тестирования - Почему умирают проекты?Автоматизация Тестирования - Почему умирают проекты?
Автоматизация Тестирования - Почему умирают проекты?
 
Автоматизация тестирования
Автоматизация тестированияАвтоматизация тестирования
Автоматизация тестирования
 
Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
 
Автоматизация сборки и тестирования в разрезе эффективного производства
Автоматизация сборки и тестирования в разрезе эффективного производстваАвтоматизация сборки и тестирования в разрезе эффективного производства
Автоматизация сборки и тестирования в разрезе эффективного производства
 
Нагрузочное тестирование web проектов
Нагрузочное тестирование web проектовНагрузочное тестирование web проектов
Нагрузочное тестирование web проектов
 
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
 
Mikhail Dovgiy, QA Stand Up: Episode 4
Mikhail Dovgiy, QA Stand Up: Episode 4Mikhail Dovgiy, QA Stand Up: Episode 4
Mikhail Dovgiy, QA Stand Up: Episode 4
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 

“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников

  • 1. И никуда не надо ехать! “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников Игорь Хрол http://www.khroliz.com
  • 2. О себе • Игорь Хрол • Более семи лет в автоматизации тестирования • Консультант, тренер, инженер, менеджер, архитектор • Selenium, HP QTP, TestCompete, JMeter • Докладчик на AutoConfeT&QA’2012
  • 3. О чём будем говорить?
  • 4. О чём будем говорить?
  • 5. Что мы понимаем под автоматизацией тестирования?
  • 8. Проблема • Автотесты долго писать • А что мне делать, пока работает автотест?
  • 14. Тестируем функционал там, где он реализован Поддержка Количество тестов Уровень
  • 16. Обычная картина на проектах UI тесты API тесты Unit
  • 20. Структурируйте тестовую методику • Понять, что именно тестируем • Не тестировать много раз одно и то же
  • 21. Сценарий 1: авторизация Шаг Ожидаемый результат Открыть страницу логина Страница открыта Заполнить имя пользователя Имя пользователя заполнено Заполнить поле пароля Пароль введён Нажать на кнопку «Войти» Пользователь вошёл в систему
  • 22. Сценарий 2: поиск Шаг Ожидаемый результат Открыть страницу логина Страница открыта Заполнить имя пользователя Имя пользователя заполнено Заполнить поле пароля Пароль введён Нажать на кнопку «Войти» Пользователь вошёл в систему Найти продукт «Холодильник» Продукт найден
  • 23. Сценарий 3: добавление в корзину Шаг Ожидаемый результат Открыть страницу логина Страница открыта Заполнить имя пользователя Имя пользователя заполнено Заполнить поле пароля Пароль введён Нажать на кнопку «Войти» Пользователь вошёл в систему Найти продукт «Холодильник» Продукт найден Добавить продукт в корзину Продукт находится в корзине
  • 24. Сценарий 1-3: авторизация, поиск и добавление в корзину Шаг Ожидаемый результат Открыть страницу логина Страница открыта Заполнить имя пользователя Имя пользователя заполнено Заполнить поле пароля Пароль введён Нажать на кнопку «Войти» Пользователь вошёл в систему Найти продукт «Холодильник» Продукт найден Добавить продукт в корзину Продукт находится в корзине Много зависимостей «Цепные» падения тестов
  • 25. Шаг Ожидаемый результат Открыть страницу логина Страница открыта Заполнить имя пользователя Имя пользователя заполнено Заполнить поле пароля Пароль введён Нажать на кнопку «Войти» Пользователь вошёл в систему Шаг Ожидаемый результат Найти продукт «Холодильник» Продукт найден Сценарий 1: авторизация Сценарий 2: поиск Шаг Ожидаемый результат Добавить продукт в корзину Продукт находится в корзине Сценарий 3: добавление в корзину Предусловие: пользователь авторизован Предусловие : страница с результатами поиска под авторизованным пользователем
  • 26. Куда убрать предусловия? • Авторизация: – Открывать браузер уже с готовой веб-сессией или cookies • Страница с результатами поиска: – Открывать URL напрямую • Любой другой способ доведения системы до нужного состояния…
  • 27. Куда убрать предусловия? Убрать генерацию тестовых данных через интерфейс • Через веб-сервисы • Через sql-скрипты • Поднимать базу из snapshot’a и тестировать на одних и тех же данных каждый раз
  • 28. Не переделывать работу других • Много систем делается на основе готовых решений
  • 29. Не переделывайте работу других • Используйте готовые API третьих систем Ваша система на основе коробочного продукта Браузер Автоматические тесты API
  • 30. Автоматизировать то, что тестируем, а не то, как это делается • Наша цель – протестировать конкретный функционал, а не покрыть автотестом ручной сценарий • Пример: – Цель теста: проверить, что нельзя добавить продукт без названия – Место реализации функционала: триггер в базе данных
  • 31. Автоматизировать то, что тестируем, а не то, как это делается • Эффективная реализация тестов: 1. Проверить, что данные отправляются из веб- формы на сервер (отдельный тестовый сценарий) 2. Проверить, что сервер приложений сохраняет данные в базу 3. Попробовать добавить в базу запись и получить результат триггера
  • 32. Разделяй и властвуй • Отдельно тестируем серверную логику – Через веб-сервисы – Через любой другой API – Напрямую на сервере • Отдельно проверяем работу UI – Jasmine • Смотрим, что вместе всё также работает – Selenium, QTP (вершина пирамиды)
  • 33. Недостатки • Надо понимать, что именно и как тестируется • При тестировании «по кусочкам» можно что-то упустить • Вывод: следует находить «золотую середину»
  • 34. Подводя итоги… • UI-автотесты – универсальные, но длительные и нестабильные • Как с этим бороться: – Понимайте, что именно и как вы тестируете – Заглядывайте внутрь вашей системы, чтобы стать ближе к объекту тестирования – Разбивайте задачу тестирования на части – Не переделывайте работу других
  • 35. Спасибо за внимание! Вопросы? Игорь Хрол • E-mail: khroliz@gmail.com • Skype: igor.khrol • LinkedIn: http://www.linkedin.com/in/khroliz • Блог: http://ru.khroliz.com • Facebook: https://www.facebook.com/khroliz