2. План
• Введение
• Что такое автоматизация
• Кто и для кого автоматизирует
• Три ДО
• Цели и заблуждения в автоматизации
• Откуда берутся факапы в автоматизации
• Выбор инструмента
• Метрики
• Автоматизация ручных сценариев
• Откуда появляется идея автоматизировать
• Заключение
* Спасибо интернету за картинки. Все права принадлежат авторам изображений
3. Кому будет интересно
• Руководителям тестирования, которые не
знакомы на практике с автоматизацией, но
хотели бы применить у себя в проекте.
• Командам у которых автоматизация «как бы»
работает, но не приносит зримых результатов.
• Инженерам, которые начинают
автоматизировать, но не знают как вывести
практику с личного на командный уровень.
5. Что такое Автоматизация
Автоматическое
Тестирование (АТ)
Автоматизация
Процесса (АП)
Функциональное и нефункциональное
тестирование разрабатываемого ПО
при помощи специализированных
программ. Автоматизация проверок
20. Автоматизация
Это - ДОБРО
Какие проблемы я хочу решить, внедряя автоматизацию?
Мои ожидания от автоматизации — не заблуждения?
Есть ли в команде «ведущий автоматизатор»?
Есть ли в команде «кузнец» и «окруженосец»?
Есть ли поддержка и понимание руководства и команды?
Знаю ли я как встроить автоматизацию в процесс?
22. Автоматизация
Это - ДОРОГО
Я готов платить за автоматизацию?
Сколько я готов платить за автоматизацию?
Я готов нанять новых людей?
Я готов заплатить за инструменты и обучение?
Я готов платить за инфраструктуру?
Я готов платить постоянно?
24. Автоматизация
Это - ДОЛГО
Я понимаю, что польза от автоматизации не мгновенна?
Я знаю, что все участники разработки будут вовлечены?
Я понимаю, что нужно поменять подход к разработке?
Я понимаю, что начав не смогу остановиться?
Проект достаточно долог, чтобы насладиться плодами?
Я готов тратить время на research в автоматизации?
25. Цели и ожидания от
автоматизации
Сократить время тестирования
26. Цели и ожидания от
автоматизации
Увеличить число проверок / покрытие
Сократить время тестирования
27. Цели и ожидания от
автоматизации
Обеспечить более частые проверки
Увеличить число проверок / покрытие
Сократить время тестирования
28. Цели и ожидания от
автоматизации
Уменьшить влияние «человеческого
фактора»
Увеличить число проверок / покрытие
Сократить время тестирования
Обеспечить более частые проверки
29. Цели и ожидания от
автоматизации
Удешевить тестирование
Увеличить число проверок / покрытие
Сократить время тестирования
Обеспечить более частые проверки
Уменьшить влияние «человеческого фактора»
30. Цели и ожидания от
автоматизации
Внедрить новые виды тестирования
Увеличить число проверок / покрытие
Сократить время тестирования
Обеспечить более частые проверки
Уменьшить влияние «человеческого фактора»
Удешевить тестирование
31. Цели и ожидания от
автоматизации
Сократить время выпуска нового релиза
Увеличить число проверок / покрытие
Сократить время тестирования
Обеспечить более частые проверки
Уменьшить влияние «человеческого фактора»
Удешевить тестирование
Внедрить новые виды тестирования
32. Цели и ожидания от
автоматизации
Заменить ручного тестировщика
автотестами
Увеличить число проверок / покрытие
Сократить время тестирования
Обеспечить более частые проверки
Уменьшить влияние «человеческого фактора»
Удешевить тестирование
Внедрить новые виды тестирования
Сократить время выпуска нового релиза
33. Цели и ожидания от
автоматизации
Фиксация текущего состояния для
сравнения
Увеличить число проверок / покрытие
Сократить время тестирования
Обеспечить более частые проверки
Уменьшить влияние «человеческого фактора»
Удешевить тестирование
Внедрить новые виды тестирования
Сократить время выпуска нового релиза
Заменить ручного тестировщика автотестами
34. Цели и ожидания от
автоматизации
Быстрое получение текущего состояния
Увеличить число проверок / покрытие
Сократить время тестирования
Обеспечить более частые проверки
Уменьшить влияние «человеческого фактора»
Удешевить тестирование
Внедрить новые виды тестирования
Сократить время выпуска нового релиза
Заменить ручного тестировщика автотестами
Фиксация текущего состояния для сравнения
35. Цели и ожидания от
автоматизации
Автоматизировать % ручных сценариев
Увеличить число проверок / покрытие
Обеспечить более частые проверки
Уменьшить влияние «человеческого фактора»
Удешевить тестирование
Внедрить новые виды тестирования
Сократить время выпуска нового релиза
Заменить ручного тестировщика автотестами
Фиксация текущего состояния для сравнения
Быстрое получение текущего состояния
36. Цели и ожидания от
автоматизации
Автоматизировать регрессионное
тестирование
Обеспечить более частые проверки
Уменьшить влияние «человеческого фактора»
Удешевить тестирование
Внедрить новые виды тестирования
Сократить время выпуска нового релиза
Заменить ручного тестировщика автотестами
Фиксация текущего состояния для сравнения
Быстрое получение текущего состояния
Автоматизировать % ручных сценариев
37. Цели и ожидания от
автоматизации
С нашим фреймворком/тулом все будут
писать автотесты
Уменьшить влияние «человеческого фактора»
Удешевить тестирование
Внедрить новые виды тестирования
Сократить время выпуска нового релиза
Заменить ручного тестировщика автотестами
Фиксация текущего состояния для сравнения
Быстрое получение текущего состояния
Автоматизировать % ручных сценариев
Автоматизировать регрессионное тестирование
38. Цели и ожидания от
автоматизации
Сертификация сборки / среды
тестирования
Удешевить тестирование
Внедрить новые виды тестирования
Сократить время выпуска нового релиза
Заменить ручного тестировщика автотестами
Фиксация текущего состояния для сравнения
Быстрое получение текущего состояния
Автоматизировать % ручных сценариев
Автоматизировать регрессионное тестирование
С нашим фреймворком/тулом все будут писать автотесты
39. Цели и ожидания от
автоматизации
Автоматизация упростит тестирование
Внедрить новые виды тестирования
Сократить время выпуска нового релиза
Заменить ручного тестировщика автотестами
Фиксация текущего состояния для сравнения
Быстрое получение текущего состояния
Автоматизировать % ручных сценариев
Автоматизировать регрессионное тестирование
С нашим фреймворком/тулом все будут писать автотесты
Сертификация сборки / среды тестирования
40. Итого про цели
Сократить время выпуска нового релиза
Заменить ручного тестировщика автотестами
Фиксация текущего состояния для сравнения
Быстрое получение текущего состояния
Автоматизировать % ручных сценариев
Автоматизировать регрессионное тестирование
С нашим фреймворком/тулом все будут писать автотесты
Сертификация сборки / среды тестирования
Автоматизация упростит тестирование
Увеличить число проверок / покрытие
Обеспечить более частые проверки
Уменьшить влияние «человеческого фактора»
Удешевить тестирование
Внедрить новые виды тестирования
Сократить время тестирования
41. Причины провала
Совмещение обязанностей «ведущим автоматизатором»
Не дождались / нетерпение / заняло больше времени
Автоматизация ради автоматизации / не в процессе
Несоответствие ожиданиям / ложные ожидания
Плохая архитектура проекта / отсутствие testability
Регрессионные дефекты быстро не чинятся
Редкие запуски
Недостаток квалификации
42. Причины провала
Автоматизация сложной функциональности
Неправильный выбор инструмента / языка
Отсутствие документации автотестов
Отсутствие архитектуры автотестов
Начали с не с того (например UI)
Автоматизировали не то
Сложно запускать
Нестабильность и ненадежность
43. Как исправить
Сперва устранить косяки самих автотестов.
Потом необходимо внедрить АТ в общий процесс
разработки.
Даже небольшое количество надежных тестов могут
сделать чудо.
44. Выбор инструмента
Условно лучше Условно хуже
Кол-во Много Один
Цена Бесплатный Платный
Код Открытый Закрытый
Предназначение Специализированный Многозадачный
Популярность Распространённый Узкоспециальный
Поддержка Активно развивается Редкие релизы
Интерфейс Для инженеров Для людей
Сложность Для людей Для инженеров
Платформа запуска Кроссплатформенный Ограниченный
Запуск / Деплоймент Простой Сложный
Контроль Конфигурируемый Преднастроенный
Интеграция С другими тулами Самодостаточный
Расширяемость Плагины Внешние надстройки
*взгляд гика, поддерживающего unix way философию
51. Метрики
Время выполнения
Время на поддержку
Процент падающих
тестов
Процент нестабильных
тестовТестовое покрытие
Частота запусков
Количество тестов
52. Метрики
Время выполнения
Время на поддержку
Процент падающих
тестов
Процент нестабильных
тестовТестовое покрытие
Частота запусков
Количество тестов
Регрессионные
дефекты
53. Метрики
Время выполнения
Время на поддержку
Процент падающих
тестов
Процент нестабильных
тестовТестовое покрытие
Частота запусков
Количество тестов
Регрессионные
дефекты
Лучшая метрика
Вам не нужны
метрики!
55. А-я ручных сценариев
Чем это плохо?
Разное предназначение тестов
Разная детализация тестов
Разное время на обновления тестов
Разное время на создание тестов
Не все ручные тесты автоматизируемы
Не для всех возможных проверок есть ручные сценарии
Разное разбиение проверок по сценариям
Иногда целесообразно использовать разные интерфейсы
Эмуляция юзера может мешать проверкам (при багах)
Это UI тесты. Самая дорогая и ненадежная автоматизация
Даже полная замена не означает отмену ручной проверки
Что автоматизировать — то что меняется или статично?
56. Откуда появляется
Снизу
Как доказать руководству, что это нужно?
Пилотная автоматизация
Не надо начинать с тестирования через UI
Сначала сделать, потом выбивать официальное время
Максимально облегчить работу коллег, убрать рутину
Предложить план дальнейших действий
57. Откуда появляется
Сверху
Как доказать руководству, что это НЕ нужно?
Узнать какие проблемы хочется решить
Определиться со сроками и критериями успеха
Договориться об уровне вовлечения команды
Предоставить четкий план затрат и сроков
Определить ответственного за техническую реализацию
58. Откуда появляется
Изнутри
С чего начать?
Договориться о вовлечённости каждого из участников
Договориться о приоритете исправлений
Договориться об используемых технологиях
Договориться о разделении зон ответственности
Возможно тестировщик-автоматизатор будет лишним
59. Откуда появляется
Снаружи
А не послать ли нам его?
Узнать что он продаёт
Понять нужно ли нам это
Воспользоваться услугами другого консультанта
Пусть распишет внедрение автоматизации по фазам