Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
モデル検査という技術/2019-04-24-llt9
Search
Satoshi SAKAO
April 24, 2019
Technology
1
140
モデル検査という技術/2019-04-24-llt9
社内のLTイベント「えるLT Vol.9」で発表した資料です
Satoshi SAKAO
April 24, 2019
Tweet
Share
More Decks by Satoshi SAKAO
See All by Satoshi SAKAO
Testcontainers/2024-11-20-llt32
ottijp
0
80
Pkl/2024-04-17-llt31
ottijp
0
110
JavaScriptのデバッグ/2023-09-04-llt30
ottijp
0
180
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-llt29
ottijp
1
310
TWELITEへの誘い/2022-12-27-llt28
ottijp
0
180
ビルドツールBazelを触ってみた/2022-09-28-llt27
ottijp
0
200
HashiCorp Vaultを使ったシークレットのセキュアな一元管理 〜Ansibleを添えて〜/2022-07-12-llt26
ottijp
0
170
AWSインフラのデプロイをCDKでカイゼンする/2022-03-23-llt25
ottijp
0
110
Amazon Timestreamでデータ補間/2021-12-27-llt24
ottijp
0
120
Other Decks in Technology
See All in Technology
マネージャー版 "提案のレベル" を上げる
konifar
22
15k
EMからVPoEを経てCTOへ:マネジメントキャリアパスにおける葛藤と成長
kakehashi
PRO
9
1.7k
マルチプレーンGPUネットワークを実現するシャッフルアーキテクチャの整理と考察
markunet
2
230
Kubernetesにおける推論基盤
ry
1
310
非情報系研究者へ送る Transformer入門
rishiyama
11
7.1k
Claude Code 2026年 最新アップデート
oikon48
10
7.9k
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
3
640
製造業ドメインにおける LLMプロダクト構築: 複雑な文脈へのアプローチ
caddi_eng
1
550
AI時代のSaaSとETL
shoe116
1
110
トップマネジメントとコンピテンシーから考えるエンジニアリングマネジメント
zigorou
4
840
AIエージェント、 社内展開の前に知っておきたいこと
oracle4engineer
PRO
2
100
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
5
1.1k
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Code Review Best Practice
trishagee
74
20k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
270
Bash Introduction
62gerente
615
210k
Fireside Chat
paigeccino
42
3.8k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Color Theory Basics | Prateek | Gurzu
gurzu
0
240
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.4k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Transcript
モデル検査という技術 Satoshi SAKAO えるLT Vol.9 2019/04/24 (Wed) H1
話すひと H2 インフォコム株式会社 品質マネジメント推進室 " ソフトウェアエンジニア JS (ES6) / Node.js
/ GCP / IoT / iOS (Swift) フォーカスリーディング / 技術士試験の学習 Satoshi SAKAO @ottijp
話すこと • モデル検査とはなにか • 具体例 • 特徴,適用領域,課題 H3
H4 モデル検査 %
モデル検査とはなにか • 仕様や設計が正しいことを検査する自動化技術 • 形式システムの時相論理の検査を行う手法 • 「いつも,そのうち,まで」などを表す論理式で評価する • 状態遷移や相互作用などの評価を行う H5
どのように実施するか H6 仕様書 設計書 ソースコード 要求仕様書 テスト仕様書 ソースコード SMVファイル モデル定義
検査式 (時相論理式) モデル検査ツール Success or Failure
具体例(仕様) • 仕様 • レベルが1ずつ上がる • レベルは10がMAX • テスト仕様 •
レベルはいつか必ず10になる • レベルは決して11にはならない H7 Lv.10
具体例(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); 仕様のモデル化 検査式
具体例(実行: 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 検査式が満たされている
具体例(実行: 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になる) に変更して実行
H11 特徴,適用領域,課題
特徴 • ツールによる自動化で,例外的な状態や状態遷移パスを 網羅的に検査できるため,品質向上が期待できる • 反例の出力により問題の特定が容易 • 動的なテストに比べ厳密で網羅的であるが, 難易度(学習コスト)は高く検査対象は小規模である H12
手作業での検査が困難だったり, ミッションクリティカルな領域への利用が考えられる
適用領域の例 • マルチスレッドにおける実行パターンの検査 • 複数スレッドが同時にクリティカルセクションに入らないこと • プログラムがデッドロックに陥らないこと • ハンドシェイクプロトコルが必ず終了すること •
微妙なタイミングや複雑な状態遷移による不具合 H13
課題(状態爆発) • 状態やイベントが多いと組み合わせが膨大になる • 巨大な状態空間を持つシステムでは, 現実的な計算量での検査が不可能 • どうするか • 絞り込みや抽象化により,モデルを極力小さくする
• サブシステム単位にモデル化する H14
課題(形式化による弊害) • 設計や実装を忠実に再現したモデル化が困難 • 例えばアナログ(連続)値のモデル化 • どうするか • 再現性を考慮したモデルの抽象化や絞り込み •
トライ&エラーでモデルを洗練させる H15
話したこと • モデル検査とはなにか • 具体例 • 特徴,適用領域,課題 H16
$ exit H17
H18 Appendix
参考 • システムの網羅的なテストができるモデル検査 実課題を扱ったモデル検 査のコンテスト「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