Функциональные требования определяют, что система должна делать; нефункциональные требования определяют, какой система должна быть. Требования, которые мы обсуждали ранее, являлись функциональными, т. е. они говорили, что система должна выполнять конкретное действие при определенных условиях. Например: 1. Система должна показывать сообщение "Пользователь не найден", если пользователь попытается авторизоваться и введенное имя пользователя не существует в системе. 2. После извлечения записи из базы данных, если какое-то из полей неправильное, система должна возвращать строку "Неверное значение" для этого поля. 3. После запуска система должна отобразить сообщение "ДОБРО ПОЖАЛОВАТЬ В СИСТЕМУ" в пользовательской консоли. Функциональные требования являются (относительно) простыми для тестирования; они говорят, что определенное поведение должно происходить при заданных условиях. Очевидно, будут какие-то сложности и вариации при тестировании некоторых требований, но общая идея очевидна. Наприм