Автоматизированное и ручное тестирование программного обеспечения (ПО)

Обеспечение качества программного обеспечения (ПО) – это сложный с технологической точки зрения процесс, включающий в себя разработку стратегии тестирования, определение параметров качества, проведение различных проверок, обнаружение и описание всех выявленных дефектов, оптимизация процессов и внесение требуемых изменений.

Автоматизированное и ручное тестирование – один из важных элементов в процессе обеспечения качества ПО.

Ручное тестирование

Ручное тестирование – это прямое взаимодействие QA-инженера и приложения. При таком методе тестировании (manual testing) специалист выполняет все тесты вручную, не используя для этого никаких средств автоматизации. Как правило, такое тестирование является продолжительным и трудоемким процессом, поэтому без автоматизации ручной вид проверок применяется только на краткосрочных, небольших проектах, или когда нужно провести тестирование юзабилити и дизайна.

Плюсы и минусы подхода

Плюсы:

  • Обратная связь по UI. Ручное тестирование – это единственный способ, чтобы провести тестирование дизайна приложения и выявить его возможные недостатки.
  • Гибкость. Провести тестирование несущественных изменений с помощью ручного метода можно практически сразу, без необходимости тратить время на написание кода. Эта возможность особенно важна при внедрении новых функций, когда нужно оперативно провести проверку и убедиться в корректности работы.
  • Исследовательское тестирование и возможность импровизации. С помощью ручной проверки можно проверить максимально допустимый потенциал приложения в нетипичной ситуации, выявив возможные дефекты в самые сжатые сроки.
  • Отчет тестировщика. По окончанию тестов, тестировщик составляет отчет, а также предоставляет возможные рекомендации по улучшению ПО. Отчет тестировщика – это первый отзыв от потенциального клиента, с помощью которого можно оценить насколько удобен продукт для конечного пользователя.
  • Стоимость. Ручное тестирование всегда менее затратно.

Минусы:

  • Длительность и большие трудозатраты. Занимает больше времени, чем автоматизированный процесс проверки ПО, поэтому требует больших трудозатрат со стороны QA-инженера.
  • Человеческий фактор. В связи с тем, что тестирование проводит живой человек, бывают ситуации, когда некоторые результаты могут быть не субъективными, а часть ошибок пропущена.

Отсутствие возможности моделирования большой нагрузки – еще один существенный недостаток.

Автоматизированное тестирование

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

Плюсы и минусы подхода

Плюсы:

  • Повторяемость. Код автоматических тестов можно запрограммировать на неоднократную проверку, что актуально при внедрении новой функции. Таким образом, если есть необходимость частого повторного прогона тестирования, то автоматизация позволит значительно сэкономить время и усилия на проверке ПО.
  • Нагрузка на приложение. С помощью автоматизированного тестирования, QA-инженер может смоделировать большую нагрузку, приближенную к реальным или пиковым условиям.
  • Временной фактор. Автоматизация – это минимум усилий и максимальная оперативность при проведении тестирования. Код для сценария пишется один раз, после чего может использоваться многократно. В ручном тестировании все задачи выполняются индивидуально и требуют постоянного присутствия специалиста.

 

Минусы:

  • Стоимость. Автоматизированное тестирование стоит в разы дороже, чем ручное, поэтому его более рационально использовать для долгосрочных/больших проектов.
  • Надежность. Бывают ситуации, когда автоматизированные тесты могут «упасть» по целому ряду причин.
  • Нет возможности провести тестирование цвета, эргономики и дизайна. Хоть данный пункт и не является первоочередным, он также влияет на качество исходного продукта.
  • Отсутствие обратной связи. Такое тестирование не предоставляет обратную связь относительно качества продукта, а лишь выполняет заранее установленные сценарии проверки.

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

Когда лучше применять ручное, а когда автоматизированное тестирование

Как правило, автоматизации подлежат следующие виды тестирования:

  • регрессионное;
  • тестирование локализации;
  • нагрузочное.

Ручные проверки рекомендуется при:

  • интуитивном тестировании (ad-hoc testing);
  • исследовательском;
  • тестировании юзабилити.

Важно заметить, что как автоматизированное, так и ручное может применяться на разных уровнях тестирования.

Резюме и сравнение

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

Грамотное комбинирование двух методов – это возможность оптимизировать затраты и получить продукт высокого качества.