Вы решили перейти от ручного тестирования к автоматизированному? В каких же случаях это решение будет действительно правильным?
Достоинства автоматизированного тестирования очевидны – это и высокая скорость выполнения тестов, и возможность выполнять однотипные тесты снова и снова. Оно также помогает обнаружить ошибки, которые были пропущены на стадии ручного тестирования. Автоматизация тестов обеспечивает поддержку Agile и экстремальным методам программирования, позволяет поддерживать строгую документацию проекта и быстро предоставлять отчет о состоянии продукта. В положительных сторонах автоматизации, к счастью, никто уже не сомневается. Однако, не смотря на это, очень редко удается перейти полностью от ручного тестирования к автотестам.
Итак, всегда ли автоматизация выгодна? И вот здесь мы сталкиваемся с самым распространенным заблуждением. Все считают, что в автоматизированном тестировании все выполняется само, а единожды написанный автотест будет работать при любых условиях. На практике же оказывается, что для полноты процесса потребуются еще такие действия как выбор тестов для запуска, подготовка тестовых данных и анализ полученных результатов. Что уже говорить о поддержке автотестов. При каждом обновлении интерфейса или функционала тестируемого продукта потребуется изменение тестов. Автотесты не могут сами адаптироваться под новый интерфейс, и для продолжения их корректной работы тест приходится дорабатывать. Процесс написания автотестов требует не меньших затрат, чем процесс создания любого другого ПО. Далеко не всегда оказывается, что разработка и сопровождение автоматизированных тестов будет дешевле ручного тестирования. Например, если графический интерфейс продукта сильно изменится в ближайшем будущем, то ручное тестирование может оказаться более подходящим.
Автоматизированное тестирование считается более точным и позволяет найти больше ошибок. Это верно, но не совсем, потому что автотесты могут сами содержать ошибки(они как и тестируемый продукт созданы людьми). Что касается выявления ошибок, то ошибки в основном находятся на момент создания автотеста. В остальном же, его дальнейший запуск просто помогает убедиться, что ничего в вашем продукте не поломалось.
Никогда не стоит забывать, что ручное и автоматизированное тестирование не исключают друг друга. А автоматизация начинает приносить пользу только на продуктах, разработка и сопровождение которых достаточно длительны. Автоматизированное тестирование требует дополнительных инвестиций и лишь в редких случаях дает лучшие результаты, чем ручное тестирование при тех же затратах.
Внедряя автоматизированное тестирование нужно соблюдать простые правила, которые позволят использовать все преимущества этого процесса. Во-первых, автоматизация тестирования должна внедряться на ранних стадиях проекта (а не чтобы помочь тестировщикам быстрее справится с задачей перед сдачей проекта). Во-вторых, объём автоматизации должен определятся контекстом проекта. Не нужно автоматизировать все тесты подряд, некоторые тестовые случаи просто невозможно автоматизировать, да и не нужно.