Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モデル検査という技術/2019-04-24-llt9

 モデル検査という技術/2019-04-24-llt9

社内のLTイベント「えるLT Vol.9」で発表した資料です

Satoshi SAKAO

April 24, 2019
Tweet

More Decks by Satoshi SAKAO

Other Decks in Technology

Transcript

  1. 話すひと H2 インフォコム株式会社 品質マネジメント推進室 " ソフトウェアエンジニア JS (ES6) / Node.js

    / GCP / IoT / iOS (Swift) フォーカスリーディング / 技術士試験の学習 Satoshi SAKAO @ottijp
  2. 具体例(仕様) • 仕様 • レベルが1ずつ上がる • レベルは10がMAX • テスト仕様 •

    レベルはいつか必ず10になる • レベルは決して11にはならない H7 Lv.10
  3. 具体例(SMVファイル) H8 MODULE main VAR level: 1..10; ASSIGN init(level) :=

    1; next(level) := level=10 ? 10 : level+1; LTLSPEC F (level=10); LTLSPEC F ! (level=11); 仕様のモデル化 検査式
  4. 具体例(実行: success) H9 $ NuSMV tweet-level.smv *** This is NuSMV

    2.6.0 (compiled on Wed Oct 14 15:31:33 2015) (...中略...) -- specification F level = 10 is true -- specification F !(level = 11) is true 検査式が満たされている
  5. 具体例(実行: failure) H10 $ NuSMV tweet-level.smv *** This is NuSMV

    2.6.0 (compiled on Wed Oct 14 15:31:33 2015) (...中略) -- specification F level = 10 is true -- specification F level = 11 is false -- as demonstrated by the following execution sequence Trace Description: LTL Counterexample Trace Type: Counterexample -> State: 1.1 <- level = 1 (..中略...) -> State: 1.9 <- level = 9 -- Loop starts here -> State: 1.10 <- level = 10 -> State: 1.11 <- 検査式が満たされない 反例 検査式を LTLSPEC F (level=11); (レベルはいつか必ず11になる) に変更して実行
  6. 参考 • システムの網羅的なテストができるモデル検査 実課題を扱ったモデル検 査のコンテスト「MoCCon」を振り返る (1/3):CodeZine(コードジン) • https://codezine.jp/article/detail/10164 • モデル検査とは •

    http://www.formaltech.co.jp/whatMC.pdf • NuSMVによるモデル検査入門 (1) ステートマシンを定義する - Qiita • https://qiita.com/shinsa82/items/cd4d95c616bf1da852ce • モデル検査入門 #wacate • https://www.slideshare.net/kjstylepp/ss-42413829 H19