@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/2026/03/11/003-application-verifier-abnormal-test-foundation-part2/#article>
    schema:about <https://comcomponent.com/knowledge/application-verifier/>, <https://comcomponent.com/knowledge/abnormal-path-testing/> ;
    schema:mentions <https://comcomponent.com/knowledge/fault-injection/>, <https://comcomponent.com/knowledge/low-resource-simulation/>, <https://comcomponent.com/knowledge/invalid-handle/>, <https://comcomponent.com/knowledge/handle-tracing/>, <https://comcomponent.com/knowledge/heap-corruption/>, <https://comcomponent.com/knowledge/page-heap/>, <https://comcomponent.com/knowledge/verifier-stop/>, <https://comcomponent.com/knowledge/harness-exe-pattern/>, <https://comcomponent.com/knowledge/windbg/>, <https://comcomponent.com/knowledge/handle-leak/>, <https://comcomponent.com/knowledge/avrf-command/> .

<https://comcomponent.com/knowledge/application-verifier/> a skos:Concept ;
    skos:prefLabel "Application Verifier"@ja ;
    skos:definition "Windowsのuser-modeアプリに対するランタイム検証ツールで、OS API利用や資源の扱い方を監視し誤用の検出や意図的な失敗の注入を行う。"@ja ;
    skos:altLabel "AppVerifier" ;
    skos:altLabel "appverif.exe" ;
    ks:uses <https://comcomponent.com/knowledge/fault-injection/> ;
    ks:uses <https://comcomponent.com/knowledge/low-resource-simulation/> ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/handle-leak/> .

<https://comcomponent.com/knowledge/abnormal-path-testing/> a skos:Concept ;
    skos:prefLabel "異常系テスト"@ja ;
    skos:definition "低リソース時やAPI失敗時など、普段の機能テストでは通らないfailure pathを意図的に踏ませて検証するテストの取り組みである。"@ja ;
    skos:altLabel "Abnormal Path Testing" ;
    skos:altLabel "異常系テスト基盤"@ja .

<https://comcomponent.com/knowledge/fault-injection/> a skos:Concept ;
    skos:prefLabel "フォールトインジェクション(fault injection)"@ja ;
    skos:definition "対象のAPI呼び出しを一定確率でわざと失敗させ、低リソース時などに起きる代表的な失敗を人工的に再現する手法である。"@ja ;
    skos:altLabel "Fault Injection" .

<https://comcomponent.com/knowledge/low-resource-simulation/> a skos:Concept ;
    skos:prefLabel "Low Resource Simulation"@ja ;
    skos:definition "HeapAlloc・CreateFile・CreateEventなどのAPI呼び出しを設定した確率で失敗させる、Application Verifierのfault injection機能である。"@ja ;
    skos:altLabel "低リソースシミュレーション"@ja ;
    skos:broader <https://comcomponent.com/knowledge/fault-injection/> ;
    ks:uses <https://comcomponent.com/knowledge/fault-injection/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/application-verifier/> .

<https://comcomponent.com/knowledge/handle-tracing/> a skos:Concept ;
    skos:prefLabel "ハンドルトレーシング(handle tracing)"@ja ;
    skos:definition "ハンドルのopen・close・不正参照の履歴をスタック付きで記録する、Application VerifierのHandlesチェックが有効な際に自動で有効になる機能である。"@ja ;
    skos:altLabel "Handle Tracing" ;
    skos:broader <https://comcomponent.com/knowledge/application-verifier/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/windbg/> .

<https://comcomponent.com/knowledge/windbg/> a skos:Concept ;
    skos:prefLabel "WinDbg"@ja ;
    skos:definition "クラッシュダンプやハングしたプロセスの状態をカーネル/ユーザーモードで解析するためのMicrosoft製デバッガー。SOS拡張によるマネージドヒープ解析や、Application Verifierの検出結果の解析にも使われる。"@ja ;
    skos:altLabel "Debugging Tools for Windows" .

<https://comcomponent.com/knowledge/invalid-handle/> a skos:Concept ;
    skos:prefLabel "無効なハンドルの使用(invalid handle)"@ja ;
    skos:definition "close済みハンドルの再使用や壊れたハンドル値の使用など、無効なハンドルを参照する誤用である。"@ja ;
    skos:altLabel "Invalid Handle Use" ;
    ks:verifiedBy <https://comcomponent.com/knowledge/application-verifier/> ;
    ks:mayCause <https://comcomponent.com/knowledge/verifier-stop/> .

<https://comcomponent.com/knowledge/heap-corruption/> a skos:Concept ;
    skos:prefLabel "ヒープ破壊(heap corruption)"@ja ;
    skos:definition "バッファ超過やuse-after-freeなどによってヒープの内部構造が壊れる現象である。"@ja ;
    skos:altLabel "Heap Corruption" ;
    ks:verifiedBy <https://comcomponent.com/knowledge/application-verifier/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/page-heap/> ;
    ks:mayCause <https://comcomponent.com/knowledge/verifier-stop/> .

<https://comcomponent.com/knowledge/page-heap/> a skos:Concept ;
    skos:prefLabel "ページヒープ(page heap)"@ja ;
    skos:definition "確保のたびにguard pageを使い、ヒープが壊れた瞬間にアクセス違反として検出しやすくする、Application Verifierのヒープ検証機能である。"@ja ;
    skos:altLabel "Full Page Heap" ;
    skos:altLabel "Light Page Heap" ;
    skos:broader <https://comcomponent.com/knowledge/application-verifier/> .

