Skip to content

DRIVERS-3484 Spec gap analysis: missing tests, ambiguities, and inconsistencies across all 42 components#1935

Draft
GromNaN wants to merge 4 commits into
mongodb:masterfrom
GromNaN:spec-analysis
Draft

DRIVERS-3484 Spec gap analysis: missing tests, ambiguities, and inconsistencies across all 42 components#1935
GromNaN wants to merge 4 commits into
mongodb:masterfrom
GromNaN:spec-analysis

Conversation

@GromNaN
Copy link
Copy Markdown
Member

@GromNaN GromNaN commented May 13, 2026

Jira: https://jira.mongodb.org/browse/DRIVERS-3484

Summary

Systematic analysis of every active specification component in this repository.
For each component, the analysis identifies:

  • Missing tests — normative behaviors (MUST/SHOULD) with no automated test coverage
  • Ambiguities — vague or underspecified normative language that could lead to inconsistent driver implementations
  • Inconsistencies — contradictions between spec text and existing tests, or between spec sections

Process

Each component was analyzed by:

  1. Reading the full spec file
  2. Listing and sampling all existing YAML test files in tests/
  3. Cross-referencing every MUST/MUST NOT/SHALL/SHOULD against test coverage
  4. Identifying gaps, ambiguities, and contradictions

Reports are stored in spec-analysis/ at the repository root, one file per component.

Reports

Tier 1 — No existing automated tests (14 components)

Component Report
causal-consistency spec-analysis/causal-consistency.md
collation spec-analysis/collation.md
dbref spec-analysis/dbref.md
enumerate-collections spec-analysis/enumerate-collections.md
enumerate-databases spec-analysis/enumerate-databases.md
extended-json spec-analysis/extended-json.md
faas-automated-testing spec-analysis/faas-automated-testing.md
find_getmore_killcursors_commands spec-analysis/find_getmore_killcursors_commands.md
logging spec-analysis/logging.md
connections-survive-step-down spec-analysis/connections-survive-step-down.md
ocsp-support spec-analysis/ocsp-support.md
socks5-support spec-analysis/socks5-support.md
serverless-testing (obsolete) spec-analysis/serverless-testing.md
compression spec-analysis/compression.md
benchmarking spec-analysis/benchmarking.md

Tier 2 — Sparse test coverage (1–11 tests, 13 components)

Component Report
auth spec-analysis/auth.md
change-streams spec-analysis/change-streams.md
sessions spec-analysis/sessions.md
gridfs spec-analysis/gridfs.md
load-balancers spec-analysis/load-balancers.md
read-write-concern spec-analysis/read-write-concern.md
connection-string spec-analysis/connection-string.md
transactions-convenient-api spec-analysis/transactions-convenient-api.md
uri-options spec-analysis/uri-options.md
index-management spec-analysis/index-management.md
run-command spec-analysis/run-command.md
mongodb-handshake spec-analysis/mongodb-handshake.md
versioned-api spec-analysis/versioned-api.md

Tier 3 — Substantial coverage (22–35 tests, 6 components)

Component Report
max-staleness spec-analysis/max-staleness.md
client-side-operations-timeout spec-analysis/client-side-operations-timeout.md
command-logging-and-monitoring spec-analysis/command-logging-and-monitoring.md
open-telemetry spec-analysis/open-telemetry.md
retryable-writes spec-analysis/retryable-writes.md
connection-monitoring-and-pooling spec-analysis/connection-monitoring-and-pooling.md

Tier 4 — Rich coverage (40–318 tests, 8 components)

Component Report
retryable-reads spec-analysis/retryable-reads.md
transactions spec-analysis/transactions.md
initial-dns-seedlist-discovery spec-analysis/initial-dns-seedlist-discovery.md
server-selection spec-analysis/server-selection.md
client-side-encryption spec-analysis/client-side-encryption.md
server-discovery-and-monitoring spec-analysis/server-discovery-and-monitoring.md
crud spec-analysis/crud.md
unified-test-format spec-analysis/unified-test-format.md

Next steps

This PR is a starting point. Follow-up work per component:

  1. Review the reports and validate findings
  2. Apply direct spec edits for confirmed ambiguities and inconsistencies (with ## Changelog updates)
  3. Implement missing YAML tests after validation (one PR per component)

GromNaN added 2 commits May 13, 2026 14:25
…ents

Systematic analysis of every active spec in the repository, covering:
- Missing tests (MUST/SHOULD behaviors without automated test coverage)
- Ambiguities (vague or underspecified normative language)
- Inconsistencies (spec-vs-test contradictions, intra-spec contradictions)

One Markdown report per component in spec-analysis/.
Cross-reference each finding with open PRs and JIRA tickets inline on
the relevant bullet, so readers can immediately see what is already being
tracked. Remove spec-analysis/analyze.py (unused).
@GromNaN GromNaN changed the title Spec gap analysis: missing tests, ambiguities, and inconsistencies across all 42 components DRIVERS-3484 Spec gap analysis: missing tests, ambiguities, and inconsistencies across all 42 components May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant