Заявления о соответствии
Матрица ниже строится из типизированной базы источников. Прежде чем читать её, стоит знать, откуда берутся свидетельства, на которые она опирается: заявление о соответствии стоит ровно столько, сколько стоит его подтверждение.
Проверка поведения, а не кода
Модульные тесты сверяют код с представлением разработчика о коде: их пишет тот же человек и в том же понимании, поэтому согласованное заблуждение они пропускают. Аппарат верификации платформы сверяет поведение с эталонными записями, несущими утверждённую разметку: та же запись, то же ожидаемое заключение, та же версия. Эталон приходит извне кода и извне того, кто код писал.
Издатель эталона и его потребитель разведены намеренно: клинический корпус выдаёт эталонные записи, аппарат верификации их прогоняет. Система, сама сочиняющая эталон, по которому себя проверяет, проверяет согласованность с собой, а не соответствие.
Свидетельство — файл, а не отметка
Проверка отвечает не строкой в консоли и не зелёной галочкой в интерфейсе, а файлом: приёмной квитанцией прогона и свидетельствами по каждому проверяемому направлению. Разница практическая — вывод на экран исчезает вместе с сеансом, а файл-свидетельство можно процитировать, сверить версию и предъявить третьей стороне, не имеющей привилегированного доступа к разработчику.
Целостность и адекватность — разные утверждения
Различение, которое отрасль постоянно смешивает:
- подпись и журнал доказывают целостность — что именно исполняется и откуда оно взялось;
- адекватность — правильно ли оно — доказывается отдельно: воспроизводимыми свидетельствами и человеческим рассмотрением.
Подписанный артефакт может быть подписанной ошибкой. Система, предъявляющая подпись как доказательство правильности, вводит в заблуждение — и матрица ниже утверждает первое, а не второе.