Сейчас наступила эра автоматизации тестирования. Большинство QA проектов пытаются перевести свои ручные тест-кейсы в автоматизированные, чтобы повысить производительность и тестовое покрытие.
Одним из ключевых шагов для начала автоматизации тестирования является выбор подходящих тест-кейсов и определение рентабельности инвестиций (ROI).
Чего ожидать от этой статьи?
В этой статье я постаралась привести несколько важных моментов, основанных на моем опыте, чтобы помочь вам выбрать подходящие тест-кейсы для автоматизации и определить различные факторы, которые позволяют проводить мероприятия по тестированию более эффективно и выгодно.
Почему именно автоматизированное тестирование?
Автоматизация не заменяет ручное тестирование, а лишь дополняет его. Как и ручное, автоматизация требует надлежащей стратегии с качественным планированием, мониторингом и контролем. При правильной реализации автоматизация может стать большим преимуществом для команды, проекта и, в конечном счете, для организации.
Существует множество плюсов в автоматизации; вот несколько важных, о которых стоит упомянуть:
- Уменьшение времени при выполнении рутинных задач, таких как smoke и регрессионные тесты.
- Помощь в подготовке тестовых данных.
- Помогает выполнять тест-кейсы, которые включают сложную бизнес-логику.
- Хорошо подходит для выполнения кросс-платформенных тестов (например, для различных ОС, браузеров и т.д.).
- Отлично подходит для выполнения тест-кейсов, которые трудно выполнить вручную.
- Когда количество итераций выполнения тест-кейсов неизвестно.
Многие заинтересованные стороны считают, что автоматизация тестирования выступает в качестве вспомогательного инструмента для ручного тестирования, поэтому важно понимать, что автоматизация – это лучший способ повысить эффективность, результативность и охват тестирования. Она не только экономит время, но и повышает точность, поскольку повторяющиеся задачи при ручном подходе чреваты ошибками человеческого фактора и могут отнимать много времени.
Выбор тест-кейсов для автоматизации
Основные ошибки, которых следует избегать:
Одна из самых главных ошибок, которую допускают тестировщики, – это выбор НЕПРАВИЛЬНЫХ тест-кейсов для автоматизации.
Не выбирайте просто любой набор тестов. Тщательно проанализируйте тест-кейсы и выберите их, учитывая самый важный фактор – ROI. Прежде всего, мы должны понять и найти способы получения более высокого показателя ROI.
ROI (Return On Investment) – это расчет выгоды с точки зрения экономии затрат, повышения эффективности и качества.
Не существует стандартной процедуры для определения правильных тест-кейсов для автоматизации. Все зависит от приложения, которое вы тестируете.
Основываясь на своем опыте, я попыталась описать несколько шагов, которые могут дать некоторое представление о выборе тест-кейсов и, в конечном счете, о прогрессе в достижении положительного ROI для автоматизации.
Содержание:
Как выбрать правильные тест-кейсы для автоматизированного тестирования
Пример расчета рентабельности инвестиций в автоматизацию тестирования
Переход от ручного к автоматизированному тестированию – каковы трудности процесса?
Как выбрать правильные тест-кейсы для автоматизированного тестирования
Шаг 1:
Определите параметры, на которых вы будете основывать свой тест-кейс, претендующий на автоматизацию.
На данный момент я использую следующие параметры, у вас могут быть свои собственные в зависимости от вашего приложения.
- Тест-кейс, выполненный с различными наборами данных.
- Тест-кейс, выполненный с использованием различных браузеров.
- Тест-кейс, выполненный в различных окружениях.
- Тест-кейс со сложной бизнес-логикой
- Тест-кейс с разными наборами пользователей
- В тест-кейсе используется большой объем данных
- Тест-кейс имеет какие-либо зависимости
- Тест-кейс требует специальных данных
Шаг 2:
Разбейте каждое приложение на модули. Для каждого модуля проанализируйте и попытайтесь определить тест-кейсы, которые должны быть автоматизированы на основе выбранных параметров. Этот список будет варьироваться от проекта к проекту и может быть дополнен в соответствии с вашими потребностями:
Рис. 1.0


Y – Да
N – Нет
Аналогичным образом для всех модулей этот список можно использовать для выбора тест-кейсов для автоматизации.
Шаг 3:
Объедините и сгруппируйте тест-кейсы для каждого модуля, как показано ниже
Рис 2.0


Рисунок 2.0 довольно прост и не требует пояснений. Здесь я пытаюсь посчитать кейсы и дать оценку времени тестирования этих кейсов вручную.
Шаг 4:
После того как вы рассчитали количество тест-кейсов на уровне модулей, мы переходим к расчету ROI.
Рис. 3.0:


Мы также должны принять во внимание следующие атрибуты, которые формируют основу для рассчета ROI:
- Стоимость приобретения и лицензирования инструментов автоматизации
- Время на разработку скриптов
- Время на сопровождение скриптов
- Время на анализ результатов вручную и автоматически
- Время и затраты на обучение персонала
- Накладные расходы менеджмента
Пример расчета ROI автоматизации тестирования
В большинстве случаев ROI рассчитывается на 5 лет, но это не обязательно. Основываясь на вышеперечисленных факторах, позвольте мне продемонстрировать расчет ROI на 5 лет. Как обычно, вы всегда можете адаптировать и улучшить его.


