Skip to content

Latest commit

 

History

History
48 lines (35 loc) · 7.45 KB

funkcionalnoe-testirovanie-functional-behavioral-testing.md

File metadata and controls

48 lines (35 loc) · 7.45 KB

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