Что такое приёмочное тестирование (Acceptance Testing)?

Выполнили системное тестирование? Багов почти не осталось? Проверили их и закрыли? А что дальше? Следующим шагом будет приёмочное тестирование — последний этап тестирования ПО. Этот этап является обязательным перед релизом продукта. По итогам совместной работы разработчиков и тестировщиков заказчик либо примет, либо отклонит разработанный продукт.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туторилов, задач по автоматизации и книг по QA.

Содержание:

Что такое приёмочное тестирование?

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

Что такое приёмочное тестирование?

Тестирование проводится методом «чёрного ящика», при котором проверяется только функциональность продукта, чтобы убедиться, что она соответствует заданным критериям (не требуется знание деталей проектирования или реализации).

Зачем нужны приёмочные тесты?

Несмотря на завершение системного тестирования, заказчик требует проводить приёмочные тесты. Тесты на этом этапе схожи с тестами на этапе системного тестирования.

Существует несколько причин, по которым необходимо проводить приёмочное тестирование:

  • Получить уверенность в продукте перед релизом.
  • Убедиться в правильной работе продукта.
  • Убедиться, что продукт соответствует текущим рыночным стандартам и составляет достойную конкуренцию другим подобным продуктам на рынке.

Виды

Существует несколько видов приёмочного тестирования.

Ниже перечислены лишь некоторые из них:

1. Приёмочное пользовательское тестирование (UAT)

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

2. Бизнес-приёмочное тестирование (BAT)

BAT проверяет соответствие продукта бизнес-целям и требованиям.

BAT-тестирование, в основном, ориентировано на достижение финансовой выгоды, но это может быть сложно из за того, что условия рынка меняются, а технологии непрерывно развиваются. Всё это приводит к дополнительным затратам при разработке продукта.

Даже если продукт удовлетворяет техническим требованиям, он может не пройти BAT.

3. Контрактное приёмочное тестирование (CAT)

Это контракт, который говорит о том, что после запуска ПО в продакшен должно быть проведено приемочное тестирование в течение определенного срока, и все приемочные тесты должны быть успешно пройдены.

Договор, который подписывают на данном этапе, называется Соглашением об уровне обслуживания (SLA, Service Level Agreement). В нём прописываются условия, согласно которым оплата производится, только если продукт удовлетворяет всем требованиям заказчика.

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

4. Правовое приёмочное тестирование (RAT)

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

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

5. Эксплуатационное приёмочное тестирование (OAT)

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

OAT отвечает за стабильность продукта перед его релизом.

6. Альфа-тестирование

Продукт оценивают сами тестировщики (альфа-тестеры). Их замечания и предложения помогают улучшить продукт и исправить баги.

Альфа-тестирование проводится в контролируемых условиях.

7. Бета-тестирование

Бета-тестирование выполняется настоящими пользователями (их ещё называют бета-тестерами) в реальной среде. Тестеры оставляют отзывы, которые помогают устранить баги и повысить удобство пользования продуктом.

Все эти виды приёмочного тестирования объединяются общей целью:

  • Обеспечить доверие к продукту.
  • Убедиться, что продукт готов к использованию реальными пользователями.

Кто проводит приёмочное тестирование?

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

Все остальные типы тестирования обычно проводят различные заинтересованные стороны: заказчики, профессиональные тестировщики.

Также важно привлекать бизнес-аналитиков и экспертов предметной области при проведении того или иного тестирования.

Качества тестировщиков AT(Acceptance Testing)

Тестировщики AT должны обладать следующими качествами:

  • Способностью логически и аналитически мыслить.
  • Хорошим знанием предметной области.
  • Способностью изучать конкурентные продукты на рынке и анализировать их в контексте разработанного продукта.
  • Умением воспринимать продукт с точки зрения конечного пользователя при тестировании.

Проблемы, возникающие в ходе тестирования

Любым проблемам, возникшим на этапе приёмочного тестирования, необходимо уделять первоочередное внимание. Нужно не просто исправить выявленные проблемы, но и провести RCA (анализ корневых причин) всех проблем.

Команда тестировщиков предоставляет для RCA информацию о проблемах, а также помогает определить, насколько эффективно проводится тестирование.

Применение

Необходимо проводить приёмочное тестирование, чтобы :

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

Различия между системным, приёмочным и пользовательским тестированиями

Ниже приведены основные различия между этими тремя видами тестирования.

Системное тестированиеПриёмочное тестированиеПользовательское тестирование
Проводится с целью проверки соответствия продукта всем требованиямПроводится для проверки соответствия продукта требованиям заказчикаПроводится для проверки соответствия продукта требованиям конечных пользователей
Продукт тестируется в целомПродукт тестируется на соответствие бизнес-потребностямПродукт тестируется только для проверки его соответствия ожиданиям пользователей
Команда тестирования выполняет системное тестированиеЗаказчики, тестеры (редко), руководство, отдел продаж, служба поддержки проводят приёмочное тестированиеЗаказчики, тестеры (редко) проводят пользовательское тестирование
Написание и выполнение тест-кейсовНаписание и выполнение приёмочных тестовНаписание и выполнение приёмочных тестов для пользователей
Может быть функциональным и нефункциональнымОбычно функциональное, но возможно и нефункциональноеТолько функциональное
Проводятся позитивные и негативные тестыОбычно проводятся позитивные тестыПроводятся только позитивные тесты
Найденные проблемы считаются багами и исправляются исходя из «серьезности» и «приоритета»При обнаружении ошибок продукт не проходит тестирование и возвращается на доработку.При обнаружении ошибок продукт не проходит тестирование и возвращается на доработку.
Контролируемое тестированиеМожет быть контролируемым или неконтролируемымНеконтролируемое тестирование
Тестирование в среде разработкиТестирование в среде разработки, предпроизводственной среде или производственной средеТестирование всегда проводится в предпроизводственной среде

