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

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

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


person JavaRocky    schedule 30.07.2010    source источник


Ответы (11)


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

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

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

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

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

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

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

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

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

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

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

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

person Patrick Cuff    schedule 30.07.2010
comment
плюс 1 за хороший ответ и также известный как «Защищенность», просто чтобы вписаться :). Забавно :) Команда SO не учла тот факт, что в реальном мире кто-то может заменить знак + реальным словом, как это сделал я. Таким образом, они не позволяют вводить +1 в качестве первого слова в комментарии, но разрешают плюс 1 :). Так что функционально они не смогли это проверить должным образом :). Мябе они просто пробовали приемочные испытания :) - person Geo C.; 06.04.2017

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

уровни тестирования

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

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

типы тестов

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

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

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

person Nick V    schedule 12.06.2014
comment
Это лучший ответ на этот вопрос, и различие между уровнем теста и типом теста - это то, чего здесь не хватает большинству ответов, и вы правы, это открывает глаза - person zmilan; 11.05.2017

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

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

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

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

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

person Machiel    schedule 20.11.2011
comment
Это мой любимый ответ на этот вопрос. Различие между проблемой и решением помогает прояснить это различие. - person Lou; 04.09.2020

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

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

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

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

person hol    schedule 30.07.2010
comment
Мне нравится этот ответ :) Это почти одно и то же. - person anbanm; 16.09.2010
comment
UAT в конечном итоге выполняется плательщиком. Тем не менее, в большинстве случаев это сначала делает специалист по контролю качества, который хорошо тестирует и пытается взломать систему и ищет все мелочи ДО того, как платящий клиент получит ее в свои руки. Автоматизация Selenium для повторения утомительных вещей также может использоваться вместе с истинным тестированием UAT тестировщиком QA, но никогда не повторять истинное тестирование для тестирования всей функциональности, ожидаемой во всех ожидаемых браузерах. UAT довольно понятен. Я думаю, что большинство описаний функционального тестирования относятся к роботам и словарям. - person Tom Stickel; 06.08.2012
comment
Как я уже сказал, это мой опыт интерпретации терминов. - person hol; 06.08.2012
comment
Это нормально. Когда я заметил это расплывчатое определение ... мне просто пришлось прокомментировать функциональное тестирование: взять бизнес-требования и протестировать все это хорошо и тщательно с функциональной точки зрения. - person Tom Stickel; 06.08.2012
comment
Ха-ха, да, теперь я тебя понимаю. Хорошо, об этом можно написать целую книгу. Я не хотел вдаваться в подробности в момент написания. - person hol; 06.08.2012

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

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

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

person Ethel Evans    schedule 30.11.2010

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

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

person Prashant Vadher    schedule 26.10.2010

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

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

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

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

Приемочное тестирование:

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

Хотя дальше говорится:

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

с пометкой "необходима цитата".

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

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

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

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

person ChrisF    schedule 30.07.2010

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

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

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

person Andrejs    schedule 20.08.2016

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

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

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

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

person ali65    schedule 02.06.2015

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

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

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

person jmz    schedule 30.07.2010
comment
Хотя автоматизация с помощью Selenium и Watin (или Watir) и т. Д. Является очень ценной первой линией защиты, ничто не сравнится с обученным специалистом по контролю качества, который настроен на взлом системы. Автоматизация - это здорово, но с современной разработкой AJAX и javascript framework и изменением вывода на странице автоматизировать все - кошмар для обновления сценариев. Это НЕ одно и то же - person Tom Stickel; 06.08.2012