Как перестать бояться и начать автоматизировать

Post on 07-Jan-2017

9.705 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Saint-PetersburgMay2016

Как перестать бояться и начать автоматизировать? Или не начать

Алексей Лянгузов

План• Введение• Что такое автоматизация• Кто и для кого автоматизирует• Три ДО• Цели и заблуждения в автоматизации• Откуда берутся факапы в автоматизации• Выбор инструмента• Метрики• Автоматизация ручных сценариев• Откуда появляется идея автоматизировать• Заключение

* Спасибо интернету за картинки. Все права принадлежат авторам изображений

Кому будет интересно

• Руководителям тестирования, которые не знакомы на практике с автоматизацией, но хотели бы применить у себя в проекте.

• Командам у которых автоматизация «как бы» работает, но не приносит зримых результатов.

• Инженерам, которые начинают автоматизировать, но не знают как вывести практику с личного на командный уровень.

Что такое Автоматизация

АвтоматическоеТестирование (АТ)

АвтоматизацияПроцесса (АП)

Что такое Автоматизация

АвтоматическоеТестирование (АТ)

АвтоматизацияПроцесса (АП)

Функциональное и нефункциональное тестирование разрабатываемого ПО

при помощи специализированных программ. Автоматизация проверок

Что такое Автоматизация

АвтоматическоеТестирование (АТ)

АвтоматизацияПроцесса (АП)

Функциональное

Unit UI

Through API

Что такое Автоматизация

АвтоматическоеТестирование (АТ)

АвтоматизацияПроцесса (АП)

Функциональное Нефункциональное

Unit UI

Static Checks

PerformanceSecurity

Through API

Что такое Автоматизация

АвтоматическоеТестирование (АТ)

АвтоматизацияПроцесса (АП)

Использование специализированных программ для исполнения повторяющихся действий.

Автоматизация ручных рутинных операций

Что такое Автоматизация

АвтоматическоеТестирование (АТ)

АвтоматизацияПроцесса (АП)

Разработки

Test Environments

Test runs

Tools

Что такое Автоматизация

АвтоматическоеТестирование (АТ)

АвтоматизацияПроцесса (АП)

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

Test Data Test Environments

Test runs

Tools

Reports

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

Руководитель проекта

Миссия: помочь внедрить на уровне процесса разработки и следить за тем, чтобы работало

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

Руководитель тестирования

Миссия: организовать весь процесс, направлять в нужную сторону авто-тесто-писателей

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

Ведущий автоматизатор

Миссия: сделать так чтобы работало, определять стратегию и правила написания и выполнения тестов

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

Авто-тесто-писатель

Миссия: писать тесты, запускать тесты, анализировать результаты, создавать тестовые данные

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

Окруженосец

Миссия: создавать, настраивать и поддерживать среду в которой тесты запускаются

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

Кузнец

Миссия: писать фреймворки, инструменты, генераторы данных и отчетов и прочие интересные штуки

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

Build Cop

Миссия: анализ неисправности автоматизированных тестов и их исправление

Потребители автоматизации

Программисты!!!

Руководители (тестирования, проекта)

Заказчик / business owner

Тестировщики идругие участники разработки

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

Это - ДОБРО

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

Это - ДОБРОКакие проблемы я хочу решить, внедряя автоматизацию?

Мои ожидания от автоматизации — не заблуждения?

Есть ли в команде «ведущий автоматизатор»?

Есть ли в команде «кузнец» и «окруженосец»?

Есть ли поддержка и понимание руководства и команды?

Знаю ли я как встроить автоматизацию в процесс?

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

Это - ДОРОГО

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

Это - ДОРОГОЯ готов платить за автоматизацию?

Сколько я готов платить за автоматизацию?

Я готов нанять новых людей?

Я готов заплатить за инструменты и обучение?

Я готов платить за инфраструктуру?

Я готов платить постоянно?

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

Это - ДОЛГО

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

Это - ДОЛГОЯ понимаю, что польза от автоматизации не мгновенна?

Я знаю, что все участники разработки будут вовлечены?

Я понимаю, что нужно поменять подход к разработке?

Я понимаю, что начав не смогу остановиться?

Проект достаточно долог, чтобы насладиться плодами?

Я готов тратить время на research в автоматизации?

Цели и ожидания от автоматизации

Сократить время тестирования

Цели и ожидания от автоматизации

Увеличить число проверок / покрытие

Сократить время тестирования

Цели и ожидания от автоматизации

Обеспечить более частые проверки

Увеличить число проверок / покрытие

Сократить время тестирования

Цели и ожидания от автоматизации

Уменьшить влияние «человеческого фактора»

Увеличить число проверок / покрытие

Сократить время тестирования

Обеспечить более частые проверки

Цели и ожидания от автоматизации

Удешевить тестирование

Увеличить число проверок / покрытие

Сократить время тестирования

Обеспечить более частые проверки

Уменьшить влияние «человеческого фактора»

Цели и ожидания от автоматизации

Внедрить новые виды тестирования

Увеличить число проверок / покрытие

Сократить время тестирования

Обеспечить более частые проверки

Уменьшить влияние «человеческого фактора»

Удешевить тестирование

Цели и ожидания от автоматизации

Сократить время выпуска нового релиза

Увеличить число проверок / покрытие

Сократить время тестирования

Обеспечить более частые проверки

Уменьшить влияние «человеческого фактора»

Удешевить тестирование

Внедрить новые виды тестирования

Цели и ожидания от автоматизации

Заменить ручного тестировщика автотестами

Увеличить число проверок / покрытие

Сократить время тестирования

Обеспечить более частые проверки

Уменьшить влияние «человеческого фактора»

Удешевить тестирование

Внедрить новые виды тестирования

Сократить время выпуска нового релиза

Цели и ожидания от автоматизации

Фиксация текущего состояния для сравнения

Увеличить число проверок / покрытие

Сократить время тестирования

Обеспечить более частые проверки

Уменьшить влияние «человеческого фактора»

Удешевить тестирование

Внедрить новые виды тестирования

Сократить время выпуска нового релиза

Заменить ручного тестировщика автотестами

Цели и ожидания от автоматизации

Быстрое получение текущего состояния

Увеличить число проверок / покрытие

Сократить время тестирования

Обеспечить более частые проверки

Уменьшить влияние «человеческого фактора»

Удешевить тестирование

Внедрить новые виды тестирования

Сократить время выпуска нового релиза

Заменить ручного тестировщика автотестами

Фиксация текущего состояния для сравнения

Цели и ожидания от автоматизации

Автоматизировать % ручных сценариев

Увеличить число проверок / покрытие

Обеспечить более частые проверки

Уменьшить влияние «человеческого фактора»

Удешевить тестирование

Внедрить новые виды тестирования

Сократить время выпуска нового релиза

Заменить ручного тестировщика автотестами

Фиксация текущего состояния для сравнения

Быстрое получение текущего состояния

Цели и ожидания от автоматизации

Автоматизировать регрессионное тестирование

Обеспечить более частые проверки

Уменьшить влияние «человеческого фактора»

Удешевить тестирование

Внедрить новые виды тестирования

Сократить время выпуска нового релиза

Заменить ручного тестировщика автотестами

Фиксация текущего состояния для сравнения

Быстрое получение текущего состояния

Автоматизировать % ручных сценариев

Цели и ожидания от автоматизации

С нашим фреймворком/тулом все будут писать автотесты

Уменьшить влияние «человеческого фактора»

Удешевить тестирование

Внедрить новые виды тестирования

Сократить время выпуска нового релиза

Заменить ручного тестировщика автотестами

Фиксация текущего состояния для сравнения

Быстрое получение текущего состояния

Автоматизировать % ручных сценариев

Автоматизировать регрессионное тестирование

Цели и ожидания от автоматизации

Сертификация сборки / среды тестирования

Удешевить тестирование

Внедрить новые виды тестирования

Сократить время выпуска нового релиза

Заменить ручного тестировщика автотестами

Фиксация текущего состояния для сравнения

Быстрое получение текущего состояния

Автоматизировать % ручных сценариев

Автоматизировать регрессионное тестирование

С нашим фреймворком/тулом все будут писать автотесты

Цели и ожидания от автоматизации

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

Внедрить новые виды тестирования

Сократить время выпуска нового релиза

Заменить ручного тестировщика автотестами

Фиксация текущего состояния для сравнения

Быстрое получение текущего состояния

Автоматизировать % ручных сценариев

Автоматизировать регрессионное тестирование

С нашим фреймворком/тулом все будут писать автотесты

Сертификация сборки / среды тестирования

Итого про цели

Сократить время выпуска нового релиза

Заменить ручного тестировщика автотестами

Фиксация текущего состояния для сравнения

Быстрое получение текущего состояния

Автоматизировать % ручных сценариев

Автоматизировать регрессионное тестирование

С нашим фреймворком/тулом все будут писать автотесты

Сертификация сборки / среды тестирования

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

Увеличить число проверок / покрытие

Обеспечить более частые проверки

Уменьшить влияние «человеческого фактора»

Удешевить тестирование

Внедрить новые виды тестирования

Сократить время тестирования

Причины провала

Совмещение обязанностей «ведущим автоматизатором»

Не дождались / нетерпение / заняло больше времени

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

