タグ

tla+に関するigrepのブックマーク (2)

  • 実装コードから仕様を吸い出して Z3 / TLA+ でバグを払い出す — 実践プレイブック

    formal-methods-playbook.md 実装コードから仕様を吸い出して Z3 / TLA+ でバグを払い出す — 実践プレイブック 既存システムの実装を「事実上の仕様」とみなし、それを形式化することで 「テストでは踏めないバグ」と「実装が暗黙に決めている仕様」を炙り出すための手順書。 仕様書が無い / あてにならない / 仕様と実装がずれている、という現場を前提にする。 0. 基姿勢: コードが de-facto 仕様である 仕様書ではなく 実装が現に何をしているか を仕様の源にする。やることは3段: 吸い出し (extract): コードから「実装が主張している仕様」と「暗黙に決めている挙動」を分けて抜く 形式化して反例探索 (refute): 主張をモデル化し、それが全入力/全順序で当に成り立つかを機械に攻撃させる 突き合わせ (reconcile): 出た反例を「こ

    実装コードから仕様を吸い出して Z3 / TLA+ でバグを払い出す — 実践プレイブック
  • AWSにおける形式手法 - masateruk’s blog

    AWSにおける形式手法の記事(https://lamport.azurewebsites.net/tla/formal-methods-amazon.pdf)を読んだ。特に重要だと思われる示唆を3つあげると以下の通り。 産業界では長年形式手法は多大な工数をかけて比較的容易なコードの断片を検証するというイメージがあったが、これはまったくの誤り。現実の問題に適用可能である アマゾンでは10の現実のシステムに適用して、すべてで効果が得られた。難解なバグの発見したり、正当性を犠牲にすることなく確信を持って最適化を施せた 7つのチームでTLA+を使用。エンジニアは2−3週間で学習することができる 以下は、読んでいる途中で書きだした要点。 AWSでは2011年以降形式仕様とモデル検査を使用している 複雑な分散システムを検証するにあたって、従来の手法 ― 設計レビュー、コードレビュー、静的解析、ストレス

    AWSにおける形式手法 - masateruk’s blog
    igrep
    igrep 2018/10/25
    “TLA+ではシステムが持つべき特性と設計を同じ言語でかける。あらゆる抽象度で記述できて、検証は数学を使って推論してもいいし、モデル検査で検査してもいい”
  • 1