Автоматизация тестирования может дать возможность выполнять определенные тестовые задачи намного быстрее и эффективнее чем это может быть сделано вручную. Это и так понятно, но, все-таки, существуют еще некоторые плюсы, которые люди не всегда осознают:
- Выполнение существующих регрессионных тестов. Это должно быть самая очевидная задача автоматизации, в частности, когда программы исправляются и дополняются очень часто. Усилия, потраченные на выполнение существующих регрессионных тестов должны быть минимальны, для того, чтобы в нужный момент была возможность выбора автоматизированных тестов и их запуск с минимальными ручными усилиями и в считанные минуты.
- Выполнение большого количества тестов более часто. Известный факт, что часто-повторяемые задачи наиболее хорошо поддаются автоматизации. Четкая выгода в том, чтобы запускать большее количество тестов, в меньшие сроки, давая при этом косвенную возможность запускать тесты более часто.
- Выполнение тестов, которые будет сложно или невозможно сделать. Предположим, что нам необходимо симулировать нагрузку в 500 пользователей на какую-то систему. Я думаю, что это будет невозможно или крайне затратно сделать ручным способом. С другой стороны, автоматические тесты могут выполнить все это в любой момент, и запустить их сможет любой человек, который даже не будет особо разбираться в логике системы. Другой пример невыполнимой работы может быть следующим. Каждый пользователь, смотря на графический интерфейс, интуитивно ожидает появление какой-то визуализации данных при определенный действиях, но пользователь (тестеровщик) может даже и не представлять, что за этим кроются какие-то скрытые механизмы, такие как, например, вызов и обработка событий, которые нельзя проверить визуально. События и их поведение просто невозможно проверить без использования специальных программных средств.
- Использовать сэкономленные ресурсы на более важные и интересные задачи. Автоматизация обычных и скучных задач, например, повторяемых с разными вариациями данных, дает возможность полагаться на большую степень аккуратности при проведения тестирования и при этом улучшается моральное состояние людей, которые работаю с такими задачами. Также высококвалифицированные работники могут свободно вкладывать свои усилия в проектирование более сложных автоматических тестов, которые впоследствии будут выполняться. Ручная работа некуда не денется. Ручное тестирование является неотъемлемой частью автоматизации тестирования и наоборот. Всегда будут задачи, которые лучше выполнять вручную, более того ручное тестирование будет выполняться намного лучше, если автоматические тесты будут давать уверенность в том, что в протестированном участке нет дефектов.
- Постоянство и повторяемость тестов. Автоматизация дает нам возможность постоянно выполнять тесты с четко одними и теми же данными (входные данные всегда будут те же, а вот выходные могут отличаться на протяжении некоторого времени разработки), чего нам (увы) не может гарантировать человек, выполняя эту же работу вручную, потому уверенность в тестировании повышается. Эти же тесты могут быть выполнены на разных операционных системах и использованием разных баз данных, что тоже даст уверенность в том, что кросс-платформенность продукта на высоком уровне.
- Повторное использование тестов. Усилия, вложенные на принятие решений, что необходимо тестировать, проектирования и формирования тестов может дать возможность использовать или повторно использовать разработанные тесты. В свою очередь это сэкономит время разработки новых тестов. Что необходимо учитывать, что бы такие тесты были стабильными, иначе потраченное время на поддержку тестов будет большим.
- Быстрый вывод продукта на рынок. Как только тесты будут автоматизированы, у вас появиться возможность повторного запуска и следственно общее время, потраченное на выполнение тестирования, будет меньшим.
- Повышающаяся уверенность. Конечно же, осознание и понимание, что исчерпывающее количество автоматических тестов дают постоянно положительные результаты увеличивает доверие и уверенность в том, что не будет никаких непредсказуемых сюрпризов, когда программное обеспечение будет выпущено (конечно, подразумевается, что тесты выполняют свою функции и проверяют ПО на наличие ошибок).
Если сложить все вышесказанное, то больший объем тестирования, может быть достигнут с меньшими усилиями, давая при этом возможность улучшать как качество, так и продуктивность.