<https://comcomponent.com/knowledge/verifier-stop/> a skos:Concept ;
    skos:prefLabel "verifier stop"@ja ;
    skos:definition "Application Verifierが誤った使い方を検出したときに出す検出イベントで、番号が振られ、デバッガー下ではその場でブレークする。"@ja ;
    skos:altLabel "Application Verifier Stop" ;
    skos:broader <https://comcomponent.com/knowledge/application-verifier/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/avrf-command/> .

<https://comcomponent.com/knowledge/avrf-command/> a skos:Concept ;
    skos:prefLabel "!avrf(WinDbg拡張コマンド)"@ja ;
    skos:definition "現在のApplication Verifier設定や、いま起きているverifier stopをデバッガー上で確認するコマンドである。"@ja ;
    skos:altLabel "!avrf" ;
    skos:broader <https://comcomponent.com/knowledge/windbg/> .

<https://comcomponent.com/knowledge/harness-exe-pattern/> a skos:Concept ;
    skos:prefLabel "harness EXEパターン"@ja ;
    skos:definition "本番アプリ本体ではなく、対象DLLを実際に動かすテスト専用のEXEに対してApplication Verifierを有効化する運用パターンである。"@ja ;
    skos:altLabel "テスト用harness EXE"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/application-verifier/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/abnormal-path-testing/> .

<https://comcomponent.com/knowledge/handle-leak/> a skos:Concept ;
    skos:prefLabel "ハンドルリーク"@ja ;
    skos:definition "参照カウントやハンドルカウントの数え違いなどにより、不要になったハンドル(ファイル・イベント・スレッド・GDIオブジェクト・アクセストークンなどカーネルオブジェクトへの参照)が解放されずに積み上がっていく状態。"@ja ;
    skos:altLabel "Handle Leak" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/abnormal-path-testing/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/application-verifier/> ;
    schema:description "Windowsのネイティブ/Win32境界を対象にする本記事の異常系テスト基盤はApplication Verifierを検証ツールとして使い、通常系runとfault injection runを分けて回す"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-testing-applications> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/application-verifier/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/fault-injection/> ;
    schema:description "Application Verifierは意図的にAPI呼び出しを失敗させるfault injectionによって、普段は見えないfailure pathを表面化させる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-features> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/low-resource-simulation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/fault-injection/> ;
    schema:description "Low Resource SimulationはHeapAlloc・CreateFileなどのAPI呼び出しを一定確率で失敗させるfault injectionの実装である"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-features> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/application-verifier/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/low-resource-simulation/> ;
    schema:description "Application Verifierは本当にメモリを食い尽くさなくても資源不足に近い現象を起こせるLow Resource Simulationを備える"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-features> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/application-verifier/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/handle-tracing/> ;
    schema:description "Handlesチェックを有効にすると、Application Verifierはhandle tracingを自動的に有効にする"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/-htrace> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/handle-tracing/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/windbg/> ;
    schema:description "handle tracingの記録は、WinDbgの!htraceコマンドでopen/close/不正参照のスタックとして確認できる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/-htrace> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/invalid-handle/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/application-verifier/> ;
    schema:description "無効なハンドルの使用は、Application VerifierのHandlesチェックで検出できる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-tests-within-application-verifier> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/heap-corruption/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/application-verifier/> ;
    schema:description "ヒープ破壊は、Application VerifierのHeapsチェックで顕在化させて検出できる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-tests-within-application-verifier> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/heap-corruption/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/page-heap/> ;
    schema:description "壊れた瞬間にguard pageで止められるpage heapを使うと、ヒープ破壊をその場で検出しやすくなる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-features> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/verifier-stop/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/avrf-command/> ;
    schema:description "いま何が有効で、どのverifier stopが起きているかは!avrfコマンドで確認できる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/-avrf> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/invalid-handle/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/verifier-stop/> ;
    schema:description "invalid handleの使用をApplication Verifierが検出すると、verifier stopが発生する"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-debugging-application-verifier-stops> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/heap-corruption/> ;
    rdf:predicate ks:mayCause ;
    rdf:object <https://comcomponent.com/knowledge/verifier-stop/> ;
    schema:description "heap corruptionをApplication Verifierが検出すると、verifier stopが発生する"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-debugging-application-verifier-stops> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/harness-exe-pattern/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/application-verifier/> ;
    schema:description "Application Verifierは動いている最中のプロセスに後から有効化できないため、専用のharness EXEに対して設定する運用が推奨される"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-testing-applications> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/application-verifier/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/handle-leak/> ;
    schema:description "長時間常駐するEXEのハンドルリーク調査をApplication Verifierだけに丸投げするのは現実的でなく、自前ログとの組み合わせが必要である"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-testing-applications> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/avrf-command/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/windbg/> ;
    schema:description "!avrfはデバッガー拡張コマンドで、WinDbgのほかCDBやNTSDなど拡張をホストできるWindowsのデバッガーでも実行できる。本記事はWinDbgでの実行を前提に説明している。"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/debuggercmds/-avrf> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/low-resource-simulation/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/application-verifier/> ;
    schema:description "Low Resource Simulationは、appverifのコマンドラインまたはappverif.exeのGUIで、失敗させるAPIの種類ごとに確率を指定して構成する"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/harness-exe-pattern/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/abnormal-path-testing/> ;
    schema:description "異常系テスト基盤では、1シナリオ1プロセスのharness EXEで通常系runとfault injection runを分けて回す設計が推奨される"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/application-verifier-testing-applications> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