Приёмочные тесты

Приёмочные тесты основаны на пользовательских историях (US, User Story). Обычно это сценарии, которые подробно описывают, что должен делать продукт при различных условиях.

Конкретного алгоритма действий, как в случае с тест-кейсами, нет. Такие тесты пишут тестировщики, которые имеют полное представление о продукте, обычно это эксперты предметной области. Все написанные тесты проверяются заказчиком или бизнес-аналитиками.

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

Тестовый стенд для приёмочного тестирования

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

Тестовый стенд —среда, в которой будут выполняться разработанные приёмочные тесты. Прежде чем передавать заказчику тестовый стенд, лучше проверить этот стенд на наличие проблем и на стабильность работы продукта.

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

Тестовый стенд для приёмочного тестирования обычно создаётся на стороне заказчика (т.е. в лаборатории), и доступ к этому стенду ограничен.

Подключиться к стенду разработчики и тестировщики могут через виртуальные машины или специально созданные URL-адреса, используя специальные учетные данные. Весь доступ к нему будут отслеживать. Без разрешения заказчика нельзя ничего добавлять/изменять/удалять, а о вносимых изменениях нужно уведомлять заранее.

Критерии входа и выхода для приемочного тестирования

Как и на любом этапе STLC, приёмочное тестирование имеет набор критериев входа и выхода, которые должны быть чётко прописаны в тест-плане.

Этот этап начинается сразу после системного тестирования и заканчивается перед продакшеном.

Критерии входа

Ниже приведены условия, которые необходимо выполнить перед началом тестирования:

  • Необходимо четко и доступно составить бизнес-требования.
  • Завершить системное и регрессионное тестирование.
  • Исправить и закрыть все баги.
  • Подготовить список найденных проблем в ПО.
  • Необходимо создать тестовую среду для приёмочного тестирования.

Критерии выхода

Существуют определённые условия, которые нужно выполнить на этапе приёмочного тестирования перед релизом:

  • Приёмочные тесты выполнены, все тесты пройдены.
  • Не обнаружено никаких дефектов в ПО.

Процесс проведения приёмочного тестирования

Процесс приёмочного тестирования выглядит следующим образом:

Процесс проведения приёмочного тестирования

Анализ бизнес-требований

Чтобы проанализировать бизнес-требования нужно ознакомиться со следующими документами:

  • Спецификации системных требований
  • Документ с бизнес-требованиями
  • Сценарии использования
  • Диаграмма рабочих процессов
  • Разработанная матрица данных

Разработка плана приёмочного тестирования

В тест-плане приёмочного тестирования должны быть прописаны следующие пункты:

  • Критерии входа и выхода чётко определены.
  • Подход к разработке приёмочного тестирования подробно описан.

Разработка и анализ приёмочных тестов

Приемочные тесты – это тесты, в которых указывается, какие действия или операции необходимо выполнить, чтобы проверить соответствует ли продукт заданным требованиям. Например, это может быть проверка функциональности продукта, взаимодействия с пользователем, обработки данных. Главная цель приемочных тестов – убедиться, что продукт работает в соответствии с требованиями бизнеса и соответствует ожиданиям пользователей.

Настройка стенда для приёмочного тестирования

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

Настройка данных приёмочного теста

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

Не стоит называть тестовые данные как TestName1, TestCity1 и т.д., вместо этого лучше использовать реальные данные, например, Albert, Mexico и т.д. Так тестирование будет больше напоминать работу приложения в реальных условиях.

Выполнение приёмочных тестов

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

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

Бизнес-решение

На этом этапе решают, выпускать ли ПО в продакшен. Решение об отказе означает, что продукт не прошел тестирование и считается неудачным.

Факторы отказа:

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

До начала приёмочного теста необходимо выполнить следующие действия:

  • Определить, какие части системы нужно протестировать.
  • Провести приёмочные тесты еще на этапе системного тестирования, как минимум один раз.
  • Провести тщательное ad-hoc-тестирование для каждого сценария приёмочного тестирования.

Заключение

Приёмочное тестирование помогает определить эффективность работы разработчиков и тестировщиков.

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

Перевод статьи «What is Acceptance Testing (A Complete Guide)».

5 комментариев к “Что такое приёмочное тестирование (Acceptance Testing)?”

  1. Пингбэк: Матрица прослеживаемости требований (RTM)

  2. Пингбэк: Написание тест-кейсов: инструкция

  3. Пингбэк: Топ 50 вопросов на QA-собеседовании в 2024 году

  4. Пингбэк: Shift Happens: что такое shift-left тестирование на самом деле?

  5. Пингбэк: Функциональное тестирование

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *