Функциональное тестирование (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