Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS Почте Mail.Ru»
“Можно ли перевернуть пирамиду?” – автоматизируем...
-
Upload
igor-khrol -
Category
Technology
-
view
5.454 -
download
1
description
Transcript of “Можно ли перевернуть пирамиду?” – автоматизируем...
![Page 1: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/1.jpg)
И никуда не надо ехать!
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с
меньшим числом посредников
Игорь Хрол
http://www.khroliz.com
![Page 2: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/2.jpg)
О себе
• Игорь Хрол
• Более семи лет в автоматизации тестирования
• Консультант, тренер, инженер, менеджер, архитектор
• Selenium, HP QTP, TestCompete, JMeter
• Докладчик на AutoConfeT&QA’2012
![Page 3: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/3.jpg)
О чём будем говорить?
![Page 4: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/4.jpg)
О чём будем говорить?
![Page 5: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/5.jpg)
Что мы понимаем под автоматизацией тестирования?
![Page 6: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/6.jpg)
Проблема
Автоматические тесты через пользовательский интерфейс медленные
![Page 7: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/7.jpg)
Проблема
Автоматические тесты через пользовательский интерфейс нестабильные и
хрупкие
![Page 8: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/8.jpg)
Проблема
• Автотесты долго писать
• А что мне делать, пока работает автотест?
![Page 9: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/9.jpg)
Причины
Большое число посредников
![Page 10: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/10.jpg)
Проблема
Большое число посредников
![Page 11: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/11.jpg)
Что делать?
![Page 12: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/12.jpg)
Хороший фреймворк!
![Page 13: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/13.jpg)
Становится лучше, но не хорошо
![Page 14: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/14.jpg)
Тестируем функционал там, где он реализован
Поддержка
Количество тестов
Уровень
![Page 15: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/15.jpg)
Правильная «Пирамида»
UI
API тесты
Unit тесты
![Page 16: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/16.jpg)
Обычная картина на проектах
UI тесты
API тесты
Unit
![Page 17: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/17.jpg)
Направления для решения
![Page 18: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/18.jpg)
Научиться программировать
![Page 19: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/19.jpg)
Понимать, что происходит внутри
![Page 20: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/20.jpg)
Структурируйте тестовую методику
• Понять, что именно тестируем
• Не тестировать много раз одно и то же
![Page 21: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/21.jpg)
Сценарий 1: авторизация
Шаг Ожидаемый результат
Открыть страницу логина Страница открыта
Заполнить имя пользователя Имя пользователя заполнено
Заполнить поле пароля Пароль введён
Нажать на кнопку «Войти» Пользователь вошёл в систему
![Page 22: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/22.jpg)
Сценарий 2: поиск
Шаг Ожидаемый результат
Открыть страницу логина Страница открыта
Заполнить имя пользователя Имя пользователя заполнено
Заполнить поле пароля Пароль введён
Нажать на кнопку «Войти» Пользователь вошёл в систему
Найти продукт «Холодильник» Продукт найден
![Page 23: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/23.jpg)
Сценарий 3: добавление в корзину
Шаг Ожидаемый результат
Открыть страницу логина Страница открыта
Заполнить имя пользователя Имя пользователя заполнено
Заполнить поле пароля Пароль введён
Нажать на кнопку «Войти» Пользователь вошёл в систему
Найти продукт «Холодильник» Продукт найден
Добавить продукт в корзину Продукт находится в корзине
![Page 24: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/24.jpg)
Сценарий 1-3: авторизация, поиск и добавление в корзину
Шаг Ожидаемый результат
Открыть страницу логина Страница открыта
Заполнить имя пользователя Имя пользователя заполнено
Заполнить поле пароля Пароль введён
Нажать на кнопку «Войти» Пользователь вошёл в систему
Найти продукт «Холодильник» Продукт найден
Добавить продукт в корзину Продукт находится в корзине
Много зависимостей «Цепные» падения тестов
![Page 25: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/25.jpg)
Шаг Ожидаемый результат
Открыть страницу логина Страница открыта
Заполнить имя пользователя Имя пользователя заполнено
Заполнить поле пароля Пароль введён
Нажать на кнопку «Войти» Пользователь вошёл в систему
Шаг Ожидаемый результат
Найти продукт «Холодильник» Продукт найден
Сценарий 1: авторизация
Сценарий 2: поиск
Шаг Ожидаемый результат
Добавить продукт в корзину Продукт находится в корзине
Сценарий 3: добавление в корзину
Предусловие: пользователь авторизован
Предусловие : страница с результатами поиска под авторизованным пользователем
![Page 26: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/26.jpg)
Куда убрать предусловия?
• Авторизация:
– Открывать браузер уже с готовой веб-сессией или cookies
• Страница с результатами поиска:
– Открывать URL напрямую
• Любой другой способ доведения системы до нужного состояния…
![Page 27: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/27.jpg)
Куда убрать предусловия?
Убрать генерацию тестовых данных через интерфейс
• Через веб-сервисы
• Через sql-скрипты
• Поднимать базу из snapshot’a и тестировать на одних и тех же данных каждый раз
![Page 28: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/28.jpg)
Не переделывать работу других
• Много систем делается на основе готовых решений
![Page 29: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/29.jpg)
Не переделывайте работу других
• Используйте готовые API третьих систем
Ваша система на основе коробочного продукта
Браузер
Автоматические тесты
API
![Page 30: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/30.jpg)
Автоматизировать то, что тестируем, а не то, как это делается
• Наша цель – протестировать конкретный функционал, а не покрыть автотестом ручной сценарий
• Пример:
– Цель теста: проверить, что нельзя добавить продукт без названия
– Место реализации функционала: триггер в базе данных
![Page 31: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/31.jpg)
Автоматизировать то, что тестируем, а не то, как это делается
• Эффективная реализация тестов: 1. Проверить, что данные отправляются из веб-
формы на сервер (отдельный тестовый сценарий)
2. Проверить, что сервер приложений сохраняет данные в базу
3. Попробовать добавить в базу запись и получить результат триггера
![Page 32: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/32.jpg)
Разделяй и властвуй
• Отдельно тестируем серверную логику – Через веб-сервисы
– Через любой другой API
– Напрямую на сервере
• Отдельно проверяем работу UI – Jasmine
• Смотрим, что вместе всё также работает – Selenium, QTP (вершина пирамиды)
![Page 33: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/33.jpg)
Недостатки
• Надо понимать, что именно и как тестируется
• При тестировании «по кусочкам» можно что-то упустить
• Вывод: следует находить «золотую середину»
![Page 34: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/34.jpg)
Подводя итоги…
• UI-автотесты – универсальные, но длительные и нестабильные
• Как с этим бороться:
– Понимайте, что именно и как вы тестируете
– Заглядывайте внутрь вашей системы, чтобы стать ближе к объекту тестирования
– Разбивайте задачу тестирования на части
– Не переделывайте работу других
![Page 35: “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников](https://reader034.fdocument.pub/reader034/viewer/2022052601/558bb748d8b42a95628b45ba/html5/thumbnails/35.jpg)
Спасибо за внимание! Вопросы?
Игорь Хрол
• E-mail: [email protected]
• Skype: igor.khrol
• LinkedIn: http://www.linkedin.com/in/khroliz
• Блог: http://ru.khroliz.com
• Facebook: https://www.facebook.com/khroliz