Formal Verification
形式検証(Formal Verification)は数学的手法を用いて、プログラムが仕様を満たすことを証明する手法であり、テストよりも強い正しさの保証を提供する。
目的
安全性が重要なシステムに対して数学的な正しさの証明を与え、特定の欠陥クラス全体を排除する。
メカニズム
手法には定理証明(Coq/Isabelle)、モデル検査、抽象解釈がある。事前条件・事後条件・不変条件といった形式仕様を必要とし、プログラムが仕様を満たすことを証明する。コストは高いが、航空宇宙、カーネル、暗号の分野で使用される。
ユースケース
- 安全性が重要なソフトウェア
- カーネルの検証
- 暗号プロトコルの証明