Встречаю довольно много информации по прикладному применению автоматизированного тестирования, но вот такой банальный вопрос, как критерии выбора инструмента для автоматизации тестирования остается по большей части в области проб и ошибок. Замечаю, что некоторые при выборе даже не отдают себе отчета, какой тип автоматизированного тестирования они собираются применять и, по сути, упираются лишь в один вопрос: платный инструмент или бесплатный? Но это лишь верхушка айсберга. Неправильный выбор даже бесплатного инструмента для автоматизации тестирования в итоге будет Вам стоить денег в виде затрат на бесплодные попытки успешно применить то или иное решение именно к Вашему проекту. Я не рассчитываю вызвать на дискуссию "зубров" автоматизации, хотя, добро пожаловать, если кто-то усмотрит спорные моменты, но считаю, что новичкам предложенный подход в выборе окажется полезным.
При выборе инструмента для автоматизации тестирования я придерживаюсь следующего базового алгоритма выбора:
Выбор инструмента для автоматизированного тестирования зависит в первую очередь только от требований проекта, а потом от всего остального. Панацеи нет. Также как и нет гарантии что через какое-то время в проект не будут включены новые технологии, поддержка которых в уже использующемся инструменте не предусмотрена, или произойдет отказ от старых технологий или то и другое вместе, что потребует поиска нового инструмента в дополнение или для замены существующего со всеми вытекающими последствиями.
Выбор из оставшихся для рассмотрения инструментов сводится в общем к следующим критериям, некоторые из которых могут оказаться для кого-то менее, а для кого-то более важными:
При выборе инструмента для автоматизации тестирования я придерживаюсь следующего базового алгоритма выбора:
- Определите типы тестирования которые вы собираетесь применять:
- Определите какие тесткейсы (сценарии) Вы планируете автоматизировать, а какие нет, и для каких компонентов Вашего продукта
- Определите технологии и протоколы, которые используются или планируются к использованию в ближайшем будущем компонентами Вашего продукта, тестирование которых подлежит автоматизации
- Составьте список требований к инструментам автоматизированного тестирования на основании вышеизложенных критериев
- Выбирайте инструменты на основании составленного списка требований. Если какие-то из них имеют ограничения по этим требованиям - сразу оцените их критичность, и если ограничения критичны - откажитесь от таких инструментов
Выбор инструмента для автоматизированного тестирования зависит в первую очередь только от требований проекта, а потом от всего остального. Панацеи нет. Также как и нет гарантии что через какое-то время в проект не будут включены новые технологии, поддержка которых в уже использующемся инструменте не предусмотрена, или произойдет отказ от старых технологий или то и другое вместе, что потребует поиска нового инструмента в дополнение или для замены существующего со всеми вытекающими последствиями.
Выбор из оставшихся для рассмотрения инструментов сводится в общем к следующим критериям, некоторые из которых могут оказаться для кого-то менее, а для кого-то более важными:
- Usability:
- Удобство (и знание) скриптового языка (если язык незнаком и сложен для понимания или наоборот примитивен, то наверняка разработка и поддержка скриптов на нем окажется довольно проблематичной). Хорошим признаком будет считаться поддержка скриптов с синтаксисом сходным с известными языками программирования, такими например как VB, java, c# и т. д. Тогда высока вероятность того, что больше людей в проекте смогут понимать код ваших скриптов
- Поддержка технологии Data-Driven Testing очень желательна, я бы даже сказал обязательна в случае работы с многочисленными наборами данных
- Возможность выполнять скрипты по сети на компьютерах тестовой лаборатории посредством тестовых агентов
- Построение и сохранение удобных отчетов по результатам выполнения скриптов
- Наличие автоматической записи скриптов и качество и удобство кода генерируемого ею, возможность вставки переменных и проверок в скрипт непосредственно в момент записи
- Наличие техподдержки
- Наличие развитого комьюнити по инструменту очень важно если он бесплатный
- Интеграция с уже имеющимися у Вас средствами управления тестами (Test Management) и тестовыми лабораториями (Lab Management) или теми, что Вы можете себе позволить ;) Например, в случае, если функционирование некоторых компонентов Вашего продукта зависит от версии операционной системы, а набор поддерживаемых операционных систем состоит из десятка, то Вам предстоит вручную подготавливать каждую машину из вашей тестовой лаборатории, набор скриптов для запуска на ней и хранилище отчетов выполнения скриптов. Каждый запуск такого тестового цикла и анализ результатов выполнения будут представлять массу рутинной работы, а при наличии готовых решений и этот процесс будет автоматизирован.
- Цена/качество
- Отзывы на профильных форумах, а не только на форуме производителя ;)
- Цена одной копии среды разработки скриптов и одного агента для выполнения скриптов
- Цена сопутствующих средств Test Management и Lab Management
- Верить кому-то наслово, что есть инструмент, который подходит любым проектам, потому что поддерживает множество различных технологий
- Верить, что если инструмент отлично подходил Вам на предыдущем проекте, то подойдет и на всех последующих
- Верить, что если где-то в Вашей компании успешно используется один инструмент, то он будет успешно использоваться и в остальных
- Вообще, принимать на веру чье-либо мнение, каким бы авторитетом советчик не пользовался
- Принимать окончательное решение о выборе инструмента не протестировав его на применимость к Вашему проекту
- Часто менять инструменты для автоматизации тестирвания, т. к. результат никогда не окупит ни финансовых, ни временных затрат на автоматизацию.