Тестирование также должно гарантировать, что создано программное обеспечение требуемого качества. Представьте себе такой разговор между менеджером проекта и пользователем. Менеджер проекта: "Я прошелся по всему проекту. Криптографический движок просто пуленепробиваемый, рекордно быстрый и использует 8192-битное кодирование — ваши секреты будут в безопасности триллион лет". Пользователь: "На самом деле, я всего лишь хотел поиграть в пасьянс..." Можно ли сказать, что программа удовлетворяет требованиям пользователя? Конечно, нет. Даже если программа удовлетворяет всем предъявляемым к программам требованиям, не падает, дает правильные ответы и т. д., но при этом не отвечает ожиданиям пользователя, она не будет успешной. Это иллюстрирует разницу между верификацией и валидацией. Верификация гарантирует, что вы создаете программу правильно; валидация гарантирует, что вы создаете правильную программу. Другими словами, верификация гарантирует, что система не ломается, она отвечает необходимым