2. План
• Что плохо с автоматизацией тестирования?
• Пять типичных ошибок в UI автоматизации
тестирования
• Возможные решения, чтобы сделать успешную
автоматизацию тестирования:
– Технические решения
– Организационные решения
• Вопросы и ответы
3. Немного о себе…
• Игорь Хрол
• Software Testing Manager
EPAM Systems
• Более шести лет опыта работы в
автоматизации тестирования
(инженер, архитектор, менеджер,
консультант, тренер)
• Опыт работы с большинством
наиболее популярных инструментов
и подходов
• Десятки проектов по автоматизации
тестирования и тестированию
производительности
5. Успех в автоматизации
тестирования
• Что такое «успех» для автоматизации?
• То же, что и для других проектов:
– Заказчик счастлив
– «Выхлоп» больше затрат
• Специфика автоматизации
тестирования:
– Уменьшился объѐм ручного
тестирования
– Регрессия стала занимать меньше
времени
– Найдено больше дефектов
10. Причины: запись тестов
• Самое первое в коммерческих
инструментах
• Выглядит многообещающе при
покупке
11. Причины: запись тестов
• Почему неудача?
– Запись тестов перестаѐт работать на чуть более
сложных приложениях, чем на демонстрации
– Невозможно поддерживать
14. Запись тестов: решения
• Убедитесь, что запись тестов работает для вашего
приложения
– Настройте приложение
– Настройте инструмент
• Формализуйте тестовые сценарии
• Не пытайтесь поддерживать тесты
– В случае падений перезаписывайте скрипты
15. Запись тестов: решения
• В случае падений перезаписывайте скрипты
Pass
Ручная
Запись Запуск Отчёт Fail проверка
Перезапись
17. Причины: UI автоматизация
медленная
• UI автоматизация включает в себя полное end-to-end
решение
– Браузер (или другого клиента)
– Сеть
– Сервер приложений (или серверную часть)
– База данных
• UI автоматизация
работает с браузером,
а не с кодом приложения
19. UI автоматизация
медленная: решения
• Не используйте «sleep» для синхронизации
20. UI автоматизация
медленная: решения
• Запускайте тесты параллельно
– Разработайте тестовую архитектуру для
параллелизации
– Разрабатывайте тестовые сценарии и тестовые
данные для параллелизации
– Используйте «облака» для запуска тестов
21. UI автоматизация
медленная: решения
• Фокусируйтесь на других видах автоматизации
тестирования
UI
API Testing
Unit Testing
25. UI автоматизация
нестабильна: решения
• Фокусируйтесь на других видах автоматизации
тестирования
UI
API Testing
Unit Testing
26. UI автоматизация
нестабильна: решения
• Перезапускайте упавшие тесты до анализа результатов
• Анализируйте только дважды упавшие тесты
• Всего – 1000 тестов 1 запуск 1 запуск + 1 перезапуск
• Дефектов – 5 штук Упавших тестов Упавших тестов
• Процент падений – 3% (1000 – 5 ) * 3% + 5 = 35 (1000 – 5) * 3% + 5 = 35
• 1 мин для выполнения (35 - 5) * 3% + 5 = 6
Время выполнения
1000мин = 16.7ч Время выполнения
• 10 мин для анализа 1000мин + 35мин = 17.3ч
Время для анализа
Время для анализа
35 * 10мин = 5.8ч
6 * 10мин = 1ч
32. Слишком дорого: решения
• Тесно сотрудничайте с командой разработки, чтобы
сделать пользовательский интерфейс
автоматизируемым:
– Добавление статических идентификаторов
– Реализация простой процедуры для синхронизации
33. Слишком дорого: решения
• Используйте эффективный фреймворк по
автоматизации
• Высокое ре-использование кода
– Ускоренное написания тестов
– Поддержка тестов меньшим количеством изменений
34. Слишком дорого: решения
• «Недостаточно знаний у команды» – как решать?
• Отделите создание фреймворка от написания
тестовых скриптов
Тестовые скрипты Команда тестирования
Команда
Фреймворк
автоматизации
Инструмент Производитель
36. Проблема: автоматизация
не используется
• «Мы не доверяем
автоматическим результатам –
лучше перепроверим руками»
• Слишком сложно запускать
тесты и анализировать
результаты
38. Автоматизация не
используется: решения
• Интегрируйте автоматизацию тестирования с
существующими тестовыми системами
• Упростите процесс запуска тестов
39. Автоматизация не
используется: решения
• Установите ясную процедуру анализа результатов
Запуск теста
Если упал – прогнать вручную
Внести дефект
Упал – на тестируемое приложение
Прошѐл – на автотесты
41. Подводя итоги…
• Что делать, чтобы добиться успеха в автоматизации
тестирования:
– Выберите правильный инструмент, фреймворк,
техническое решение…
– Внимательно отнеситесь к разделению обязанностей и
процессу
– Тесно сотрудничайте между различными командами
(тестирование, автоматизация, разработка)
42. Вопросы?
Игорь Хрол igor.khrol (Skype ID)
Software Testing Manager +375 (29) 744-7856 (Mobile)
EPAM Systems igor_khrol@epam.com