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
AIベース静的検査器の偽陽性率を抑える工夫3選
Search
Kuniwak
PRO
April 24, 2026
Programming
510
4
Share
AIベース静的検査器の偽陽性率を抑える工夫3選
Lint Night #4
https://lintnight.connpass.com/event/385142/
Kuniwak
PRO
April 24, 2026
More Decks by Kuniwak
See All by Kuniwak
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
9
6.4k
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
31
16k
DeNA での思い出 / Memories at DeNA
orgachem
PRO
7
3.5k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
18
4.7k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
4
740
テストケースの名前はどうつけるべきか?
orgachem
PRO
2
880
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
21
5k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
240
HOME VR
orgachem
PRO
1
870
Other Decks in Programming
See All in Programming
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
6
1.3k
inferと仲良くなる10分間
ryokatsuse
1
370
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
1.4k
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
100
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
310
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.8k
Oxcを導入して開発体験が向上した話
yug1224
4
280
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
2.7k
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1.1k
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
110
RTSPクライアントを自作してみた話
simotin13
0
450
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
480
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
620
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
200
Claude Code のすすめ
schroneko
67
220k
WENDY [Excerpt]
tessaabrams
11
38k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
360
Between Models and Reality
mayunak
4
320
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
4 Signs Your Business is Dying
shpigford
187
22k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
160
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
,VOJXBL 1.0 BU$PJODIFDL *OD "*ϕʔε੩తݕࠪثͷِཅੑΛ͑Δબ
Kuniwak ʹίΠϯνΣοΫגࣜձࣾʹೖࣾɻ ࠷ॳ4&5͕ͩͬͨͣͳ͔ͥ 1SPKFDU.BOBHFNFOU0 ffi DFSʹɻ IUUQTHJUIVCDPN,VOJXBL IUUQTYDPNPSHB@DIFN
͍͑ͨ͜ͱ "*ϕʔεͷMJOUࣗવݴޠͷՌΛѻ͑Δ "*ϕʔεͷMJOUِཅੑ͕ߴ͘ͳΓ͕ͪ ωΨςΟϒϓϩϯϓτ ਂࠁᮢ੍ޚ ܗࣜԽUIJOLJOH ِ͕ཅੑΛ͘Ͱ͖Δͱ͍͏ऑ͍ݟΛಘΒΕͨ 1 2
3
-JOUͷ͜Ε·Ͱͱ͜Ε͔Β
͜ͷൃදͰɺ-JOUΛՌΛೖྗʹܽؕΛ ݕ͢Δπʔϧͱ͢Δɻయܕతͳ-JOU ࣮Λೖྗʹಈ࡞͢Δɻ࠷ۙઃఆϑΝΠϧ ༷ॻʹର͢Δ-JOU͕ొ͖͍ͯͯ͠Δɻ
-JOU͜Ε·Ͱϧʔϧϕʔεͩͬͨɻ ϧʔϧϕʔεܾఆతͳ݁ՌΛಘΒΕΔར͕ ͋Γɺ͔࣮ͭߦίετ͕ۃΊ͍ͯ҆ɻ ͨͩ͠ݕࠪର͕ܗࣜԽ͞Ε͍ͯΔඞཁ͕͋ͬͨɻ
-JOU͜Ε·Ͱϧʔϧϕʔεͩͬͨɻ ϧʔϧϕʔεܾఆతͳ݁ՌΛಘΒΕΔར͕ ͋Γɺ͔࣮ͭߦίετ͕ۃΊ͍ͯ҆ɻ ͨͩ͠ݕࠪର͕ܗࣜԽ͞Ε͍ͯΔඞཁ͕͋ͬͨɻ
ͨͱ༷͑ॻܗࣜԽ͞Ε͍ͯͳ͍͜ͱ͕ଟ͍͕ ੩తݕ͍ࠪͨ͠ͱ͍͏χʔζ͋Δɻ ༨ஊɿ%F/"࣌ʹը໘ৼΔ͍༷ͷϧʔϧ ϕʔεͷํ๏ͰҰఆͷՌΛڍ͛ͨɻ͜ͷͱ͖ จࣈྻͷ෦ҰகͰఆ͍ͯͨ͠ɻ IUUQTTXFUEFOBDPNFOUSZ
--.ͷོʹΑΓ"*ϕʔεͷMJOU͕ຽओԽ͞Εͨɻ ͜ΕʹΑΓݕࠪର͕ܗࣜԽ͞Ε͍ͯͳͯ͘Α͘ͳͬͨɻ ͨͩ͠"*ϕʔεγʔυΛݻఆ͠ͳ͍ݶΓ݁Ռ͕ ඇܾఆతʹͳΓɺ͔࣮ͭߦίετ͕͔ͳΓߴ͍ɻ ͨͱ͑"*ϕʔεͷ࣮Εɾ༷ΕΛݕ͢Δ τϨʔαϏϦςΟج൫ສԁTIPU͔͔Δɻ IUUQTTQFBLFSEFDLDPNPSHBDIFNJOUSPEVDUJPOUPBUSBDFBCJMJUZBJQMBUGPSN
Ҏ߱ͷͷલఏ
ࠓճͷൃදͷݩͱͳͬͨࣄྫͭɿ γʔέϯεਤʢ༷ॻʣΛରͱ͢ΔMJOU ςετέʔεΛରͱ͢ΔMJOU έʔε" έʔε#
ਫ਼ධՁํ๏ શʢ/ʣʹ͍ͭͯ"*ධՁWTਓؒͷධՁͰ࣮ࢪ গͷαϯϓϧʢ/ʣʹ͍ͭͯํࣜʹ͍ͭͯ "*ධՁWTਓؒͷධՁͰ࣮ࢪ έʔε" έʔε# ͍ͣΕ࠶ࢼݧ࣮ࢪ͍ͯ͠ͳ͍ɻͦͷͨΊ͍ͣΕ࠶ݱੑ͕ ߴ͍͔Ͳ͏͔Θ͔Βͳ͍ɻࢼٻΉʂ ࢼ༻ϓϩϯϓτશจIUUQTHJTUHJUIVCVTFSDPOUFOUDPNDDLVOJXBL
EEGDEEFEEB
"*ϕʔεͷMJOUͷ
ِཅੑ
"*ϕʔεͷMJOUِཅੑ͕ߴِ͘ӄੑ͕͍ɻ ِӄੑΛ͘อͬͨ··ِཅੑΛ͍ͨ͘͠ɻ ِཅੑ͕ߴ͍ঢ়گ͕͘ଓ͘ͱগޮՌʹΑΓ MJOU͕৴༻͞Εͳ͘ͳΓMJOUͷഉআʹͭͳ͕ͬͯ͠·͏ɻ
༷ΛγʔέϯεਤͰදݱͨ͠έʔε"Ͱࢦఠͨ͠ ܽؕͷ͓Αِ͕ͦཅੑͩͬͨɻ ਓؒʹΑΔେ෯ͳख͕͠ඞཁͰେมͩͬͨɻ έʔε"
ِཅੑΛ͘͢ΔͨΊͷํ๏
ωΨςΟϒϓϩϯϓτ ਂࠁͰᮢ੍ޚ ܗࣜԽUIJOLJOH 1 2 3
ωΨςΟϒϓϩϯϓτ ਂࠁͰᮢ੍ޚ ܗࣜԽUIJOLJOH 1 2 3
ʮ999ܽؕͰͳ͍ͱ͢ΔʯͷΑ͏ʹܽؕͷ ఆٛΛڱΊΔจݴΛϓϩϯϓτʹՃ͑Δํ๏ɻ ςετέʔεΛݕࠪରͱͨ͠έʔε#Ͱ ͜ͷํ๏Ͱِཅੑˠ·ͰԼ͕ͬͨɻ
画面の期待画像は別途与えられているので「表示崩れがないこと」 「異常なく表示されること」「期待通りに表示されること」から表示崩 れイベントは十分特定可能とします。 操作手順や判断結果を 1 つに絞り込めなくとも、その差異がユーザ ーにとって重要でなければ許容してください。 1SPN QU
ਖ਼ղ ِӄੑ ِཅੑ ωΨςΟϒ ϓϩϯϓτͳ͠ 70% 0% 100% ωΨςΟϒ
ϓϩϯϓτ͋Γ 60% 29% 67% վળ
੩తݕࠪث։ൃͷॳظগͷαϯϓϧͰ ࣮ߦΛ܁Γฦ͠ɺωΨςΟϒϓϩϯϓτΛ ચ͍ग़͍ͯ͘͠ͱΑ͍ɻ
͜ͷΑ͏ͳαΠΫϧʹMMNίϚϯυͱ TIVGίϚϯυཱ͕ͭɻ MMNίϚϯυҎԼͷΑ͏ʹ͑Δɿ QSPNQUHFOcMMNNMMNNPEFM TIVGίϚϯυඪ४ೖྗ͔ΒٙࣅཚͰ ߦΛൈ͖ग़͢ίϚϯυɻ IUUQTHJUIVCDPNTJNPOXMMN
͜Μͳײ͡ͰదͳߦΛධՁ͠ͳ͕ΒࢼߦࡨޡͰ͖Δɿ fi OEUBSHFUa cTIVGOa cUFFEFWTUEFSSa cYBSHTOQSPNQUHFOa cMMNNHQUTDIFNBTDIFNBKTPOa cKR
ωΨςΟϒϓϩϯϓτ ਂࠁͰᮢ੍ޚ ܗࣜԽUIJOLJOH 1 2 3
"*ʹਂࠁΛஅͤ͞ɺᮢΛઃఆ͢Δํ๏ɻ ςετέʔεΛରͱ͠ɺਂࠁΛஈ֊Ͱ"*ʹ ධՁͤͨ͞έʔε#Ͱɺ"*WTਓؒͷਂࠁ ૬ؔɺਖ਼ղɺޡࠩʶਖ਼ղɻ
"s e v e r i t y ": {
"t y p e ": "n u m b e r ", "d e s c r i p t i o n ": " 違反の深刻度。 1 : 低(誤解する可能性が 少ない) , 2 : 中(誤解する可能性がある) , 3 : 高(誤解する可能性 が高い) ", "m i n i m u m ": 1 , "m a x i m u m ": 3 , "m u l t i p l e O f ": 1 } +40 / 4DIFN B
"*aਖ਼ղ ܯࠂͳ͠ த ߴ ܯࠂͳ͠
த ߴ ߴͷΈʹߜΔͱ ޡܯࠂݮΒͳ͍͕ ॏཁͰͳ͍ܯࠂ͕ ݮΔ
ωΨςΟϒϓϩϯϓτ ਂࠁͰᮢ੍ޚ ܗࣜԽUIJOLJOH 1 2 3
ݕࠪରΛҰܗࣜԽ͔ͤͯ͞ΒɺܗࣜԽͨ͠ରʹ ͍ͭͯ൷ධͤ͞Δํ๏ɻ έʔε#Ͱ$41ͷ҆ఆࣦഊϞσϧʹ͓͚Δѱ͍ τϨʔεͱѱ͍ࣦഊͷαϯϓϧΛςετέʔεͱ ͍ͯ͠Δʢৄ͘͠ผࢿྉΛࢀরʣɻ IUUQTTQFBLFSEFDLDPNPSHBDIFNHVJEFMJOFTGPSSFRVJSFNFOUT EF fi OJUJPOTQFDJ
fi DBUJPOXSJUJOHEFTJHOBOEWFSJ fi DBUJPO
ࣗવݴޠจॻ ܗࣜతσʔλ ܗࣜతҧઆ໌ қ͍͠ҧઆ໌ --.ྖҬ ϢʔβʔྖҬ ܗࣜԽ ݕࠪ טΈࡅ͘
ςετέʔεΛݕࠪରͱͨ͠έʔε#Ͱɺ ܗࣜԽ͠ͳ͍ͷͱܗࣜԽ͢ΔͷΛൺֱ͢Δͱ ِཅੑWTͱͳͬͨɻ
次のテストケースの定義に当てはめて形式化したうえで、形式化されたモデルについて 違反事項を指摘してください。以降は C S P の安定失敗モデルに立脚します。テストは 正当性条件である、 実装の失敗集合 ⊆ 仕様の失敗集合
∧ 実装のトレース集合 ⊆ 仕様のトレース集合 を満たすことをサンプリングで検証します。テストケースはこのサンプルで、悪い失敗の 集合または悪いトレースの集合またはその組です。これは正当性条件と同値な命題である、 ( ∀ x . x ∉ 仕様の失敗集合 ⟶ x ∉ 実装の失敗集合 ) ∧ ( ∀ x . x ∉ 仕様のトレース集合 ⟶ x ∉ 実装のトレース集合 ) の全称命題のサンプルからなる集合ということです。 1SPN QU
指摘内容は C S P を知らない人にも伝わるよう、失敗やトレースといった 言葉を別の一般的な平易な言葉で言い換えてください。 1SPN QU
ܗࣜԽUIJOLJOHͷϓϩϯϓτશจɿ IUUQTHJTUHJUIVCVTFSDPOUFOUDPNDDLVOJXBL EEGDEEFEEB
ਖ਼ղ ِӄੑ ِཅੑ ܗࣜԽ͠ͳ͍ͷ 60% 29% 67% ܗࣜԽͨ͠ͷ 90%
0% 30% վળ
·ͱΊ "*ϕʔεͷMJOUࣗવݴޠͷՌΛѻ͑Δ "*ϕʔεͷMJOUِཅੑ͕ߴ͘ͳΓ͕ͪ ωΨςΟϒϓϩϯϓτ ਂࠁᮢ੍ޚ ܗࣜԽUIJOLJOH ِ͕ཅੑΛ͘Ͱ͖Δͱ͍͏ऑ͍ݟΛಘΒΕͨ 1 2
3