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

18 октября 2022
Дата публикации
Всегда ли полезна автоматизация тестирования
  • Тестирование ПО
  • Автоматизация тестирования
  • Функциональное тестирование
Автоматизированное тестирование ИТ-продуктов — одна из самых обсуждаемых тем уже несколько десятилетий. Но и ручное (функциональное) тестирование сейчас переживает некий ренессанс. Практический опыт и знания специалистов становятся всё более востребованными в исследовательском тестировании и тестировании сложной бизнес-логики.

Многие компании автоматизируют тест-кейсы, чтобы ускорить релиз ПО. Например, в финансовом секторе некоторые организации достигли 99,9% уровня автоматизации для критически важных систем, в то время как другие всё еще работают над 20-30% автоматизации. Тем не менее, автоматизация становится все более приоритетной задачей.

Наши заказчики часто задаются такими вопросами:
  • Зачем и когда использовать автоматизированное тестирование?
  • Помогает ли автоматизация ускорить тестирование?
  • Помогает ли автоматизация сэкономить?
  • Можно ли автоматизировать 100% тест-кейсов, исключив при этом ручное тестирование?
Давайте разберёмся.

Особенности ручного (функционального) тестирования

В ходе ручного тестирования ПО тестировщик напрямую работает с продуктом и имитирует действия пользователя. Это позволяет исследовать интерфейс продукта и найти ошибки в бизнес-логике и дизайне, спрогнозировать реальный пользовательский опыт.
Главная задача ручного тестирования — это убедиться в корректной работе продукта, действуя по запланированному сценарию. Со стороны процесс выглядит как хаотичное нажатие на клавиши, но на деле не всё так просто. Тестировщик придумывает способы испытать продукта в самых разных условиях, чтобы найти малейшие дефекты. Функциональное тестирование ПО позволяет:

  • проверить правильность работы продукта при различных условиях использования
  • проверить соответствие продукта требованиям и ожиданиям конечного пользователя
  • проанализировать уровень качества ПО и приоритизировать найденные дефекты по степени критичности

Преимущества ручного тестирования

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

Недостатки ручного тестирования

К недостаткам ручного тестирования можно отнести:
  • Невозможность проанализировать продукт под большими или ожидаемыми нагрузками, потому что тестирует ПО один человек.
  • Человеческий фактор неизбежен, и чем сложнее продукт, тем скорее что-то ускользнёт от внимания тестировщика.
  • Точечные проверки можно провести достаточно быстро, но сам процесс ручного тестирования занимает много времени и требует серьёзных усилий.

Особенности автоматизированного тестирования

Автоматизация тестирования — это про разработку ПО. В основе процесса лежат индивидуально разработанные автотесты, которые заменяют ручное тестирование. Проверка продукта проводится автоматически по заранее написанному сценарию. Автоматизированное тестирование гарантирует более надёжное и последовательное тестовое покрытие, — но только если тесты запрограммированы тщательным образом. Тогда действительно получится проверить, как работает продукт в процессе использования.

В то же время, небрежное планирование и нереалистичные ожидания сведут на нет все преимущества автоматизации. Нужно время, чтобы убедиться, что фреймворк, созданный для автоматизированного тестирования, обрабатывает простые и сложные функции в коде программного продукта. Автоматизация тестирования — не волшебная палочка, а прикладной инструмент. Чтобы он служил вам исправно и оправдывал затраченные средства, его нужно правильно подобрать, не забывать периодически обслуживать, а по потребности менять на более современный.

Обязательно уделите время изучению инструментов автоматизированного тестирования. А если хотите сэкономить время и силы, обратитесь к профессиональным тестировщикам компании «Точка качества». Мы подберём инструменты, сформируем план тестирования и определим тесты, которые нужно автоматизировать в первую очередь.

Плюсы и минусы автоматизации

Основные преимущества автоматизации:

  • Автотесты могут работать 24/7 без ошибок и человеческой рассеянности, поэтому не пропускают дефекты продукта.
  • Скорость машины в разы превосходит скорость тестировщика.
  • В отличие от человека, автотесты способны параллельно проверять разные окружения, применять разные настройки и имитировать неограниченное количество пользователей.
  • Автотесты помогают сэкономить на дальнейшем тестировании за счёт сокращения числа ручных операций.
  • Автотесты повышают производительность и ускоряют сопутствующие работы (подготовку данных, установку сборок и др.)

Недостатки автотестов:

  • Их нужно регулярно обновлять. В новой сборке ПО может действовать новая логика, и тогда от автотеста не будет толку.
  • Автоматизация тестирования не гарантирует 100% поиск дефектов. Программа работает в чётко заданном направлении: что написано в коде, то и пройдёт проверку. Человек же во время ручного тестирования может обнаружить неисправности, которые не заложены в рамках тест-кейса.
  • Существуют кейсы, автоматизировать которые или в принципе невозможно, или экономически нецелесообразно..
  • Автоматизация тестирования требует вовлечения квалифицированного специалиста и значительных трудозатрат на первых этапах.

Важно, чтобы автоматизация тестирования в проекте не зависела только от одного специалиста, который написал автотесты. Желательно разрабатывать единые стандарты тестирования и стиль написания кода, использовать одни и те же инструменты автоматизации. Такой подход гарантирует сменяемость специалистов.

Какие тесты автоматизировать, а какие — нет


Что следует автоматизировать:

  1. Тесты, которые должны выполняться в каждой сборке и релизе, такие как приёмочный (smoke) тест и регрессионный тест.
  2. Тесты, использующие один и тот же рабочий процесс, но разные данные для входа в каждый тест (анализ граничных значений, тесты, управляемые данными).
  3. Тесты, которым необходимо собирать различную информацию, например, SQL-запросы и низкоуровневые атрибуты приложения.
  4. Тесты, предполагающие ввод больших объёмов данных.
  5. Тесты, которые требуют длительного времени для выполнения или тесты, которые необходимо запускать во время перерывов или ночью. Автоматизация этих тестов позволяет максимально эффективно использовать свободное время.
  6. Тесты, которые необходимо запускать для нескольких конфигураций — например, для разных комбинаций ОС и браузера.
  7. Тесты, во время которых необходимо фиксировать функциональность программы скриншотами, чтобы доказать, что программа ведёт себя так, как и ожидалось.

Помните: чем более повторяющимся является тест, тем больше он подходит для автоматизации.

Что не следует автоматизировать:

  1. Тесты на удобство использования.
  2. Тесты, которые вы будете проводить только один раз (это общее правило, но всё зависит от конкретной ситуации).
  3. Тесты, которые необходимо провести как можно скорее.
  4. Тесты, которые требуют специфических знаний о продукте.
  5. Тесты без предсказуемых результатов. Чтобы автоматизированная проверка была успешной, она должна содержать предсказуемые результаты для создания условий прохождения и отказа.
  6. Любой тест, который невозможно автоматизировать на 100%, лучше не автоматизировать вообще, — если только автоматизация не сэкономит достаточно времени в будущем.
  7. Тест, который не нацелен на критически важные и проблемные области вашего продукта.
К процессу автоматизации лучше подходить обдуманно. Может случиться так, что польза от автоматизированного тестирования не покроет расходы, затраченные на этот процесс.

Подведём итоги

Автоматизированное тестирование обеспечивает прекрасное тестовое покрытие, когда тесты разрабатываются с конкретными, реалистичными целями. Автоматизация сокращает время на проверку качества ИТ-продуктов и подходит для проведения множества регулярных операций — от имитации работы пользователя до создания отчётов о состоянии тестирования.

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


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