configuration/lexicon/data/correctness.data.json
configuration/lexicon/data/correctness.data.json is a file in GovLab Context. 328 lines of code and 0 definitions.
{
"category": "correctness-determinism-verification",
"records": [
{
"name": "Assumption-Driven Delivery",
"kind": "anti-pattern",
"definition": "Shipping on untested assumptions about behavior instead of validating that requirements are met."
},
{
"name": "Environment-Sensitive Behavior",
"kind": "anti-pattern",
"definition": "Behavior that changes with the host environment, so the same run yields different results elsewhere."
},
{
"name": "Example-Only Testing",
"kind": "anti-pattern",
"definition": "Testing only a few hand-picked examples instead of properties that must hold across all inputs."
},
{
"name": "Floating Dependencies",
"distinctFrom": [
{
"id": "architecture:flaky-test-normalization",
"reason": "Floating dependencies make builds unreproducible through unpinned versions, while flaky test normalization accepts intermittent failures by rerunning them."
}
],
"kind": "anti-pattern",
"definition": "Depending on unpinned, floating dependency versions, so builds are not reproducible."
},
{
"name": "Hidden Behavior",
"kind": "anti-pattern",
"definition": "Behavior triggered by hidden state or side effects, so outcomes surprise callers."
},
{
"name": "Hidden IO",
"kind": "anti-pattern",
"definition": "Performing input/output inside a supposedly pure function, hiding side effects from callers."
},
{
"name": "Hidden Time/Randomness/Global State",
"kind": "anti-pattern",
"definition": "Reading the clock, randomness, or global state inside a computation, making its output nondeterministic."
},
{
"name": "Implementation-Only Testing",
"distinctFrom": [
{
"id": "architecture:mock-mirage",
"reason": "Implementation-only testing checks today's behavior instead of the contract, while a mock mirage checks calls on mocks instead of behavior."
}
],
"kind": "anti-pattern",
"definition": "Testing only against the current implementation's behavior rather than the specified contract."
},
{
"name": "Informal Validation Only",
"kind": "anti-pattern",
"definition": "Relying only on informal checks and testing where a formal proof of correctness is warranted."
},
{
"name": "Side Effects",
"kind": "anti-pattern",
"definition": "Producing observable side effects in an expression, so it cannot be replaced by its value."
},
{
"name": "Unchecked Dynamic Code",
"kind": "anti-pattern",
"definition": "Running dynamically generated or evaluated code that static analysis cannot inspect for defects."
},
{
"name": "Undefined Behavior",
"kind": "anti-pattern",
"definition": "Relying on operations whose result is unspecified, so outcomes vary unpredictably across runs or platforms."
},
{
"name": "Untested Implementation",
"kind": "anti-pattern",
"definition": "Shipping code with no tests, so its conformance to the specification is unverified."
},
{
"name": "Behavior Validation",
"kind": "capability",
"definition": "The ability to confirm a system behaves as its specification requires."
},
{
"name": "Broad Input Exploration",
"kind": "capability",
"definition": "The ability to exercise a function across a wide, generated range of inputs."
},
{
"name": "Mathematical Assurance",
"kind": "capability",
"definition": "The ability to prove mathematically that a system meets its specification."
},
{
"name": "Regression Safety",
"kind": "capability",
"definition": "The ability to catch regressions when code changes by re-running tests."
},
{
"name": "Reliable Automation",
"kind": "capability",
"definition": "The ability to automate a process reliably because it repeats identically each run."
},
{
"name": "Reliable Testing",
"kind": "capability",
"definition": "The ability to test dependably because the same inputs always produce the same outputs."
},
{
"name": "Safe Operation",
"kind": "capability",
"definition": "The ability to operate without producing incorrect or harmful results."
},
{
"name": "Safe Sharing",
"kind": "capability",
"definition": "The ability to share data freely across threads because it cannot be modified."
},
{
"name": "Specification Compliance",
"kind": "capability",
"definition": "The ability to confirm an implementation conforms to its specification."
},
{
"name": "Formal Specification",
"kind": "artifact",
"definition": "A precise, mathematical statement of what a system must do, against which it is proven."
},
{
"name": "Ruleset",
"kind": "artifact",
"definition": "The set of rules a static analyzer checks source code against."
},
{
"name": "Tests",
"distinctFrom": [
{
"id": "lexicon:specification",
"reason": "Tests are executable checks, while a specification is the description of required behavior they check against."
},
{
"id": "lexicon:test-tag",
"reason": "Tests are the executable checks, while the test marker names the file that holds one."
}
],
"kind": "artifact",
"definition": "Executable checks that assert a system behaves as intended."
},
{
"name": "Controlled State",
"kind": "constraint",
"definition": "The requirement that all inputs and state affecting a computation be fixed, bounded or fully specified, so its behavior is reproducible.",
"aliases": ["Controlled Inputs"]
},
{
"name": "Deterministic Behavior",
"kind": "constraint",
"definition": "The requirement that the code under test produce the same result for the same inputs."
},
{
"name": "No Side Effects",
"kind": "constraint",
"definition": "The requirement that a function compute its result without observable side effects."
},
{
"name": "Properties/Invariants",
"kind": "constraint",
"definition": "The requirement that the general properties or invariants a function must satisfy be defined."
},
{
"name": "Value Semantics",
"kind": "constraint",
"definition": "The requirement that values be compared and copied by content rather than by reference identity."
},
{
"name": "Versioned Inputs",
"kind": "constraint",
"definition": "The requirement that all inputs to a build or computation be pinned to specific versions."
},
{
"name": "Allocation Cost",
"kind": "quality-attribute",
"definition": "The degree of extra memory allocation incurred by creating new immutable values instead of mutating in place."
},
{
"name": "Continuous Updates",
"kind": "quality-attribute",
"definition": "The degree to which pinning everything for reproducibility conflicts with continuously updating dependencies."
},
{
"name": "Cost/Complexity",
"kind": "quality-attribute",
"definition": "The degree of cost and complexity added by formally proving a system correct."
},
{
"name": "Dynamic Runtime Behavior",
"kind": "quality-attribute",
"definition": "The degree to which runtime-adaptive behavior undermines a system's predictability."
},
{
"name": "Encapsulation Extremes",
"kind": "quality-attribute",
"definition": "The degree to which hiding internals too strictly makes a unit's behavior hard to observe in tests."
},
{
"name": "Fitness for Use",
"kind": "quality-attribute",
"definition": "The degree to which a product meets the needs of its users."
},
{
"name": "Real-World Variability",
"kind": "quality-attribute",
"definition": "The degree to which controlling conditions for repeatability diverges from real-world variability."
},
{
"name": "Runtime Adaptivity",
"kind": "quality-attribute",
"definition": "The degree to which making behavior deterministic limits adapting dynamically at runtime."
},
{
"name": "Shrinking/Debug Complexity",
"kind": "quality-attribute",
"definition": "The degree to which reducing a failing generated case to a minimal example adds debugging complexity."
},
{
"name": "Spec Maintenance",
"kind": "quality-attribute",
"definition": "The degree of ongoing effort to keep a specification current as the system evolves."
},
{
"name": "Stateful IO",
"kind": "quality-attribute",
"definition": "The degree to which stateful input/output conflicts with expressions being replaceable by their values."
},
{
"name": "Stateful Operations",
"kind": "quality-attribute",
"definition": "The degree to which operations that depend on or mutate state conflict with purity."
},
{
"name": "Thread Safety",
"kind": "quality-attribute",
"definition": "The degree to which data can be accessed concurrently without corruption."
},
{
"name": "Make Effects Explicit",
"kind": "technique",
"definition": "A technique for moving input, output and mutation to named boundary operations, so the code between them stays pure."
},
{
"name": "Pass Context Explicitly",
"kind": "technique",
"definition": "A technique for passing request, user or tenant context as a parameter or scoped object instead of reading it from global state."
},
{
"name": "Inject Clock and Randomness",
"kind": "technique",
"definition": "A technique for supplying time and random values through parameters, so the code under test runs the same way every time."
},
{
"name": "Test Observable Behavior",
"kind": "technique",
"definition": "A technique for asserting on a unit's outputs and effects instead of on the internal calls it makes."
},
{
"name": "Fake at the Boundary",
"kind": "technique",
"definition": "A technique for replacing an external dependency in tests with a working in-memory implementation of its port."
},
{
"name": "Unit Tests",
"kind": "technique",
"definition": "A technique for testing one unit of behavior in isolation, fast enough to run on every change."
},
{
"name": "Component Tests",
"kind": "technique",
"definition": "A technique for testing one deployable component through its public interface with its dependencies replaced."
},
{
"name": "Isolate Test State",
"kind": "technique",
"definition": "A technique for giving each test its own data and resources, so tests pass in any order."
},
{
"name": "Validate at the Boundary",
"kind": "technique",
"definition": "A technique for rejecting malformed input where it enters the system, so the core receives only valid values."
},
{
"name": "Encapsulate Validation",
"kind": "technique",
"definition": "A technique for placing a value's validation in the type that holds it, so every instance is valid."
},
{
"name": "Validate as a Group",
"kind": "technique",
"definition": "A technique for validating fields that depend on each other together, in the object that groups them."
},
{
"name": "Precondition Check",
"kind": "technique",
"definition": "A technique for checking at the start of an operation that the state and arguments it requires hold."
},
{
"name": "Invariant Check",
"kind": "technique",
"definition": "A technique for checking after each change that the rules a state must always satisfy still hold."
},
{
"name": "Postcondition Check",
"kind": "technique",
"definition": "A technique for checking at the end of an operation that the result and state it promises hold."
},
{
"name": "Pin Versions",
"kind": "technique",
"definition": "A technique for recording exact versions of dependencies and tools, so every build uses the same inputs."
},
{
"name": "Ignored Analyzer Findings",
"kind": "anti-pattern",
"definition": "A defect in which static analysis findings are left unresolved until the analyzer's output stops being read."
}
]
}