42
Автоматизация тестирования: почему умирают проекты? Игорь Хрол, EPAM Systems

Автоматизация тестирования: почему умирают проекты?

  • Upload
    sqalab

  • View
    1.189

  • Download
    1

Embed Size (px)

DESCRIPTION

Доклад Игоря Хрола на конференции SQA Days-12, 30 ноября-1 декабря, Минск

Citation preview

Page 1: Автоматизация тестирования: почему умирают проекты?

Автоматизация тестирования: почему умирают проекты?

Игорь Хрол, EPAM Systems

Page 2: Автоматизация тестирования: почему умирают проекты?

План

• Что плохо с автоматизацией тестирования?• Пять типичных ошибок в UI автоматизации

тестирования• Возможные решения, чтобы сделать успешную

автоматизацию тестирования:– Технические решения– Организационные решения

• Вопросы и ответы

Page 3: Автоматизация тестирования: почему умирают проекты?

Немного о себе…• Игорь Хрол• Software Testing Manager

EPAM Systems• Более шести лет опыта работы в

автоматизации тестирования (инженер, архитектор, менеджер, консультант, тренер)

• Опыт работы с большинством наиболее популярных инструментов и подходов

• Десятки проектов по автоматизации тестирования и тестированию производительности

Page 4: Автоматизация тестирования: почему умирают проекты?

Успешный проект по автоматизации тестирования: что это такое?

Page 5: Автоматизация тестирования: почему умирают проекты?

Успех в автоматизации тестирования

• Что такое «успех» для автоматизации?• То же, что и для других проектов:

– Заказчик счастлив– «Выхлоп» больше затрат

• Специфика автоматизации тестирования:– Уменьшился объём ручного

тестирования– Регрессия стала занимать меньше

времени– Найдено больше дефектов

Page 6: Автоматизация тестирования: почему умирают проекты?

Каковы шансы быть успешными?

???Нет результата

Успех

Page 7: Автоматизация тестирования: почему умирают проекты?

Каковы шансы быть успешными?

УспехНет результата

80% 20%

Page 8: Автоматизация тестирования: почему умирают проекты?

Типичные причины

Page 9: Автоматизация тестирования: почему умирают проекты?

Причина №1: Запись тестов (Recording)

Page 10: Автоматизация тестирования: почему умирают проекты?

Причины: запись тестов

• Самое первое в коммерческих инструментах

• Выглядит многообещающе при покупке

Page 11: Автоматизация тестирования: почему умирают проекты?

Причины: запись тестов

• Почему неудача?– Запись тестов перестаёт работать на чуть более

сложных приложениях, чем на демонстрации– Невозможно поддерживать

Page 12: Автоматизация тестирования: почему умирают проекты?

Запись тестов: решения

Page 13: Автоматизация тестирования: почему умирают проекты?

Запись тестов: решения

• Не используйте запись тестов• Пишите тесты руками

Page 14: Автоматизация тестирования: почему умирают проекты?

Запись тестов: решения

• Убедитесь, что запись тестов работает для вашего приложения– Настройте приложение– Настройте инструмент

• Формализуйте тестовые сценарии• Не пытайтесь поддерживать тесты

– В случае падений перезаписывайте скрипты

Page 15: Автоматизация тестирования: почему умирают проекты?

Запись тестов: решения

• В случае падений перезаписывайте скрипты

Запись

Запуск

Отчёт

FailРучная

проверка

Перезапись

Pass

Page 16: Автоматизация тестирования: почему умирают проекты?

16

Confidential

Причина №2:UI автоматизация медленная

Page 17: Автоматизация тестирования: почему умирают проекты?

Причины: UI автоматизация медленная

• UI автоматизация включает в себя полное end-to-end решение– Браузер (или другого клиента)– Сеть– Сервер приложений (или серверную часть)– База данных

• UI автоматизация работает с браузером, а не с кодом приложения

Page 18: Автоматизация тестирования: почему умирают проекты?

UI автоматизация медленная: решения

Page 19: Автоматизация тестирования: почему умирают проекты?

UI автоматизация медленная: решения

• Не используйте «sleep» для синхронизации

Page 20: Автоматизация тестирования: почему умирают проекты?

UI автоматизация медленная: решения

• Запускайте тесты параллельно– Разработайте тестовую архитектуру для

