функциональное тестирование

Функциональное тестирование

Что же такое функциональное тестирование — процесс основанный на заранее известном (в некоторых случая предполагаемом) поведении пользователя, основанный в первую очередь на детальном анализе и изучении функциональной спецификации приложения, системы или небольшого модуля (компонента).

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

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

В другом случае тестирование основывается на знании бизнес-процессов. При таком функциональном тестировании тестировщика интересует в целом, может ли пользователь от начала до конца пройти весь бизнес сценарий. Тестовые случаи при таком тестировании называют юз-кейсами. Сценарии использования достаточно интересная отдельная тема.

Функциональное тестирование
Функциональное тестирование

Функциональное тестирование как правило может проводиться на всех уровнях тестирования (Уровни тестирования ПО).

Также такое тестирование достаточно часто попадает под разделения понятий (По признакам позитивности сценариев):

  • Позитивное
  • Негативное

Тут немного о нефункциональном тестировании.

Функциональное тестирование преимущества

  • Имитация реального пользователя, взгляд глазами этого пользователя;
  • При правильном подходе или множестве тестировщиков, большое покрытие разнообразными функциональными тестами;

Первое это то что бросается в глаза юным дарованиям по функциональному тестированию, и вполне понятно и доступно любому даже не посвященному человеку. Любой даже полностью не подготовленный человек может провести такой вид тестирования. А вот выбрать правильные тесты, определить достаточность тестирования, предусмотреть разнообразные варианты — это уже более сложна техника, требующая определенных навыков.

Всегда стоит помнить что протестировать всё и вся невозможно если учитывать реальные временные рамки проекта, с другой стороны провести качественно функциональное тестирование в сжатые сроки и есть проявление профессионализма.

функциональное тестирование

Недостатки

  • велика вероятность при проверки функциональности упустить различные логические ошибки в ПО;
  • вероятность избыточного тестирования.

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

Избыточность тестирования особенно актуальна на ранних этапах тестирования, избежать ее можно —  строгими требованиями, профессионализмом, четкой постановкой задач.

Разница между функциональным и нефункциональным тестированием

Функциональное тестирование сосредоточено на проверке соответствия программного обеспечения его функциональным требованиям. Это означает, что функциональное тестирование проверяет, работает ли программное обеспечение так, как оно должно работать согласно его спецификациям. Примером функционального тестирования может быть проверка правильности выполнения действий в приложении: открытие, создание, редактирование и сохранение файла.

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

Когда необходимо проводить функциональное тестирование

но необходимо на ранней стадии жизненного цикла разработки программного обеспечения, когда необходимо убедиться, что программное обеспечение соответствует функциональным требованиям и работает так, как задумано. Также функциональное тестирование может проводиться при каждом изменении кода программы для проверки того, что эти изменения не повлияли на ее функциональность.

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

Про все виды тестирования ПО

I believe in QA, все о тестировании