В чем реальная разница между приемочными испытаниями и функциональными испытаниями?
Каковы основные моменты или цели каждого? Везде, где я читал, они неоднозначно похожи.
В чем реальная разница между приемочными испытаниями и функциональными испытаниями?
Каковы основные моменты или цели каждого? Везде, где я читал, они неоднозначно похожи.
В моем мире мы используем следующие термины:
функциональное тестирование: это действие проверки; мы построили правильно работающий продукт? Соответствует ли программное обеспечение бизнес-требованиям?
Для этого типа тестирования у нас есть тестовые примеры, которые охватывают все возможные сценарии, которые мы можем придумать, даже если такой сценарий вряд ли существует «в реальном мире». При проведении этого типа тестирования мы стремимся к максимальному охвату кода. Мы используем любую тестовую среду, которую можем найти в данный момент, она не обязательно должна быть «производственной», если ее можно использовать.
приемочное тестирование: это действие проверки; мы построили правильную вещь? Это то, что действительно нужно заказчику?
Обычно это делается в сотрудничестве с клиентом или внутренним доверенным лицом клиента (владельцем продукта). Для этого типа тестирования мы используем тестовые примеры, которые охватывают типичные сценарии, в которых мы ожидаем использования программного обеспечения. Этот тест должен проводиться в «производственной» среде на оборудовании, аналогичном или близком к тому, что будет использовать заказчик. Это когда мы проверяем свои «способности»:
Надежность, доступность: подтверждено стресс-тестом.
Масштабируемость: подтверждено нагрузочным тестом.
Удобство использования. Проверено путем осмотра и демонстрации клиенту. Настроен ли пользовательский интерфейс по своему вкусу? Поместили ли мы брендинг клиента во все нужные места? Есть ли у нас все поля / экраны, которые они просили?
Безопасность (также известная как "Защищенность"): подтверждено путем демонстрации. Иногда заказчик нанимает стороннюю фирму для проведения аудита безопасности и / или тестирования на проникновение.
Ремонтопригодность: подтверждено демонстрацией того, как мы будем доставлять обновления / исправления программного обеспечения.
Возможность настройки: подтверждается путем демонстрации того, как клиент может изменить систему в соответствии со своими потребностями.
Это ни в коем случае не стандарт, и я не думаю, что существует «стандартное» определение, как демонстрируют здесь противоречивые ответы. Самым важным для вашей организации является точное определение этих терминов и их соблюдение.
Мне нравится ответ Патрика Каффа. Что мне нравится добавлять, так это различие между уровнем тестирования и типом теста, которое открыло мне глаза.
Уровень тестирования легко объяснить с помощью V-модели, пример: Каждому уровню тестирования соответствует соответствующий уровень развития. У них типичная временная характеристика, они выполняются на определенном этапе жизненного цикла разработки.
Тип теста - это характеристика, он ориентирован на конкретную цель тестирования. Типы тестов подчеркивают ваши аспекты качества, также известные как технические или нефункциональные аспекты. Типы тестов можно выполнять на любом уровне тестирования. Мне нравится использовать в качестве типов тестов характеристики качества, упомянутые в ISO / IEC 25010: 2011.
Чтобы сделать его законченным. Также существует так называемое регрессионное тестирование. Это дополнительная классификация рядом с уровнем тестирования и типом теста. регрессионный тест - это тест, который вы хотите повторить, потому что он затрагивает что-то важное в вашем продукте. Фактически, это подмножество тестов, которые вы определили для каждого уровня тестирования. Если в вашем продукте исправлена небольшая ошибка, у вас не всегда есть время повторить все тесты. Регрессионное тестирование - ответ на этот вопрос.
Разница между тестированием проблемы и решением. Программное обеспечение - это решение проблемы, и то, и другое можно протестировать.
Функциональный тест подтверждает, что программное обеспечение выполняет функцию в пределах того, как вы решили проблему. Это неотъемлемая часть разработки программного обеспечения, сравнимая с тестированием продукта массового производства перед тем, как он покинет завод. Функциональный тест подтверждает, что продукт действительно работает так, как вы (разработчик) думаете.
Приемочные испытания подтверждают, что продукт действительно решает проблему, для решения которой он был создан. Лучше всего это может сделать пользователь (заказчик), например, выполняя свои задачи, с которыми помогает программное обеспечение. Если программное обеспечение проходит этот тест в реальном мире, оно заменяет предыдущее решение. Этот приемочный тест иногда можно правильно провести только в производственной среде, особенно если у вас есть анонимные клиенты (например, веб-сайт). Таким образом, новая функция будет принята только через несколько дней или недель использования.
Функциональное тестирование - проверьте продукт, убедившись, что он обладает теми качествами, которые вы разработали или создали (функции, скорость, ошибки, согласованность и т.
Приемочное тестирование - протестируйте продукт в его контексте, для этого требуется (имитация) взаимодействия человека, проверьте, что он оказывает желаемое влияние на исходную проблему (проблемы).
Ответ - мнение. Я работал во многих проектах, был менеджером по тестированию и менеджером задач, и все разные роли, и описания в разных книгах различаются, так что вот мой вариант:
функциональное тестирование: возьмите бизнес-требования и тщательно и тщательно протестируйте их с функциональной точки зрения.
приемочное тестирование: «платящий» покупатель проводит тестирование, которое ему нравится, чтобы он мог принять доставленный продукт. Это зависит от заказчика, но обычно тесты не такие тщательные, как функциональное тестирование, особенно если это внутренний проект, потому что заинтересованные стороны проверяют результаты тестирования, выполненные на более ранних этапах тестирования, и доверяют им.
Как я уже сказал, это моя точка зрения и опыт. Функциональное тестирование носит систематический характер, а приемочное тестирование - это, скорее, бизнес-отдел, который тестирует вещь.
Зрительская аудитория. Функциональное тестирование заключается в том, чтобы убедить членов команды, производящей программное обеспечение, в том, что оно делает то, что они ожидают. Приемочное тестирование призвано убедить потребителя в том, что оно соответствует его потребностям.
Сфера. Функциональное тестирование проверяет функциональность только одного компонента за раз. Приемочное тестирование охватывает любой аспект продукта, который достаточно важен для потребителя, чтобы протестировать его перед принятием программного обеспечения (т. Е. Все, что стоит времени или денег, которые потребуются для его тестирования, чтобы определить его приемлемость).
Программное обеспечение может проходить функциональное тестирование, интеграционное тестирование и системное тестирование; только для того, чтобы не пройти приемочные испытания, когда заказчик обнаружит, что функции просто не соответствуют его потребностям. Обычно это означает, что кто-то напортачил со спецификацией. Программное обеспечение также может не пройти некоторые функциональные тесты, но пройти приемочное тестирование, потому что заказчик желает исправлять некоторые функциональные ошибки, если программное обеспечение удовлетворительно выполняет основные функции, которые им необходимы (бета-версия программного обеспечения часто будет принята подмножеством пользователей до этого. полностью функциональна).
Функциональное тестирование: применение тестовых данных, полученных из указанных функциональных требований, без учета окончательной структуры программы. Также известно как тестирование черного ящика.
Приемочное тестирование: формальное тестирование, проводимое для определения того, удовлетворяет ли система ее критериям приемки, - позволяет конечному пользователю определить, принимать ли систему или нет.
На мой взгляд, основная разница в том, кто говорит, успешны ли тесты или нет.
Функциональный тест проверяет соответствие системы заранее определенным требованиям. Его проводят и проверяют люди, ответственные за разработку системы.
Приемочные испытания подписываются пользователями. В идеале пользователи будут говорить то, что они хотят протестировать, но на практике это, скорее всего, завершение функционального тестирования, поскольку пользователи не уделяют достаточно времени. Обратите внимание, что это мнение принадлежит бизнес-пользователям, с которыми я работаю с другими группами пользователей, например. авиация и другие критически важные для безопасности полеты могут не иметь этой разницы,
... это тестирование методом черного ящика, выполняемое для системы (например, программного обеспечения, партий изготовленных механических деталей или партий химических продуктов) перед ее доставкой.
Хотя дальше говорится:
Он также известен как функциональное тестирование, тестирование методом черного ящика, приемка выпуска, тестирование QA, тестирование приложений, тестирование уверенности, финальное тестирование, валидационное тестирование или заводское приемочное тестирование.
с пометкой "необходима цитата".
Функциональное тестирование (которое фактически перенаправляет на тестирование системы):
проводится в полной интегрированной системе для оценки соответствия системы установленным требованиям. Системное тестирование относится к сфере тестирования черного ящика и, как таковое, не требует знания внутренней структуры кода или логики.
Итак, исходя из этого определения, они в значительной степени одно и то же.
По моему опыту приемочные тесты обычно являются подмножеством функциональных тестов и используются в формальном процессе подписания заказчиком, в то время как функциональные / системные тесты выполняются разработчиком / отделом контроля качества.
Приемочное тестирование - это просто тестирование, проводимое клиентом, и включает другие виды тестирования:
Для функционального тестирования и нефункционального тестирования (их подтипы) - см. Мой ответ на этот ТАК вопрос.
Взаимосвязь между ними: Приемочное испытание обычно включает функциональное тестирование, но может включать дополнительные тесты. Например, проверка требований к маркировке / документации.
Функциональное тестирование - это когда тестируемый продукт помещается в тестовую среду, которая может производить различные стимулы (в рамках теста), которые обычно производит целевая среда или даже за ее пределами, при изучении реакции тестируемое устройство.
Для физического продукта (не программного обеспечения) существует два основных вида приемочных испытаний: проектные испытания и производственные испытания. В конструкторских испытаниях обычно используется большое количество образцов продукции, прошедших производственные испытания. Разные потребители могут тестировать дизайн по-разному.
Приемочные испытания называются верификацией, когда конструкция проверяется на соответствие спецификации продукта, а приемочные испытания называются валидацией, когда продукт помещается в реальную среду потребителя.
Это одно и то же.
Приемочное тестирование выполняется на завершенной системе в максимально возможной степени идентичной реальной производственной / развертываемой среде перед развертыванием или доставкой системы.
Вы можете проводить приемочные испытания в автоматическом или ручном режиме.