Есть ли минусы у автоматизации тестирования?
Автоматизированный тест имитирует взаимодействие пользователя с приложением или сервисом с целью нахождения ошибок в работе ПО. С какими же проблемами может столкнуться тестировщик, используя автоматизацию?
Человек всегда хотел облегчить свой труд, поэтому неспроста многие считают лень двигателем прогресса. Это, конечно, шутка, но в каждой шутке есть только доля шутки. Научно-техническая революция и появление машин сделали возможными автоматизацию и роботизацию во всех ее многочисленных сферах проявления. Не обошла сия участь, разумеется, и сферу информационных технологий.
Если говорить о суровых буднях тестировщика ПО, то все мы хотим, чтобы у нас был «волшебный набор» автоматизированных кейсов, чтобы тестирование выполнялось простым нажатием на кнопочку «Run!». Конечно, автоматизация сейчас есть почти на каждом проекте, но существует она на пару с ручным тестированием. То есть без работы ручками все же не обойтись. Чтобы понять почему, достаточно перечислить несколько основных недостатков автоматизированного тестирования.
Отбор тестов
Проблемы могут возникать уже на стадии выбора тест-кейсов, которые надо автоматизировать. Очевидно, что далеко не все из кейсов можно автоматизировать в принципе. Если у вас есть тысяча написанных кейсов, в 99 % случаев вы не сможете автоматизировать их полностью — всегда существуют сценарии, которые надо проходить вручную.
Затраты и поддержка
Иногда разработка и сопровождение автотестов обходится дороже ручного тестирования. Вам ведь нужны программисты (а им надо платить больше), специализированные инструменты, среда разработки и т. д. Да и сам процесс написания таких тестов требует много знаний и усилий, связанных с созданием ПО.
Отдельная статья расходов (и немалая) — это поддержка. Проблема в том, что автоматизированные тесты требуют постоянной поддержки, следовательно, кому-то регулярно придется лезть в код, чтобы менять/исправлять логику теста с учетом различных обстоятельств. А таких обстоятельств может быть много, самые популярные из них — это изменение входных данных к тесту или изменение функционала приложения. То есть вместе с автоматизацией подтягивается и весь комплекс проблем, связанных с разработкой.
Но тем не менее
И все же без автоматизации сегодня не обойтись, а ее грамотное использование демонстрирует более высокие результаты при тех же вложениях. Достаточно вспомнить, что: • автотесты быстрее человека; • автотесты точнее человека; • автоматизация повышает качество продукта; • автоматизация может эффективно применяться почти во всех процессах тестирования и она особенно ценна, когда речь идет о систематически повторяющихся процессах (например, в регрессионном/интеграционном/смоук-тестировании одного и того же набора тестов каждый спринт); • автоматизированные тесты могут выполняться по ночам.
И так далее.
Как бы там не было, даже сегодня вам вряд ли удастся полностью перейти от ручного тестирования к автоматизированному. Но это и не надо, ведь автоматизированное и ручное тестирование взаимодополняют друг друга, а не взаимоисключают. Просто помните об этом.