Manual Testing vs Automation Testing : Keeping the balance Right!

Manual Testing vs Automation Testing : Keeping the balance Right!

Hanna Horskaya

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

Несомненно, автоматизация тестирования имеет преимущества повышения эффективности, ускорения регрессии и способствует своевременной реализации проектов. Она также исключает выполнение повторяющихся тестовых сценариев или регрессионных тестов вручную, что облегчает жизнь тестировщика.

Но прежде чем рассматривать введение автоматизации, есть определенные моменты, которые следует отметить. Вы, должно быть, слышали утверждение «Нельзя все автоматизировать».

Во многих случаях ручное тестирование является единственным правильмых выбором. Фактически, самый большой недостаток самого ручного тестирования является его самым большим преимуществом- оно требует вмешательства человека! В некоторых случаях для проверки системы требуется человеческое мышление и интуиция.

Вот например несколько случаев, когда ручное тестирование играет жизненно важную роль:

  1. Usability Testing- это тестирование приложения с точки зрения логичности- насколько оно легкое или сложное для понимания. Это необходимо для проверки того, насколько приложение интерактивно для пользователей, которые собираются его использовать. Такого рода тесты не могут быть автоматизированы и должны выполняться вручную.
  2. UI and UX Testing- тестирование пользовательского интерфейса не может быть автоматизировано. Даже если вы попытаетесь его автоматизировать, от это будет частичная автоматизация. Сценарии автоматизации можно использовать для тестирования макета, ошибок CSS и структуры HTML, но весь пользовательский интерфейс не может быть автоматизированн.
  3. Exploratory Testing- Сем Канер, придумавший термин в 1984 году, определил исследовательское тестирование как: «Стиль тестирования программного обеспечения, который подчеркивает личную свободу и ответственность отдельного тестировщика за постоянную оптимизацию качества своей работы путем обработки обучения, связанного с тестированием. Разработка тестов, выполнение тестов и интерпретация результатов тестирования как взаимодополняющие действия, которые выполняются параллельно на протяжении всего проекта ».
  4. Ad-hoc testing- это совершенно незапланированное тестирование, основанное на понимании тестировщика. Готового сценария для этого тестирования нет, и его нужно выполнять вручную.

Достоинства автоматизации тестирования

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

  1. Regression Testing– сценарии регрессии повторяемые, мы можем автоматизировать их один раз и выполнять своевременно.
  2. Load Testing–  автоматизация очень полезна в случае нагрузочного тестирования. Нагрузочное тестирование выявляет узкие места в системе при различных рабочих нагрузках и проверяет, как система реагирует на постепенное увеличение нагрузки, что может быть достигнуто только за счет автоматизации.
  3. Performance Testing- тестирование производительности определяется как тип тестирования программного обеспечения, используемый для проверки работоспособности программных приложений при ожидаемой рабочей нагрузке. Автоматизация очень полезна в этом типе тестирования.

Кроме того, любые часто повторяющиеся тестовые сценарии можно автоматизировать. Принимая во внимание вышеизложенное, вы можете решить, что, как и почему автоматизировать.

Что, почему и как автоматизировать

Иногда бывает очень сложно поддерживать баланс между ручным управлением и автоматизацией. Многие менеджеры стремятся автоматизировать все. Но является ли это подход лучшим?

Прежде чем приступить к автоматизации, вам нужно ответить на эти три вопроса:

1) Что нужно автоматизировать?

Давайте сначала подумаем, что именно нужно автоматизировать. Под «точно» имеется в виду такая часть «требования» / «особенности» / «приложения», которая является кандидатом, необходимым для автоматизации. Часто приложение, которое планируется автоматизировать, называют AUT (Тестируемое приложение). Вполне возможно, что часть функции можно автоматизировать, а остальные протестировать вручную.

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

2) Почему автоматизация?

Это очень важный вопрос. Зачем нужно автоматизировать? Это потому, что автоматизация снижает усилия и увеличивает эффективность? Или это потому, что автоматизация принесет пользу в долгосрочной перспективе? Или это обычное дело? Вы можете в конечном итоге задать себе несколько вопросов:

  1. Это единовременное требование и никогда не появится в будущем? тогда нам, вероятно, не нужно автоматизировать этот сценарий.
  2. Сложно ли решение автоматизации? Также вам необходимо понимать сложность тестируемого приложения. Если автоматизация приводит к созданию самого параллельного приложения, то в автоматизации нет смысла.
  3. Но может быть случай, когда решение является сложным, но функция или AUT продолжает меняться, а разработка планируется в долгосрочной перспективе, тогда автоматизация может оказаться полезной в долгосрочной перспективе.
  4. Ограничение по времени. Доставка может быть ограничена по времени. В то время роль менеджера очень важна при принятии решения инвестировать в автоматизацию или перейти на ручной труд.
  5. Ресурсы и навыки команды тестирования - это тоже важный фактор. Сколько инженеров по автоматизации доступно в группе тестирования, чтобы использовать свою полосу пропускания для AUT? В основном для небольших команд это решающий фактор в пользу автоматизации.

3) Как автоматизировать?

Этот вопрос относится к поиску решения. Таким образом, вы можете найти ответ «Как» и получить ответ «почему» и наоборот.

КАК решать, как мы будем автоматизировать AUT. Не путайте с AUT или функцией, поскольку это означает и то, и другое, если вы собираетесь автоматизировать все приложение или небольшую функцию. Иногда для небольшого приложения не требуется полноценная среда автоматизации.

Доступны различные инструменты, которые не требуют программирования и могут решить эту задачу. Например, Test Recorder от CloudQA - один из таких инструментов, который имеет множество удобных инструментов для различных типов тестирования и очень удобен для небольших приложений.

Полноценная среда автоматизации требуется, когда AUT большой и постоянно совершенствуются. В это время перед каждым выпуском функции может выполняться регрессионный прогон, и автоматизация может значительно сократить усилия.

Разработка среды автоматизации требует как навыков программирования, так и времени, поэтому, прежде чем приступить к этому, тестировщик всегда должен анализировать ROI (возврат инвестиций), а затем составлять соответствующий план.

Кроме того, автоматизация дает чувство уверенности в том, что существует максимальный охват регрессионных тестов и что существующие функции не нарушаются из-за добавления новых функций.

Заключение

Сделаем вывод, что использование только ручного управления или только автоматизации - это неправильный подход. Между ними должен быть баланс, и я надеюсь, что приведенные выше пункты помогут найти правильный баланс.




Report Page