Что может предложить автоматизация тестирования? Или выгоды автоматизации тестирования.

Выгоды автоматизации тестирования

Автоматизация тестирования может дать возможность выполнять определенные тестовые задачи намного быстрее и эффективнее чем это может быть сделано вручную. Это и так понятно, но, все-таки, существуют еще некоторые плюсы, которые люди не всегда осознают:

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

Если  сложить все вышесказанное, то больший объем тестирования, может быть достигнут с меньшими усилиями, давая при этом возможность улучшать как качество, так и продуктивность.