·+Тестирование+при+сдаче+(acceptance+testing)

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

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

**Зачем нужны приёмочные испытания?**
Приёмочные испытания позволяют определить работает ли приложение так, как ожидает клиент (тот, кто заказал приложение). Теперь о том, что это означает… Иногда трудно понять, как использовать приёмочные тесты при тестировании. Некоторые люди видят их подозрительно похожими (если не идентичными) на интеграционное тестирование. Интеграционное тестирование другой уровень процесса тестирования, отличный от юнит тестирования, которое проверяет, что компоненты приложения работают так, как ожидалось. Как и в случае с юнит тестами, это тестирование, как правило, занимается проверкой мест изолированных от остального кода с помощью MOCK объектов, заглушек и специальных тестовых классов. Главное отличие приёмочных тестов в том, что они довольно просты. Интеграционные тесты работают по аналогии с юнит тестами, но с целыми группами связанных классов. Акцент делается на концепции «группы». Мы не тестируем каждый класс в отдельности, как с юнит тестами, а тестируем группы классов, которые вместе создают желаемый результат. Интеграционные тесты, поэтому написаны для и пишутся самими программистами. С другой стороны, приёмочные тесты работают для всего приложения (без изоляции классов и компонентов), как правило, по отношению к интерфейсу пользователя (//прим. в данном случае имеется ввиду не только графический интерфейс, но и любой другой реализованный в виде запросов и видимых ответов//), не важно для браузеров или веб-служб. Они пишутся для обеспечения соответствия приложения целям определенных клиентом. По сути, клиент даже может отвечать за написание тестов! Теперь мы знаем, что приёмочное тестирование является самостоятельной практикой, но зачем нам её использовать?
 * 1) Она отражает ожидания клиента (а не для разработчиков!);
 * 2) Она оценивает, когда функциональность значимая для клиента закончена (знание о том, когда нужно остановиться);
 * 3) Она гарантирует быстрое определение будущего поведения, которое отличается от ожидаемого (регрессионное тестирование);
 * 4) Как любой хороший набор тестов она поддерживает рефакторинг в том же порядке, как юнит и интеграционные тесты.

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

http://blog.alsedi.com/priyomochnoe-testirovanie-acceptance-testing-web-prilozhenij-s-php/ http://wiki.agiledev.ru/doku.php?id=acceptance_testing:what_is_acceptance_testing http://www.protesting.ru/testing/levels/acceptance.html http://www.znannya.org/?view=software-testing-acceptance