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
500
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.3k
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
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
730
テストケースの名前はどうつけるべきか?
orgachem
PRO
2
860
欠陥を早期に発見するための 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
バックエンドにElysiaJSを採用して気付いた、良い点・悪い点
wanko_it
1
190
JavaDoc 再入門
nagise
0
190
初めてのRubyKaigiはこう見えた
jellyfish700
0
290
Sans tests, vos agents ne sont pas fiables
nabondance
0
170
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.1k
次世代リンターで探る、tsgo 時代における型認識カスタムルールの現実解
ytakahashii
3
1.3k
GitHub Copilot CLIのいいところ
htkym
2
1.2k
AI駆動開発勉強会 広島支部 第一回勉強会 AI駆動開発概要とワークショップ
hayatoshimiu
0
400
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
1.6k
Transactional Change Stream Processing With Debezium and Apache Flink
gunnarmorling
1
140
Skillは並べた。動かなかった。契約で繋いだ。— 65個のSkillから、自走する開発サイクルへ
junholee
0
780
デフォルト運用のCodeRabbit、1年で何が変わったか / How CodeRabbit Changed Our Code Review in 1 Year
bake0937
1
110
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
The agentic SEO stack - context over prompts
schlessera
0
790
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
200
Design in an AI World
tapps
1
220
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
580
Music & Morning Musume
bryan
47
7.2k
Statistics for Hackers
jakevdp
799
230k
Six Lessons from altMBA
skipperchong
29
4.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.5k
Embracing the Ebb and Flow
colly
88
5.1k
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