@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/property-based-testing-fscheck/#article>
    schema:about <https://comcomponent.com/knowledge/property-based-testing/>, <https://comcomponent.com/knowledge/fscheck/> ;
    schema:mentions <https://comcomponent.com/knowledge/quickcheck/>, <https://comcomponent.com/knowledge/test-oracle/>, <https://comcomponent.com/knowledge/shrinking/>, <https://comcomponent.com/knowledge/fscheck-arbitrary/> .

<https://comcomponent.com/knowledge/property-based-testing/> a skos:Concept ;
    skos:prefLabel "プロパティベーステスト"@ja ;
    skos:definition "入力と期待値の組を並べる代わりに、どの入力でも成り立つはずの性質(プロパティ)を書き、その性質をツールが自動で作った多数の入力で確かめるテストの方法。"@ja ;
    skos:altLabel "Property-Based Testing" ;
    skos:altLabel "PBT" ;
    ks:requires <https://comcomponent.com/knowledge/test-oracle/> .

<https://comcomponent.com/knowledge/fscheck/> a skos:Concept ;
    skos:prefLabel "FsCheck"@ja ;
    skos:definition ".NET向けのプロパティベーステストのライブラリ。F#・C#・VBで書いた性質を、ランダムに作った多数の入力で確かめ、失敗したときは最小の反例を表示する。xUnit向けの統合パッケージとしてFsCheck.XunitとFsCheck.Xunit.v3がある。"@ja ;
    skos:altLabel "FsCheck.Xunit" ;
    ks:implements <https://comcomponent.com/knowledge/property-based-testing/> ;
    ks:uses <https://comcomponent.com/knowledge/shrinking/> ;
    ks:uses <https://comcomponent.com/knowledge/fscheck-arbitrary/> .

<https://comcomponent.com/knowledge/quickcheck/> a skos:Concept ;
    skos:prefLabel "QuickCheck"@ja ;
    skos:definition "Koen ClaessenとJohn Hughesが2000年の論文で示したHaskell向けのテストツール。関数の性質を書き、ランダムに作った入力で自動的に確かめる。"@ja ;
    skos:altLabel "Haskell QuickCheck" ;
    ks:implements <https://comcomponent.com/knowledge/property-based-testing/> .

<https://comcomponent.com/knowledge/test-oracle/> a skos:Concept ;
    skos:prefLabel "テストオラクル"@ja ;
    skos:definition "テスト対象のシステムの正しい振る舞いと誤った振る舞いを区別する手順。与えた入力に対する結果が正しいかを判定する拠りどころになる。"@ja ;
    skos:altLabel "Test Oracle" ;
    skos:altLabel "オラクル"@ja .

<https://comcomponent.com/knowledge/shrinking/> a skos:Concept ;
    skos:prefLabel "シュリンク(反例の縮小)"@ja ;
    skos:definition "性質が成り立たない入力が見つかったとき、その入力をより小さな候補に置き換えながら、まだ失敗する最小の反例を探す処理。"@ja ;
    skos:altLabel "Shrinking" ;
    skos:altLabel "縮小"@ja .

<https://comcomponent.com/knowledge/fscheck-arbitrary/> a skos:Concept ;
    skos:prefLabel "Arbitrary(FsCheck)"@ja ;
    skos:definition "FsCheckで、ある型の値を作る生成器と、その値を縮める手順(shrinker)をまとめたもの。縮める手順を指定しない場合、その型の値は縮小されない。"@ja ;
    skos:altLabel "Arbitrary<T>" ;
    skos:altLabel "Arbitrary instance" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/fscheck/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/property-based-testing/> ;
    schema:description "FsCheckは、プログラムが満たす性質を書き、ランダムに作った多数の入力でその性質が成り立つかを確かめる.NET向けのツールである。"@ja ;
    ks:evidence <https://fscheck.github.io/FsCheck/> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/quickcheck/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/property-based-testing/> ;
    schema:description "QuickCheckの論文は、関数の性質を書き、ランダムな入力で自動的に確かめる道具としてQuickCheckを説明している。"@ja ;
    ks:evidence <https://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/quick.pdf> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/property-based-testing/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/test-oracle/> ;
    schema:description "テストには合否を自動で判定する基準が要り、QuickCheckはその基準として書いた性質を使う。性質が弱ければ誤りがあっても通るので、どの性質を書くかがテストの強さを決める。"@ja ;
    ks:evidence <https://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/quick.pdf>, <https://web.eecs.umich.edu/~weimerw/2018-481/readings/testoracles.pdf> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/fscheck/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/shrinking/> ;
    schema:description "FsCheckは性質が成り立たない入力を見つけると、まだ失敗する最小の反例を探して縮め、元の入力と縮めた入力を報告する。"@ja ;
    ks:evidence <https://fscheck.github.io/FsCheck/QuickStart.html> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/fscheck/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/fscheck-arbitrary/> ;
    schema:description "FsCheckは型ごとのArbitraryで入力を作って縮める。独自のArbitraryは[Property]属性のArbitraryに型を渡してテストメソッドごとに使える。生成器だけから作ったArbitraryは縮める手順を持たないので、その値は縮小されない。"@ja ;
    ks:evidence <https://fscheck.github.io/FsCheck/TestData.html>, <https://fscheck.github.io/FsCheck/RunningTests.html> ;
    ks:verifiedAt "2026-11-01" ;
    ks:certainty "established" .
