Найти тему
Будни тестировщика

Функциональное против нефункционального.

Функциональные требования определяют, что система должна делать; нефункциональные требования определяют, какой система должна быть.

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

1. Система должна показывать сообщение "Пользователь не найден", если пользователь попытается авторизоваться и введенное имя пользователя не существует в системе.

2. После извлечения записи из базы данных, если какое-то из полей неправильное, система должна возвращать строку "Неверное значение" для этого поля.

3. После запуска система должна отобразить сообщение "ДОБРО ПОЖАЛОВАТЬ В СИСТЕМУ" в пользовательской консоли.

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

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

1. Система должна использоваться опытным пользователем компьютера после не более 3-часового обучения.

2. Система должна быть способной работать с одной сотней пользователей одновременно.

3. Система должна быть надежной с временем непредвиденного простоя меньше 1 часа в месяц.

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

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