Предисловие sqa.by
В своей статье Алексей Якимович дает ответы на вопрос, который возникал у многих тестировщиков: "Когда же необходима автоматизация тестирования?". Мифы автоматизации, автоматизация за или против... Читайте статью Алексея.
Автоматизация тестирования - "А оно нам надо?"
Мифы автоматизации тестирования. Из доклада Дмитрий Ручко на конференции SQA-2:
Миф 1. Автоматизированное тестирование - это только проверка регресса.
Миф 2. Автоматизированное тестирование - это только функциональное тестирование через GUI.
Миф 3. В автоматизированном тестировании всё выполняется само.
Миф 4. Автоматизация позволяет сократить расходы.
Миф 5. Автоматизация решает проблему с нехваткой ресурсов.
Миф 6. Автоматизация позволяет найти больше ошибок.
Миф 7. Автоматизация уменьшает количество человеческих ошибок.
Миф 8. Чем больше автотестов, тем лучше. "
3 самых важных вопроса по автоматизации
Попытаемся ответить на следующие вопросы:
1. Что автоматизируем?
2. Как автоматизируем?
3. Почему автоматизируем? (или как определить стоит/не стоит автоматизировать)
Вопрос 1: Что мы автоматизируем?
Что: V модель разработки и тестирования ПО

Задачи которые могут быть решены автоматизацией:
1.Тестирование производительности
2.Регрессионное тестирование
3.Конфигурационное тестирование
4.Тестирование нового функционала (функциональное тестирование)
5.Тестирование инсталляций и т.п.
GUI автоматизация
Парочка риторических вопросов:
1. Сколько времени нужно, чтобы написать скрипт который сможет оттестировать интерфейс?
2. А сколько времени займет тестировщику оценить "красоту" интерфейса?
И еще парочка:
1.А сколько времени займет автоматизировать сложную бизнес логику, где проверка результата потребует создания сложных алгоритмов?
2.А кто будет тестировать новую функциональность которую нужно быстро отдать заказчику?
GUI автоматизация - Что автоматизируем?
Мой список приоритетов по автоматизации (по критерию полученного выигрыша в трудоемкости):
•Рутинные операции, такие как переборы данных (формы с большим кол-вом вводимых полей. Автоматизировать заполнение полей различными данными и их проверку после сохранения)
•Проверка данных, требующих точных математических расчетов
•Труднодоступные места в системе (бэкенд процессы, логирование файлов, запись в БД)
•Валидационные сообщения (Автоматизировать заполнение полей не корректными данными и проверку на появление той или иной валидации)
•Длинные end-to-end сценарии или workflows
•Проверка правильности поиска данных
GUI автоматизация - Что не автоматизируем
Что не стоит автоматизировать:
1. Тесты требующие сложной алгоритмизации проверки;
2. Тесты для нестандартной конфигурации стенда, которую нужно менять для разных тестов;
3. При проблемах с интеграцией со сторонним ПО, которое не доступно. и т.д
Но в любом случае, принимать решение об автоматизации/не автоматизации теста нужно на основе понимания экономической целесообразности!
Выводы
1.Автоматизировать можно на любом уровне тестирования и практически любого процесса.
2.Ошибки более низкого уровня мультиплицируются в более высоком уровне. Поэтому автоматизация должна идти от более низкого уровня к более высокому (по V модели).
Вопрос 2: Как мы автоматизируем?
Когда стоит заниматься автоматизацией
Критерии в порядке убывания:
•Экономическая целесообразность
•Наличие организованного процесса тестирования
•Высокие критерии качества и надежности
•Длительность проекта
•Желание и возможность
•Наличие квалифицированных автоматизаторов
•Требование заказчика.
Идеологическая проблема автоматизации
1. Обычный интегрированный процесс разработки

2. Процесс разработки при автоматизации

Имеем - для тестирования нового функционала автоматизация плохо подходит. Выход - ручное тестирование.
Идеологическия проблема автоматизиции (2)
1.Скрипты могут разрабатываться параллельно разработке. В некоторые технологии разработки это позволяют (например QTP и SAP).
2.Автоматизация тестирования нового функционала имеет смысл если скрипты разрабатываются параллельно разработке.