параллелизации– Разрабатывайте тестовые сценарии и тестовые данные

для параллелизации– Используйте «облака» для запуска тестов

Page 21: Автоматизация тестирования: почему умирают проекты?

UI автоматизация медленная: решения

• Фокусируйтесь на других видах автоматизации тестированияU

I

API Testing

Unit Testing

Page 22: Автоматизация тестирования: почему умирают проекты?

Причина №3: UI автоматизация нестабильная

Page 23: Автоматизация тестирования: почему умирают проекты?

Причины: UI автоматизация нестабильная

• Такова природа UI автоматизации• 2-3% в среднем “failed” тестов

Page 24: Автоматизация тестирования: почему умирают проекты?

UI автоматизация нестабильна: решения

Page 25: Автоматизация тестирования: почему умирают проекты?

UI автоматизация нестабильна: решения

• Фокусируйтесь на других видах автоматизации тестированияU

I

API Testing

Unit Testing

Page 26: Автоматизация тестирования: почему умирают проекты?

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ч

Page 27: Автоматизация тестирования: почему умирают проекты?

Причина №4:Слишком дорого разрабатывать и поддерживать

Page 28: Автоматизация тестирования: почему умирают проекты?

Причины: слишком дорого

• Тесты медленные– Тест запускается 10-15 раз в

ходе разработки– 2-5 раз для внесения

исправлений в ходе поддержки

Page 29: Автоматизация тестирования: почему умирают проекты?

Причины: слишком дорого

• Неправильный выбор инструмента

Код с ошибкой Исправленный код

Почему???

Page 30: Автоматизация тестирования: почему умирают проекты?

Причины: слишком дорого

• Недостаточно знаний у команды

Разработка ТестированиеTest Automation

Автоматизация тестирования

Page 31: Автоматизация тестирования: почему умирают проекты?

Слишком дорого разрабатывать и поддерживать: решения

Page 32: Автоматизация тестирования: почему умирают проекты?

Слишком дорого: решения

• Тесно сотрудничайте с командой разработки, чтобы сделать пользовательский интерфейс автоматизируемым:– Добавление статических идентификаторов– Реализация простой процедуры для синхронизации

Page 33: Автоматизация тестирования: почему умирают проекты?

Слишком дорого: решения

• Используйте эффективный фреймворк по автоматизации

• Высокое ре-использование кода– Ускоренное написания тестов– Поддержка тестов меньшим количеством изменений

Page 34: Автоматизация тестирования: почему умирают проекты?

Слишком дорого: решения

• «Недостаточно знаний у команды» – как решать?• Отделите создание фреймворка от написания

тестовых скриптов

Инструмент Производитель

ФреймворкКоманда

автоматизации

Тестовые скрипты Команда тестирования

Page 35: Автоматизация тестирования: почему умирают проекты?

Проблема №5:Автоматизация не используется

Page 36: Автоматизация тестирования: почему умирают проекты?

Проблема: автоматизация не используется

• «Мы не доверяем автоматическим результатам – лучше перепроверим руками»

• Слишком сложно запускать тесты и анализировать результаты

Page 37: Автоматизация тестирования: почему умирают проекты?

Автоматизация не используется: решения

Page 38: Автоматизация тестирования: почему умирают проекты?

Автоматизация не используется: решения

• Интегрируйте автоматизацию тестирования с существующими тестовыми системами

• Упростите процесс запуска тестов

Page 39: Автоматизация тестирования: почему умирают проекты?

Автоматизация не используется: решения

• Установите ясную процедуру анализа результатовЗапуск теста

Внести дефект

Упал – на тестируемое приложение Прошёл – на автотесты

Page 40: Автоматизация тестирования: почему умирают проекты?

В завершение…

Page 41: Автоматизация тестирования: почему умирают проекты?

Подводя итоги…

• Что делать, чтобы добиться успеха в автоматизации тестирования:– Выберите правильный инструмент, фреймворк,

техническое решение…– Внимательно отнеситесь к разделению обязанностей и

процессу– Тесно сотрудничайте между различными командами

(тестирование, автоматизация, разработка)

Page 42: Автоматизация тестирования: почему умирают проекты?

Игорь ХролSoftware Testing ManagerEPAM Systems

igor.khrol (Skype ID)+375 (29) 744-7856 (Mobile)[email protected]

Вопросы?