Разница между приемочным испытанием и функциональным испытанием?

148

В чем реальная разница между приемочными и функциональными испытаниями?

Каковы основные или цели каждого? Везде, где я читаю, они неоднозначно похожи.

JavaRocky
источник

Ответы:

172

В моем мире мы используем следующие термины:

функциональное тестирование : это проверка деятельности; мы создали правильно работающий продукт? Соответствует ли программное обеспечение бизнес-требованиям?

Для этого типа тестирования у нас есть тестовые случаи, которые охватывают все возможные сценарии, которые мы можем придумать, даже если этот сценарий вряд ли существует "в реальном мире". При проведении такого типа тестирования мы стремимся к максимальному охвату кода. Мы используем любую тестовую среду, которую можем получить в то время, это не обязательно должен быть «производственный» калибр, если он пригоден для использования.

приемочные испытания : Это проверка деятельности; мы построили правильную вещь? Это то, что действительно нужно клиенту?

Обычно это делается в сотрудничестве с клиентом или внутренним доверенным лицом клиента (владельцем продукта). Для этого типа тестирования мы используем тестовые случаи, которые охватывают типичные сценарии, при которых мы ожидаем, что программное обеспечение будет использоваться. Этот тест должен проводиться в «производственной» среде, на оборудовании, которое совпадает или близко к тому, что будет использовать клиент. Это когда мы проверяем наши «способности»:

  • Надежность, доступность : подтверждено стресс-тестом.

  • Масштабируемость : подтверждено нагрузочным тестом.

  • Удобство использования : подтверждено осмотром и демонстрацией клиенту. Настроен ли пользовательский интерфейс по своему вкусу? Разместили ли мы брендинг клиента во всех нужных местах? У нас есть все поля / экраны, которые они просили?

  • Безопасность (также известная как Securability, просто для встраивания) : подтверждена демонстрацией. Иногда клиент нанимает стороннюю фирму для проведения аудита безопасности и / или тестирования на проникновение.

  • Ремонтопригодность : подтверждено демонстрацией того, как мы будем предоставлять обновления / исправления программного обеспечения.

  • Конфигурируемость : подтверждено демонстрацией того, как клиент может модифицировать систему в соответствии со своими потребностями.

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

Патрик Кафф
источник
плюс 1 за хороший ответ и "ака, защищаемость, просто чтобы соответствовать" :). Забавно :) Команда SO не приняла во внимание тот факт, что в реальном мире кто-то может заменить знак + настоящим словом, как я. Поэтому они не позволяют вводить +1 в качестве первого слова в комментарии, но они допускают «плюс 1» :). Таким образом, функционально они не смогли проверить это должным образом :). Myabe они только что попробовали приемочные испытания :)
Geo C.
71

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

тестовые уровни

Уровень тестирования легко объяснить с помощью V-модели , например: введите описание изображения здесь Каждый уровень тестирования имеет свой соответствующий уровень разработки . У него типичные временные характеристики, они выполняются на определенной стадии жизненного цикла разработки.

  1. тестирование компонентов / модулей => проверка детального проекта
  2. тестирование интеграции компонентов / модулей => проверка глобального дизайна
  3. тестирование системы => проверка системных требований
  4. тестирование системной интеграции => проверка системных требований
  5. приемочные испытания => проверка требований пользователя

типы тестов

Тип теста - это характеристика, он ориентирован на конкретную цель теста. Типы тестов подчеркивают ваши аспекты качества, также известные как технические или нефункциональные аспекты. Типы тестов могут быть выполнены на любом уровне тестирования . Мне нравится использовать в качестве типов испытаний качественные характеристики, упомянутые в ИСО / МЭК 25010: 2011.

  1. функциональное тестирование
  2. проверка надежности
  3. тестирование производительности
  4. проверка работоспособности
  5. тестирование безопасности
  6. тестирование на совместимость
  7. тестирование ремонтопригодности
  8. тестирование переносимости

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

Ник V
источник
2
Это лучший ответ на этот вопрос, и «различие между уровнем теста и типом теста» - это то, что большинство ответов здесь пропускают, и вы правы, это «откровение»
zmilan
23

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

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

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

Функциональное тестирование - протестируйте продукт, убедившись, что он обладает качествами, которые вы спроектировали или создали (функции, скорость, ошибки, согласованность и т. Д.)

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

Machiel
источник
9