1.Для быстрого отладочного тестирования нового функционала автоматические тесты плохо подходят.
2.Работающая стратегия: Новый функционал тестируем вручную и отдаем в автоматизацию.
Подготовка к автоматизации
Требования перед началом работ:
1. HP: "Приложение должно быть стабильно". В ручную?!
2. Подготовлены тест кейсы.
3. Тест кейсы должны быть приведены к возможностям автоматизации.
Работы по автоматизации
Автоматизация это разработка!
Организация работ должна быть похожа на разработку кода:
1.Подготовлены требования (тест кейсы)
2.Оценена трудоемкость + высчитан ROI
3.Разработан план работ
4.Собраны необходимые ресурсы
5.Проведена работа по автоматизация с контролем прогресса
6.Оценен полученный результат, чтобы понять реальные затраты и прибыль
Выводы
1. Автоматизировать нужно стабильные билды
2. Тест кейсы для автоматизации тестирования - это требования для разработки. Автоматизация должна основываться на хорошо документированных тест-кейсах.
3. Автоматизация тестирования должно быть организовано как обычная разработка ПО с разработкой требований, оценкой трудоемкости, планированием, точками проверки и т.д.
4. Нужно измерять на регулярной основе сколько ресурсов было затрачено на автоматизацию каждого теста и сколько было на этом сэкономлено.
5. Перед началом работ по автоматизации нужно посчитать ROI/
Вопрос 3: Сколько стоит автоматизация?
Сколько стоит автоматизация?
Hewlett-Packard : "Автоматизация становится экономически оправданной только после 3-6 прогонов".
Расчет стоимости ведем в два этапа:
1. Отбираем тесты которые подходят для автоматизации;
2. Считаем ROI (Return on Investment.
Шаг 1: Отбираем тесты для автоматизации
| Сложность автоматизации | Невозможно 0 баллов | Тяжело 1 балл Например три и более прилож должны тестироваться | Средняя 2 балла Например нужна валидация матем занчений | Легко 3 балла Например использовать R&P |
| Экономия времени | Маленькая 1 балл вручную меньше 15 мин | Средняя 2 балла Вручную от 15 до 60 минут | Большая 3 балла Вручную больше 60 минут | |
| Частота использования | Редкая 1 балл Не регулярный тест в любом тест цикле | Средняя 2 балла Регулярный тест в хотя бы в одном цикле тестирования | Высокая 3 балла Регулярный тест во многих циклах тестирования |
Шаг 1: Отбираем тесты
1. Оцениваем баллы для каждого теста по формуле:
СЛОЖНОСТЬ + ЭКОНОМИЯ + ЧАСТОТА
Уже на этом этапе можно начинать создавать стратегию автоматизации (но только если есть принципиальное решение об автоматизации, иначе идем на следующий шаг)
Примеры стратегий:
Стратегия 1 Автоматизируем только те тесты, которые набрали 9 баллов .
Стратегия 2. Автоматизируем 100% тестов с 8, и 9 баллами и 50% с 7 баллами.
Шаг 2: Расчет ROI
ROI - Return on Investment ROI = (Прибыль - Расходы)/Расходы
ROI должен быть положительным и чем больше тем лучше.
Для каждого теста считаем ROI:
Прибыль = Время сэкономленное * Стоимость ручного тестиров *Кол-во прогонов тестов
Расходы = Стоимость SW&HW + Стоимость автоматизации +Стоимость поддержки
Расчет делается для различного количества прогонов тестов - получаем количество прогонов, когда ходимо для ROI>0
Посчитать можно как для каждого теста индивидуально, так и для всей автоматизации в целом.
А что будет если мы посчитаем ROI автоматизации?
ROI автоматизации в целом очень низкое - 1-2% от бюджета организации в лучшем случае.
Выводы:
•Существует множество способов повышения эффективности разработки ПО помимо GUI автоматизации.
•Из автоматизации нельзя делать "священную корову". Посчитайте ROI вначале перед тем как начать изменения.
Почитайте блог Сергея Мартыненко http://blog.shumoos.com/archives/138
Выводы
1.Ручное и автоматическое тестирование это взаимодополняющие технологии.
2.Критерием использования автоматизации является ROI
3.Перед автоматизацией нужно построить процесс тестирования продукта в целом - автоматизация это лишь часть процесса.
4.Автоматизация требует вложений, но можно получить более высокое качество тестирования.
5.Автоматизация приносит максимальную пользу в длительных проектах.
6.СуществуОрганизация процесса управления требованиями будет более полезна для проекта, чем автоматизация





Комментарии
Есть некая проектная группа, которая разрабатывает софт по стандартной методике (возьмем ту что предложили Вы):
план-требования-дизайн-разработка-тестирование-релиз
Все красиво.
продолжение в следующем комменте… Ответить | Ответить с цитатой | Цитировать
"план-требования-дизайн-разработка-тестирование-релиз". Иначе вы превращаете разработку скриптов в бесконечный проект по созданию, отладке, и выдаче скриптов, тестирование которых проходит в полевых условиях. И после ухода ключевых сотрудников просто напросто умирает из-за невозможности поддерживать скрипты в рабочем состоянии…
А теперь думайте сами, решайте сами согласно ли ваше руководство вести еще один параллельный проект по автоматизации тестирования? :)
Вот… Ответить | Ответить с цитатой | Цитировать
RSS лента комментариев этой записи.