Skip to content

Latest commit

 

History

History
27 lines (19 loc) · 7.29 KB

File metadata and controls

27 lines (19 loc) · 7.29 KB

Prior-art reconciliation

This audit uses project-owned documentation or source and established research literature. It is a boundary analysis, not a novelty claim. Several existing systems already provide sophisticated affected selection, conservative fallbacks, explanations, and shadow prediction. Affected Verification should reuse them as evidence providers where they are authoritative.

Comparison

System Input evidence Selection unit Static/runtime Uncertainty behavior Non-test verification Skip explanation Shadow validation Sufficiency claim Intended reuse
Nx affected Git base/head or supplied files, project graph, source/config analysis, lockfile analysis Projects, then requested targets/tasks Primarily static workspace and project/task graph Conservative lockfile default marks all projects; graph/plugin behavior can broaden Yes: any Nx target such as lint, test, build, or custom task Affected graph and task graph explain inclusion; no first-class reason for every omitted task No general OSS CLI shadow/full miss contract found Claims a minimum affected project set, not acceptance sufficiency across verification classes Consume affected projects/task graph and its failsafe signals
Turborepo --affected Git range, package graph, global dependencies, optionally task input globs Packages by default; tasks with affectedUsingTaskInputs Static package/task/input graph Global configuration and lockfile changes select all; missing Git history can fall back broadly Yes: caller-named Turbo tasks --dry=json shows planned tasks, but not an argument for every skipped task No built-in miss classifier found No cross-class acceptance sufficiency claim Consume affected tasks/packages and global-change signals
Jest --findRelatedTests Supplied source files and Jest's module dependency information Test files/tests Static module-resolution evidence, not runtime coverage No general external uncertainty/policy model; caller owns source list and configuration No; tests only Lists selected tests, not a first-class reason for each omitted test No “Related” test selection, not acceptance sufficiency Use its related-test result as one test-evidence provider
Vitest related / --changed Supplied files or Git changes plus static imports Test files Static imports; documented dynamic-import limitation forceRerunTriggers and config/package changes can force the full suite No; tests only No durable per-skip argument in the core CLI No general miss observation contract No acceptance sufficiency claim Use related/changed output and propagate its limitations
pytest-testmon Per-test executed-code dependencies from Coverage.py plus source/block changes and persisted .testmondata Pytest tests Runtime coverage plus source analysis First qualifying run executes all; failed tests rerun; mode conflicts can disable selection/collection No; tests only Selection can be inspected, but no cross-catalog reason for every skip --testmon-noselect runs all while prioritizing likely failures, but no durable generic miss contract Makes scoped affected-test claims, not whole-change verification sufficiency Use runtime test-to-code evidence and explicit database readiness state
vitest-affected Git changes, cached Vitest runtime import data, delta static parsing, explicit full-suite triggers Vitest test files Runtime-observed imports plus static delta parsing Cache/git/graph failure falls back to full; first run is full; documented non-import gaps need triggers; stale cache warns but does not force full No; tests only Yes: selected chains and a why-not explanation based on absence from the cached graph Yes: predicts selection while the full suite runs and emits decision data Explicitly advises retaining full/periodic truth; no cross-class sufficiency claim Reuse runtime graph, explain trails, fallback signals, and shadow observations rather than rebuilding them
Bazel query Declared target/build graph and query universe Build/test targets Static declared build graph Query scope and graph completeness are caller responsibilities; --keep_going tolerates errors but is not sufficiency Queries can select any target; Bazel can build/test selected targets rdeps, somepath, and allpaths can explain graph relationships No generic selection-miss contract No change-acceptance sufficiency claim Consume target/reverse-dependency paths and configuration boundaries
Pants changed targets Git changes, inferred/declared target dependencies, changed options Targets supplied to any goal Static target/dependency graph Can include direct or transitive dependees; no general evidence-sufficiency state Yes: selected targets can feed test, lint, package, and other goals Target introspection can explain graph membership; no per-skip verification argument No generic miss classifier No whole-change sufficiency claim Consume changed target closure and goal/task metadata
Azure Pipelines Test Impact Analysis Managed-code test impact data and source changes Automated tests Runtime instrumentation/impact data Unknown file types fall back to all tests; periodic full runs are configurable and recommended No; tests only Reporting exposes TIA outcome, not a generic per-skip argument Periodic full runs provide validation opportunity, but no portable durable miss schema Scoped platform TIA, not cross-class acceptance sufficiency Reuse impacted-test result, unknown-type fallback, and full-run cadence evidence

Research boundary

Regression-test selection is a mature research field. Yoo and Harman's survey distinguishes minimization, modification-aware selection, and prioritization. Rothermel and Harrold's safe regression-test selection work uses “safe” in a formal, controlled-program sense. This project must not borrow that term for a multi-language, multi-check planner without equivalent proof.

The prototype's defensible distinction is narrower: it combines potentially heterogeneous selector evidence with an explicit verification catalog and risk policy, then emits an acceptance-oriented argument covering tests and non-test checks, uncertainty, escalation, and every catalogued skip. The individual graph, coverage, affected-target, explanation, and shadow mechanisms are prior art.

Novelty ceiling

No novelty is claimed. Future comparison must include full verification, native affected tooling, Affected Verification, and Affected Verification consuming native tooling. Value exists only if the composed argument improves workload without increasing relevant misses under controlled shadow evidence.