Несоответствие ожиданиям / ложные ожидания

Плохая архитектура проекта / отсутствие testability

Регрессионные дефекты быстро не чинятся

Редкие запуски

Недостаток квалификации

Причины провала

Автоматизация сложной функциональности

Неправильный выбор инструмента / языкаОтсутствие документации автотестов

Отсутствие архитектуры автотестов

Начали с не с того (например UI)

Автоматизировали не то

Сложно запускать

Нестабильность и ненадежность

Как исправить

Сперва устранить косяки самих автотестов.Потом необходимо внедрить АТ в общий процесс разработки.Даже небольшое количество надежных тестов могутсделать чудо.

Выбор инструментаУсловно лучше Условно хуже

Кол-во Много Один

Цена Бесплатный Платный

Код Открытый Закрытый

Предназначение Специализированный Многозадачный

Популярность Распространённый Узкоспециальный

Поддержка Активно развивается Редкие релизы

Интерфейс Для инженеров Для людей

Сложность Для людей Для инженеров

Платформа запуска Кроссплатформенный Ограниченный

Запуск / Деплоймент Простой Сложный

Контроль Конфигурируемый Преднастроенный

Интеграция С другими тулами Самодостаточный

Расширяемость Плагины Внешние надстройки*взгляд гика, поддерживающего unix way философию

Метрики

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

Метрики

Процент нестабильныхтестовТестовое покрытие

Метрики

Процент падающихтестов

Процент нестабильныхтестовТестовое покрытие

Метрики

Время выполнения

Процент падающихтестов

Процент нестабильныхтестовТестовое покрытие

Метрики

Время выполнения

Процент падающихтестов

Процент нестабильныхтестовТестовое покрытие

Частота запусков

Метрики

Время выполнения

Время на поддержку

Процент падающихтестов

Процент нестабильныхтестовТестовое покрытие

Частота запусков

Метрики

Время выполнения

Время на поддержку

Процент падающихтестов

Процент нестабильныхтестовТестовое покрытие

Частота запусков

Количество тестов

Метрики

Время выполнения

Время на поддержку

Процент падающихтестов

Процент нестабильныхтестовТестовое покрытие

Частота запусков

Количество тестовРегрессионные

дефекты

Метрики

Время выполнения

Время на поддержку

Процент падающихтестов

Процент нестабильныхтестовТестовое покрытие

Частота запусков

Количество тестовРегрессионные

дефекты

Лучшая метрика

Вам не нужны метрики!

А-я ручных сценариев

Автоматизатору не нужен мозг

Чем это хорошо?

А-я ручных сценариев

Чем это плохо?

Разное предназначение тестовРазная детализация тестовРазное время на обновления тестовРазное время на создание тестовНе все ручные тесты автоматизируемыНе для всех возможных проверок есть ручные сценарииРазное разбиение проверок по сценариям

Иногда целесообразно использовать разные интерфейсыЭмуляция юзера может мешать проверкам (при багах)

Это UI тесты. Самая дорогая и ненадежная автоматизация

Даже полная замена не означает отмену ручной проверкиЧто автоматизировать — то что меняется или статично?

Откуда появляетсяСнизу

Как доказать руководству, что это нужно?

Пилотная автоматизация

Не надо начинать с тестирования через UI

Сначала сделать, потом выбивать официальное время

Максимально облегчить работу коллег, убрать рутину

Предложить план дальнейших действий

Откуда появляетсяСверху

Как доказать руководству, что это НЕ нужно?

Узнать какие проблемы хочется решить

Определиться со сроками и критериями успеха

Договориться об уровне вовлечения команды

Предоставить четкий план затрат и сроков

Определить ответственного за техническую реализацию

Откуда появляетсяИзнутри

С чего начать?

Договориться о вовлечённости каждого из участников

Договориться о приоритете исправлений

Договориться об используемых технологиях

Договориться о разделении зон ответственности

Возможно тестировщик-автоматизатор будет лишним

Откуда появляетсяСнаружи

А не послать ли нам его?

Узнать что он продаёт

Понять нужно ли нам это

Воспользоваться услугами другого консультанта

Пусть распишет внедрение автоматизации по фазам

Заключение

Почему ничего не сказано про ROI

Заключение

Почему ничего не сказано про ROI

Почему иногда лучше не автоматизировать

Заключение

Почему ничего не сказано про ROI

Так зачем же мы все-таки автоматизируем?

Почему иногда лучше не автоматизировать

Заключение

ДА НЕТНе значит ДА Значит НЕТ

Но если не попробовать, то точно не получится

Спасибо!

Alexey LyanguzovSoftware Quality Specialistbudabum@gmail.com

top related