ROI = (Совокупная экономия / Инвестиции за счет автоматизации)*100
Переход от ручного к автоматизированному тестированию – каковы трудности процесса?
Далее привожу привожу пункты, которые, по моему мнению, представляют собой большую проблему, когда мы пытаемся автоматизировать набор тестов.
1. Потребность в автоматизации: Каждая команда тестировщиков уникальна и имеет свою потребность в автоматизации. Мы не можем разработать единый стандарт, но мы можем адаптировать его под наши потребности. По этой причине автоматизация требует хорошей поддержки как со стороны руководства, так и со стороны команды разработчиков.
2. Автоматизация всего приложения: Автоматизация 100% приложения – это большая сложная задача. Не то чтобы это было невозможно, но это требует правильного планирования, мониторинга и, конечно же, времени. Существует множество перестановок и комбинаций данных, n-ное количество тестовых окружений с n-ным количеством атрибутов аутентификации и авторизации, которые должны быть проверены и, следовательно, требуют стратегии автоматизации.
3. Ручное VS Автоматизированное тестирование: “Мы обычно автоматизируем то, что важно и много раз повторяется, но всё же предпочитаем тестировать самую важную функциональность вручную”. Запутались? Я тоже! Но это факт. У нас должны быть критерии, по которым мы будем решать, какие из тест-кейсов наиболее важны. Эти критерии могут быть основаны на множестве факторов, таких как сложная бизнес-логика, модули, представляющие больший интерес для клиентов, компоненты, подверженные риску, и т.д.
4. Выбор и разработка фреймворка: Разработка фреймворка является наиболее важным аспектом автоматизации. Я считаю, что мы должны уделять больше времени разработке структуры, чем реализации самих сценариев. Всякий раз, когда мы разрабатываем план автоматизации, проектирование структуры проекта автоматизации должно быть в центре внимания.
Спланируйте разработку тестового фреймворка. Определите и составьте контрольный список элементов, которые будут формировать каркас для файловой структуры. Если каркас будет прочным, создание сценариев и их поддержка станут простыми.
5. Навыки команды: Всякий раз, когда мы думаем об автоматизации, мы сразу же бросаемся изучать язык программирования. Изучение языка, безусловно, поможет, но больше внимания следует уделить построению и разработке логики.
Автоматизация не должна быть обязанностью нескольких человек, скорее вся команда должна внести свой вклад в ее осуществление. Это поможет не только повысить квалификацию сотрудников, но и поддерживать их мотивацию.
6. Отчетность: Каждый инструмент имеет стандарт для представления результатов тестирования. Настроить его – непростая задача. Отчет о результатах тестирования также требует менеджмента и мониторинга, что увеличивает затраты.
7. Доверие: Мы должны доверять нашим средствам автоматизации. Мы тратим человеко-часы на создание набора средств автоматизации, но все равно не верим в результаты тестирования. Необходимо прилагать усилия для поддержки уже разработанных скриптов. Кроме того, мы должны видеть, что команда, которая проводит ручное тестирование приложения, привлечена и к автоматизации, поскольку они лучше знают тонкости работы приложения.
В большинстве случаев автоматизацией занимается отдельная команда, поэтому основная команда тестирования не знает о скриптах, и в конечном итоге все заканчивается тем, что тесты выполняются ими вручную, потому что им кажется, что выполнение скриптов увеличивает количество их задач.
Заключение
В большинстве случаев мы предпочитаем автоматизировать набор регрессионных тест-кейсов , поскольку он содержит набольшее их количество. В этом случае мы можем разбить регрессию на более мелкие наборы и запускать каждый из них в соответствии с требованиями релиза.
Допустим, набор регрессии содержит 1500 тест-кейсов, вы можете разбить его на 3 набора по 500 тест-кейсов в каждом наборе и автоматизировать их по очереди.
Вместо того чтобы автоматизировать весь набор, вы можете делать это поэтапно. Создайте сначала тестовый фреймворк с реализацией небольшого количества тест-кейсов, начните использовать его и постепенно улучшайте, добавляя к нему больше кейсов.
При автоматизации также следует следовать колесу Деминга (цикл PDCA). Поскольку автоматизация – это непрерывная деятельность, особое внимание следует уделить правильному построению структуры, что приведет к простоте обслуживания и внедрению новых функций.
Эти задачи требуют надлежащей поддержки со стороны команды разработчиков и руководства. Мы должны поощрять команду тестировщиков вносить вклад в автоматизацию, поскольку они знают детали своего продукта лучше, чем кто-либо другой.
Об авторе: Это приветственная статья Шилпы Чаттерджи Рой. Она работает в области тестирования ПО последние 8,5 лет в различных областях.
Я надеюсь, что мы упростили понимание процесса перехода от ручного к автоматизированному тестированию. Пожалуйста, не стесняйтесь делиться своим опытом и мыслями о том, как вы преодолеваете трудности этого процесса.
Перевод статьи «How to Select Correct Test Cases for Automation Testing (and Ultimately Achieve a Positive Automation ROI)».