{
  "code": null,
  "collection": "reasoning",
  "href": "https://banes-lab.com/ontology/reasoning#reasoning-technique-contract-testing",
  "id": "technique-contract-testing",
  "kind": "technique",
  "layer": null,
  "name": "Contract Testing",
  "ref": "reasoning:technique-contract-testing",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/reasoning#reasoning-mode-comparison",
          "json": "https://banes-lab.com/json/records/reasoning/mode-comparison",
          "label": "comparison",
          "markdown": "https://banes-lab.com/records/reasoning/mode-comparison.md",
          "ref": "reasoning:mode-comparison"
        }
      ],
      "relation": "mode"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/reasoning#reasoning-test-surface-interface-correctness",
          "json": "https://banes-lab.com/json/records/reasoning/test-surface-interface-correctness",
          "label": "interface-correctness",
          "markdown": "https://banes-lab.com/records/reasoning/test-surface-interface-correctness.md",
          "ref": "reasoning:test-surface-interface-correctness"
        },
        {
          "href": "https://banes-lab.com/ontology/reasoning#reasoning-test-surface-interaction-correctness",
          "json": "https://banes-lab.com/json/records/reasoning/test-surface-interaction-correctness",
          "label": "interaction-correctness",
          "markdown": "https://banes-lab.com/records/reasoning/test-surface-interaction-correctness.md",
          "ref": "reasoning:test-surface-interaction-correctness"
        },
        {
          "href": "https://banes-lab.com/ontology/reasoning#reasoning-test-surface-protocol-correctness",
          "json": "https://banes-lab.com/json/records/reasoning/test-surface-protocol-correctness",
          "label": "protocol-correctness",
          "markdown": "https://banes-lab.com/records/reasoning/test-surface-protocol-correctness.md",
          "ref": "reasoning:test-surface-protocol-correctness"
        }
      ],
      "relation": "surfaces"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/reasoning#the-modes",
          "json": "https://banes-lab.com/json/ontology/reasoning/the-modes",
          "label": "The modes",
          "markdown": "https://banes-lab.com/ontology/reasoning/the-modes.md",
          "ref": "chapter:/ontology/reasoning#the-modes"
        },
        {
          "href": "https://banes-lab.com/ontology/reasoning#the-test-surfaces",
          "json": "https://banes-lab.com/json/ontology/reasoning/the-test-surfaces",
          "label": "The test surfaces",
          "markdown": "https://banes-lab.com/ontology/reasoning/the-test-surfaces.md",
          "ref": "chapter:/ontology/reasoning#the-test-surfaces"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "summary": "Compares an observed interface with an agreed contract",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/ontology/reasoning#reasoning-technique-runtime-validation",
      "json": "https://banes-lab.com/json/records/reasoning/technique-runtime-validation",
      "label": "Runtime Validation",
      "markdown": "https://banes-lab.com/records/reasoning/technique-runtime-validation.md",
      "ref": "reasoning:technique-runtime-validation"
    },
    "previous": {
      "href": "https://banes-lab.com/ontology/reasoning#reasoning-technique-differential-testing",
      "json": "https://banes-lab.com/json/records/reasoning/technique-differential-testing",
      "label": "Differential Testing",
      "markdown": "https://banes-lab.com/records/reasoning/technique-differential-testing.md",
      "ref": "reasoning:technique-differential-testing"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/records/reasoning",
    "label": "Reasoning records",
    "markdown": "https://banes-lab.com/api/records/reasoning.md",
    "ref": "api:records/reasoning"
  }
}
