Code quality and technical debt glossary
Understand maintainability, code structure, and the costs of decisions that make future changes harder. Learn what quality signals can and cannot establish.
All terms
237 termsAbstract interpretation
A static-analysis method that approximates program behavior with a simpler mathematical model.
Code quality and technical debtAbstract syntax tree
A structural representation of source code that records its syntax as connected nodes.
Code quality and technical debtAbstractness metric
A measure of how many types in a component are abstract rather than concrete.
Code quality and technical debtAcceptance test-driven development
Acceptance test-driven development is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtAcceptance testing
Acceptance testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtAccessibility debt
Accessibility debt is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtAccessibility testing
Accessibility testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtAfferent coupling
The number of incoming dependencies from other components into a component.
Code quality and technical debtAlpha testing
Alpha testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtAnti-corruption layer
Anti-corruption layer is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtAPI churn
The frequency or magnitude of changes to a public interface over a defined period.
Code quality and technical debtAPI surface area
The amount of public functionality that a component exposes to external callers.
Code quality and technical debtAPI testing
API testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtAPI versioning
API versioning is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtArchitectural boundary
A defined separation between components that limits responsibilities, dependencies, or change impact.
Code quality and technical debtArchitecture churn
The rate at which major structural relationships or boundaries change over time.
Code quality and technical debtArchitecture decision latency
The elapsed time between an architecture question being raised and a decision becoming usable for implementation.
Code quality and technical debtArchitecture decision record
A short document that captures an important architecture decision, its context, and its consequences.
Code quality and technical debtArchitecture fitness function
An automated or repeatable check that tests whether an architecture continues to meet a chosen constraint.
Code quality and technical debtArchitecture rework
Engineering effort spent changing a structural design after implementation or adoption has begun.
Code quality and technical debtAutomated refactoring
Automated refactoring is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtAvailability testing
Availability testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtBackward compatibility
Backward compatibility is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtBehavior-driven development
Behavior-driven development is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtBehavior-preserving change
Behavior-preserving change is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtBeta testing
Beta testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtBlack-box testing
Black-box testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtBoolean parameter
A function argument whose true or false value selects behavior or a mode.
Code quality and technical debtBoundary value analysis
Boundary value analysis is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtBranch by abstraction
Branch by abstraction is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtBranch coverage
Branch coverage is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtBreaking change
Breaking change is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtBreaking change rate
The proportion of public interface changes that require consumers to modify or redeploy.
Code quality and technical debtBuild debt
Build debt is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtBus factor
The minimum number of people whose loss would put a project or critical area at serious operational risk.
Code quality and technical debtCause-effect graphing
Cause-effect graphing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtChange-proneness
The tendency of a component to be modified repeatedly within a defined period.
Code quality and technical debtCharacterization test
Characterization test is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtChecklist-based testing
Checklist-based testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtCode age
The elapsed time since a selected code element was last modified or introduced.
Code quality and technical debtCode archaeology
Code archaeology is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtCode coverage
Code coverage is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtCode ownership concentration
The degree to which changes to a code area are made or reviewed by a small set of contributors.
Code quality and technical debtCode quality gate
An automated condition that must pass before a change can advance in a delivery workflow.
Code quality and technical debtCognitive complexity trend
The change over time in a codebase’s cognitive complexity measurements.
Code quality and technical debtCombinatorial testing
Combinatorial testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtCompatibility testing
Compatibility testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtCompliance debt
Compliance debt is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debtComponent testing
Component testing is a software testing or test-design practice used to gather evidence about a defined risk, behavior, boundary, or operating condition. It makes the question under test explicit, identifies the inputs and observations that matter, and gives a team a repeatable basis for deciding whether the result is acceptable.
Code quality and technical debtConfiguration drift debt
Configuration drift debt is a software maintenance concern describing a condition that can make future changes, verification, operation, or ownership harder. Its practical importance depends on supported behavior, rate of change, and the consequences of delay.
Code quality and technical debt