10 советов тем, кто подумывает автоматизировать тестирование (17.03.2010)
Вопрос, когда и как автоматизировать процесс тестирования, - задается часто. В этой статье собраны советы тем, кто принимает решение об автоматизации. Некоторые из читателей более подкованы в этом вопросе, но приведенная здесь информация поможет получить всесторонний взгляд и ознакомиться с опытом другого специалиста автоматизированного тестирования.
Зачем вам нужно автоматизированное тестирование?
1. У вас есть новые релизы и фиксы ошибок в рабочем модуле. Как вы убедитесь, что устраненные ошибки не внесли дефектов в ранее работавшую функциональность? Вам необходимо повторить тестирование и ранней функциональности. Таким образом, Вам придется проводить полное тестирование целого модуля вручную каждый раз, когда исправлены некоторые ошибки или добавлена функциональность модуля? Вы, конечно, можете делать это вручную, но тестирование при этом не будет эффективным. Эффективным по затратам компании, ресурсов, времени и т.д. Здесь возникает необходимость в автоматизации.
Цель 1: Автоматизируйте тестирование, если в нём много регрессионной работы
2. Вы тестируете веб-приложение, с которым могут взаимодействовать сотни пользователей одновременно. Как вы можете протестировать такое веб-приложение? Как вы создадите столько пользователей, которые работают с приложением вручную и одновременно? Такую задачу очень сложно выполнить вручную.
Цель 2: Чтобы проверить максимально допустимую нагрузку Вашего приложения, автоматизируйте нагрузочное тестирование созданием виртуальных пользователей.
3. Вы тестируете приложение, в котором часто меняется код. GUI-интерфейс почти не меняется, но есть значительные изменения функциональности, поэтому появляется много повторяющейся работы по тестированию.
Цель 3: Автоматизируйте тестирование, если ваш GUI-интерфейс (или другой интерфейс, избранный для автоматизации) по большей части не меняется, но в функциональности часто происходят изменения.
С какими рисками связано автоматизированное тестирование?
При принятии решения об автоматизации тестирования, Вы неизбежно сталкиваетесь с некоторыми рисками. Ниже приведены некоторые моменты, которые мы настоятельно рекомендуем обдумать при принятии решения.
1) У вас сотрудники имеют достаточную квалификацию?
Для автоматизации вам понадобятся люди с некоторым знанием программирования. Подумайте о ваших ресурсах. У Ваших сотрудников необходимые для автоматизации тестирования знания? Если нет, то есть ли у них технические навыки или опыт программирования, которые они могли бы с легкостью адаптировать к новым технологиям? Вы готовы вкладывать деньги на создание хорошей команды автоматизаторов? Всерьез задумываться об автоматизации тестирования стоит, только если Вы ответили на эти вопросы – «да».
2) У автоматизации очень высокая изначальная стоимость.
Ручное тестирование обходится очень дорого, если нанимать опытных тестировщиков. Но если вы думаете, что автоматизация решит эту проблему, подумайте еще раз. Стоимость автоматизации слишком высока при начальной организации, т.е. затраты на приобретение инструментов автоматизации, формирование и поддержку тестовых скриптов очень высоки.
Многие заказчики не удовлетворены автоматизацией и сожалеют о принятом решении. Если у вас и без того много затрат, и вы получаете только миловидные инструменты тестирования и основные сценарии автоматизации, тогда какая польза от автоматизации? Чтобы не допустить подобного развития событий, убедитесь, что изначальные затраты на автоматизацию окупят себя.
3) И не думайте автоматизировать пользовательский интерфейс, если он не фиксированный.
Будьте осторожны с автоматизацией пользовательского интерфейса. Если в пользовательский интерфейс часто вносятся изменения, издержки на поддержку скриптов будут очень высокими. В таких случаях важна базовая автоматизация пользовательского интерфейса.
4) Ваше приложение достаточно устойчиво для автоматизации дальнейшей работы по тестированию?
Автоматизировать тестирование на раннем цикле разработки - нелучшая идея (если это не agile-среда). В таких случаях стоимость поддержки сценариев будет очень высокой.
5) Вы верите в 100%-ую автоматизацию?
Пожалуйста, прекратите мечтать. Вы не можете автоматизировать тестирование на 100%. Конечно, у есть такие направления работы, как тестирование производительности, регрессионное тестирование, нагрузочное/стрессовое тестирование, где есть шанс добиться почти 100%-ой автоматизации. Тестирование пользовательского интерфейса, документация, инсталляция, совместимость и восстановление никто не отменял. В этих областях тестирование необходимо делать вручную.
6) Не автоматизируйте тесты, которые прогоняются один раз.
Определите области приложения и тест кейсы, которые вероятно прогоняются единожды и не включаются в регрессию. Избегайте автоматизации таких модулей или тест кейсов.
7) Долго ли прослужит ваш набор автоматизированных тестов?
Каждый набор скриптов автоматизации должен служить достаточно долго, чтобы стоимость его создания была определенно меньше стоимости выполнения вручную. Довольно сложно проанализировать эффективную стоимость каждого набора скриптов автоматизации. Ваш набор автоматизации должен применяться или прогоняться, как минимум (примерно) 15 - 20 раз для разных билдов (общее предположение зависит от сложности автоматизации конкретного приложения), чтобы добиться окупаемости автоматизированных тестов. Точнее посчитать возврат инвестиций (ROI) Вы можете по этой табличке.
Выводы:
Автоматизация тестирования - лучший способ достижения большинства целей тестирования и эффективного использования ресурсов и времени. Но уделите особое внимание выбору инструмента автоматизации. Перед принятием решения об автоматизации тестирования убедитесь, что у вас квалифицированный персонал. Иначе Ваш инструмент будет валяться на полке, не принося Вам прибыли. Выдача дорогих инструментов автоматизации персоналу низкой квалификации себя не оправдает. Перед приобретением инструментов автоматизации удостоверьтесь, что выбранный инструмент наиболее соответствует Вашим требованиям (сравните различные инструменты). Вы не сможете подобрать инструментарий, который бы на 100% соответствовал требованиям. Поэтому учитывайте ограничения наиболее подходящего инструмента, и затем используйте ручные методики и испытания, чтобы преодолеть ограничения инструмента автоматизации. Инструмент с открытым исходным кодом - тоже неплохой вариант для начала автоматизации.
|