Функциональное тестирование (Functional/Behavioral testing)
Функциональное тестирование (functional testing): Тестирование, основанное на анализе спецификации функциональности компонента или системы. См. также тестирование методом черного ящика. (ISTQB)
Функциональное тестирование выполняется чтобы убедиться, что каждая функция программного приложения ведет себя так, как указано в документе с требованиями. В большинстве случаев это выполняется методом black box testing.
Для функционального тестирования принято использовать две техники:
Тестирование на основе требований: содержит все функциональные спецификации, которые составляют основу для всех тестов, которые будут проводиться;
Тестирование на основе бизнес-сценариев: содержит информацию о том, как система будет восприниматься с точки зрения бизнес-процесса;
Основные виды функционального тестирования:
Unit Testing: модульное тестирование обычно выполняется разработчиком и влечет за собой написание тестов, которые будут вызывать методы в каждом модуле и проверять их, передавая требуемые параметры и проверяя соответствие возвращаемого значения ожидаемому. Покрытие кода - важная часть модульного тестирования, где должны существовать test cases, охватывающие:
Line coverage;
Code path coverage;
Method coverage;
Smoke Testing: тестирование, которое проводится после выпуска каждой сборки. Это также называется build verification testing;
Sanity Testing: тестирование, которое проводится для того, чтобы убедиться, что все основные и жизненно важные функции приложения / системы работают правильно. Обычно это делается после Smoke Testing;
Regression Tests: тестирование проводится для того, чтобы убедиться, что добавление нового кода, улучшений, исправление ошибок не нарушает существующую функциональность или не вызывает нестабильности и ПО все еще работает в соответствии со спецификациями. Регрессионные тесты не должны быть такими обширными, как фактические функциональные тесты, но должны гарантировать объем покрытия, подтверждающий стабильность функциональности;
Integration Tests: когда система полагается на несколько функциональных модулей, которые работают по отдельности, но должны работать согласованно когда объединены вместе, чтобы достичь сквозного сценария, проверка таких сценариев называется интеграционным тестированием;
Beta/Usability Testing: продукт демонстрируется реальному пользователю в среде, приближенной к проду, и они тестируют продукт. Это похоже на User Acceptance testing;
System testing: тестирование, которое выполняется для всей системы, чтобы проверить, работает ли она должным образом после интеграции всех модулей или компонентов;
End to end testing: проводится для проверки функциональности продукта. Это тестирование выполняется только после завершения тестирования системной интеграции, включая функциональные и нефункциональные требования;
Критерии начала функционального тестирования:
Requirement Specification document определен и утвержден;
Подготовлены тест-кейсы;
Созданы тестовые данные;
Среда для тестирования готова, все необходимые инструменты доступны и готовы;
Всё или часть приложения разработано, модульно протестировано и готово к тестированию;
Критерии окончания функционального тестирования:
Выполнение всех функциональных тестов завершено;
Нет критических или открытых ошибок P1, P2;
Сообщенные ошибки были подтверждены;
Этапы функционального тестирования:
Самый первый шаг заключается в определении функциональности продукта, который необходимо протестировать, и он включает в себя тестирование основных функций, условий ошибок и сообщений, тестирование удобства использования, то есть, является ли продукт удобным для пользователя или нет, и т. д.
Следующим шагом является создание входных данных для проверяемой функциональности в соответствии со спецификацией требований.
Позже, из спецификации требований, определяется результат для тестируемой функциональности.
Подготовленные тест-кейсы исполняются.
Фактический результат, то есть результат после выполнения тест-кейса, и ожидаемый результат (определенный из спецификации требований) сравниваются, чтобы определить, работает ли функциональность должным образом или нет.
Источник: Complete Functional Testing Guide With Its Types And Example
Last updated