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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kuniwak
PRO
April 24, 2026
Programming
2.8k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
16
11k
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
38
23k
DeNA での思い出 / Memories at DeNA
orgachem
PRO
8
3.7k
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
18
4.8k
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
4
780
テストケースの名前はどうつけるべきか?
orgachem
PRO
2
950
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
22
5k
住宅を WebXR で評価しよう / Evaluating My Home by WebXR
orgachem
PRO
0
250
HOME VR
orgachem
PRO
1
880
Other Decks in Programming
See All in Programming
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
560
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
930
Build-to-own AI: Agentic Development for Humans
inesmontani
PRO
0
160
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
4.3k
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
200
AIが無かった頃の素敵な出会いの話
codmoninc
1
340
Foundation Models frameworkで画像分析
ryodeveloper
1
320
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
130
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
610
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
250
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.4k
継続モナドとリアクティブプログラミング
yukikurage
3
670
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
460
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
A Soul's Torment
seathinner
6
3.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
470
Paper Plane (Part 1)
katiecoart
PRO
1
10k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
420
The Language of Interfaces
destraynor
162
27k
RailsConf 2023
tenderlove
30
1.5k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
310
The SEO identity crisis: Don't let AI make you average
varn
0
520
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
920
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