Ответ - мнение. Я работал во многих проектах и ​​был тест-менеджером и менеджером проблем, и все разные роли и описания в разных книгах различны, поэтому вот мой вариант:

функциональное тестирование: примите бизнес-требования и протестируйте все это хорошо и тщательно с функциональной точки зрения.

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

Как я уже сказал, это моя точка зрения и опыт. Функциональное тестирование является систематическим, и приемочное тестирование - это, скорее, бизнес-департамент, проводящий тестирование.

хол
источник
Мне нравится этот ответ :) Они в значительной степени одно и то же.
2010 года
1
UAT - это, в конечном счете, «платящий» клиент. Тем не менее, большую часть времени сначала делает специалист по контролю качества, который «хорош» в тестировании и «попытке» сломать систему и ищет все «мелочи» ДО того, как «платящий» клиент получит это в свои руки. Автоматика Selenium для повторения утомительных вещей может также использоваться вместе с настоящим тестированием UAT тестером QA, но никогда не повторять истинное тестирование, чтобы протестировать все функциональные возможности, ожидаемые со всеми ожидаемыми браузерами. UAT довольно понятен. Я думаю, что большинство описаний функционального тестирования похоже на роботизированное и словарное.
Том Стиккель
Как я уже сказал, это мой опыт интерпретации терминов.
хол
Это хорошо. Когда я заметил это расплывчатое определение ... мне просто нужно было прокомментировать «функциональное тестирование: возьмите бизнес-требования и протестируйте все это хорошо и тщательно с функциональной точки зрения».
Том Стиккель
Хаха, да, теперь я тебя понимаю. Хорошо, это то, что вы могли бы написать целую книгу об этом. Я не хотел вдаваться в подробности, когда написал это.
хол
8
  1. Зрительская аудитория. Функциональное тестирование должно гарантировать членам команды, производящей программное обеспечение, то, что оно делает, что они ожидают. Приемочное тестирование должно гарантировать потребителю, что оно отвечает его потребностям.

  2. Объем. Функциональное тестирование одновременно проверяет функциональность только одного компонента. Приемочное тестирование охватывает любой аспект продукта, который достаточно важен для потребителя, чтобы протестировать его перед принятием программного обеспечения (т. Е. Все, что стоит времени или денег, которые потребуются для его тестирования, чтобы определить его приемлемость).

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

Этель Эванс
источник
2

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

Приемочное тестирование. Формальное тестирование, проводимое для определения того, удовлетворяет ли система критериям приемлемости, - позволяет конечному пользователю определить, принимать или не принимать систему.

Прашант Вадхер
источник
1

На мой взгляд, основное различие заключается в том, кто говорит, если тесты пройдены успешно или не пройдены.

Функциональный тест проверяет, что система соответствует заранее определенным требованиям. Это выполняется и проверяется людьми, ответственными за разработку системы.

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

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

Приемочные испытания :

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

Хотя это продолжает говорить:

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

с пометкой "цитата нужна".

Функциональное тестирование (которое фактически перенаправляет на тестирование системы):

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

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

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

ChrisF
источник
0

Отношения между ними: Приемочный тест обычно включает функциональное тестирование, но может включать дополнительные тесты. Например, проверка требований к маркировке / документации.

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

Для физического продукта (не программного обеспечения) существует два основных вида приемочных испытаний : проектные испытания и производственные испытания. При проектных испытаниях обычно используется большое количество образцов продукции, которые прошли производственные испытания. Разные потребители могут тестировать дизайн разными способами.

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

ali65
источник
0

Приемочное тестирование - это просто тестирование, проводимое клиентом, и включает в себя другие виды тестирования:

  • Функциональное тестирование: «эта кнопка не работает»
  • Нефункциональное тестирование: «эта страница работает, но работает слишком медленно»

Для функционального тестирования против нефункционального тестирования (их подтипы) - см. Мой ответ на этот вопрос SO .

Андрейс
источник
-1

Это одно и то же.

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

Вы можете сделать приемочное тестирование в автоматическом режиме или вручную.

JMZ
источник
1
Хотя автоматизация с помощью Selenium и Watin (или Watir) и т. Д. Является очень ценной первой линией защиты, ничто не может сравниться с обученным специалистом по обеспечению качества, который настроен на «взлом системы». Автоматизация великолепна, но с современной разработкой AJAX и javascript Framework и изменение вывода на странице, чтобы автоматизировать все, является кошмаром обновления сценариев. Они НЕ одно и то же
Том Стиккель