Upload
sqalab
View
1.189
Download
1
Embed Size (px)
DESCRIPTION
Доклад Игоря Хрола на конференции SQA Days-12, 30 ноября-1 декабря, Минск
Citation preview
Автоматизация тестирования: почему умирают проекты?
Игорь Хрол, EPAM Systems
План
• Что плохо с автоматизацией тестирования?• Пять типичных ошибок в UI автоматизации
тестирования• Возможные решения, чтобы сделать успешную
автоматизацию тестирования:– Технические решения– Организационные решения
• Вопросы и ответы
Немного о себе…• Игорь Хрол• Software Testing Manager
EPAM Systems• Более шести лет опыта работы в
автоматизации тестирования (инженер, архитектор, менеджер, консультант, тренер)
• Опыт работы с большинством наиболее популярных инструментов и подходов
• Десятки проектов по автоматизации тестирования и тестированию производительности
Успешный проект по автоматизации тестирования: что это такое?
Успех в автоматизации тестирования
• Что такое «успех» для автоматизации?• То же, что и для других проектов:
– Заказчик счастлив– «Выхлоп» больше затрат
• Специфика автоматизации тестирования:– Уменьшился объём ручного
тестирования– Регрессия стала занимать меньше
времени– Найдено больше дефектов
Каковы шансы быть успешными?
???Нет результата
Успех
Каковы шансы быть успешными?
УспехНет результата
80% 20%
Типичные причины
Причина №1: Запись тестов (Recording)
Причины: запись тестов
• Самое первое в коммерческих инструментах
• Выглядит многообещающе при покупке
Причины: запись тестов
• Почему неудача?– Запись тестов перестаёт работать на чуть более
сложных приложениях, чем на демонстрации– Невозможно поддерживать
Запись тестов: решения
Запись тестов: решения
• Не используйте запись тестов• Пишите тесты руками
Запись тестов: решения
• Убедитесь, что запись тестов работает для вашего приложения– Настройте приложение– Настройте инструмент
• Формализуйте тестовые сценарии• Не пытайтесь поддерживать тесты
– В случае падений перезаписывайте скрипты
Запись тестов: решения
• В случае падений перезаписывайте скрипты
Запись
Запуск
Отчёт
FailРучная
проверка
Перезапись
Pass
16
Confidential
Причина №2:UI автоматизация медленная
Причины: UI автоматизация медленная
• UI автоматизация включает в себя полное end-to-end решение– Браузер (или другого клиента)– Сеть– Сервер приложений (или серверную часть)– База данных
• UI автоматизация работает с браузером, а не с кодом приложения
UI автоматизация медленная: решения
UI автоматизация медленная: решения
• Не используйте «sleep» для синхронизации
UI автоматизация медленная: решения
• Запускайте тесты параллельно– Разработайте тестовую архитектуру для
параллелизации– Разрабатывайте тестовые сценарии и тестовые данные
для параллелизации– Используйте «облака» для запуска тестов
UI автоматизация медленная: решения
• Фокусируйтесь на других видах автоматизации тестированияU
I
API Testing
Unit Testing
Причина №3: UI автоматизация нестабильная
Причины: UI автоматизация нестабильная
• Такова природа UI автоматизации• 2-3% в среднем “failed” тестов
UI автоматизация нестабильна: решения
UI автоматизация нестабильна: решения
• Фокусируйтесь на других видах автоматизации тестированияU
I
API Testing
Unit Testing
UI автоматизация нестабильна: решения
• Перезапускайте упавшие тесты до анализа результатов• Анализируйте только дважды упавшие тесты
• Всего – 1000 тестов• Дефектов – 5 штук• Процент падений – 3%• 1 мин для выполнения• 10 мин для анализа
1 запуск
Упавших тестов(1000 – 5 ) * 3% + 5 = 35
Время выполнения1000мин = 16.7ч
Время для анализа35 * 10мин = 5.8ч
1 запуск + 1 перезапуск
Упавших тестов(1000 – 5) * 3% + 5 = 35(35 - 5) * 3% + 5 = 6
Время выполнения1000мин + 35мин = 17.3ч
Время для анализа6 * 10мин = 1ч
Причина №4:Слишком дорого разрабатывать и поддерживать
Причины: слишком дорого
• Тесты медленные– Тест запускается 10-15 раз в
ходе разработки– 2-5 раз для внесения
исправлений в ходе поддержки
Причины: слишком дорого
• Неправильный выбор инструмента
Код с ошибкой Исправленный код
Почему???
Причины: слишком дорого
• Недостаточно знаний у команды
Разработка ТестированиеTest Automation
Автоматизация тестирования
Слишком дорого разрабатывать и поддерживать: решения
Слишком дорого: решения
• Тесно сотрудничайте с командой разработки, чтобы сделать пользовательский интерфейс автоматизируемым:– Добавление статических идентификаторов– Реализация простой процедуры для синхронизации
Слишком дорого: решения
• Используйте эффективный фреймворк по автоматизации
• Высокое ре-использование кода– Ускоренное написания тестов– Поддержка тестов меньшим количеством изменений
Слишком дорого: решения
• «Недостаточно знаний у команды» – как решать?• Отделите создание фреймворка от написания
тестовых скриптов
Инструмент Производитель
ФреймворкКоманда
автоматизации
Тестовые скрипты Команда тестирования
Проблема №5:Автоматизация не используется
Проблема: автоматизация не используется
• «Мы не доверяем автоматическим результатам – лучше перепроверим руками»
• Слишком сложно запускать тесты и анализировать результаты
Автоматизация не используется: решения
Автоматизация не используется: решения
• Интегрируйте автоматизацию тестирования с существующими тестовыми системами
• Упростите процесс запуска тестов
Автоматизация не используется: решения
• Установите ясную процедуру анализа результатовЗапуск теста
Внести дефект
Упал – на тестируемое приложение Прошёл – на автотесты
В завершение…
Подводя итоги…
• Что делать, чтобы добиться успеха в автоматизации тестирования:– Выберите правильный инструмент, фреймворк,
техническое решение…– Внимательно отнеситесь к разделению обязанностей и
процессу– Тесно сотрудничайте между различными командами
(тестирование, автоматизация, разработка)
Игорь ХролSoftware Testing ManagerEPAM Systems
igor.khrol (Skype ID)+375 (29) 744-7856 (Mobile)[email protected]
Вопросы?