Skip to main content
Version: 3.0.0

STD: AMB Rule

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/rules/rule-amb.md Rule Name: AMB Domain: RULES-AMB


Overview

This document specifies tests for the AMB rule using decision tables and test vectors. The rule processes observations with ambiguous (Amb) classification results by assigning the CLASSIFICATION problem, displaying visual indicators, and enabling resolution through structured resolution codes.

Rule Characteristics:

  • Operates at observation level (not well level)
  • Three resolution code variants (AMB,SETPOS / AMB,SETNEG / AMB)
  • Manual resolution prohibited
  • Visual flagging for user awareness

Test Method: TM-API (per Test Plan - Rules use automated API tests)

Verification Approach: Rule verification is performed using data-driven test vectors. Each row in a decision table represents a complete verification scenario with defined inputs and expected outputs. Visual flagging (REQ-RULES-AMB-002) requires TM-UI verification for display aspects.


Coverage Summary

REQ IDTitleConditionsTest VectorsCoverageGapsAutomation Status
REQ-RULES-AMB-001Problem Assignment44100%NoneAutomated
REQ-RULES-AMB-002Visual Flagging33100%NoneAutomated
REQ-RULES-AMB-003Resolution Processing88100%NoneAutomated
REQ-RULES-AMB-004Manual Resolution Constraint22100%NoneAutomated

Totals: 4 REQs, 17 Conditions, 17 Test Vectors, 100% Coverage


REQ-RULES-AMB-001: Problem Assignment

Input Variables

VariableTypeValid ValuesDescription
obs.final_clsstringPos, Neg, AmbObservation classification
well.observationsarray[...]Observations in the well
config.preferred_providerstringdxaiRule provider

Output Variables

VariableTypeDescription
obs.problemstring?Problem flag (CLASSIFICATION or null)
well.outcomestring?Well-level outcome (should remain unset)

Decision Table: AMB Detection and Problem Assignment

TVobs.final_clsexpected obs.problemexpected well.outcomeCovers
TV-AMB-001-001AmbCLASSIFICATIONnullAC: AMB observation gets CLASSIFICATION problem
TV-AMB-001-002PosnullnullAC: Non-AMB observation skipped
TV-AMB-001-003NegnullnullAC: Non-AMB observation skipped
TV-AMB-001-004AmbCLASSIFICATIONnullAC: Well outcome not set for AMB

Notes:

  • TV-AMB-001-001 and TV-AMB-001-004 verify the same positive case but emphasize different acceptance criteria
  • Each observation is processed independently within the well

REQ-RULES-AMB-002: Visual Flagging

Input Variables

VariableTypeValid ValuesDescription
obs.final_clsstringAmbObservation classification
user.rolestringClient Admin, Junior User, ...User role

Output Variables

VariableTypeDescription
obs.display_flaggedboolVisual flag displayed

Decision Table: Visual Flag Display

TVobs.final_clsuser.roleexpected display_flaggedCovers
TV-AMB-002-001AmbClient AdmintrueAC: AMB flagged for Client Admin
TV-AMB-002-002AmbJunior UsertrueAC: AMB flagged for Junior User
TV-AMB-002-003PosClient AdminfalseAC: Non-AMB not flagged

Notes:

  • Visual flagging verification requires TM-UI for display confirmation
  • Flag displayed as red indicator per UI Notes

REQ-RULES-AMB-003: Resolution Processing

Input Variables

VariableTypeValid ValuesDescription
well.error_codestringAMB, nullWell error code
well.resolution_codesstringAMB,SETPOS / AMB,SETNEG / AMB / nullResolution code applied
obs.final_clsstringAmbObservation classification (pre-resolution)
obs.problemsarray[CLASSIFICATION]Observation problems (pre-resolution)

Output Variables

VariableTypeDescription
well.error_codestring?Well error code (post-resolution)
obs.final_clsstringObservation classification (post-resolution)
obs.problemsarrayObservation problems (post-resolution)

Decision Table: Resolution Code Processing

TVwell.resolution_codesobs.final_cls (input)expected obs.final_clsexpected well.error_codeexpected obs.problemsCovers
TV-AMB-003-001AMB,SETPOSAmbPosnull[]AC: SETPOS changes to Positive
TV-AMB-003-002AMB,SETNEGAmbNegnull[]AC: SETNEG changes to Negative
TV-AMB-003-003AMBAmbAmbnull[]AC: AMB clears error, keeps Amb
TV-AMB-003-004nullAmbAmbAMB[CLASSIFICATION]AC: No resolution leaves flagged

Decision Table: Non-AMB Observation Isolation

TVobs.final_cls (input)well.resolution_codesother_obs.final_cls (input)expected other_obs.final_clsCovers
TV-AMB-003-005AmbAMB,SETNEGPosPosAC: Non-AMB obs preserved
TV-AMB-003-006AmbAMB,SETPOSNegNegAC: Non-AMB obs preserved

Decision Table: Invalid Resolution Handling

TVwell.resolution_codesobs.final_cls (input)expected obs.final_clsexpected stateCovers
TV-AMB-003-007INVALID_CODEAmbAmbunchangedAC: Invalid code rejected
TV-AMB-003-008AMB,SETPOSPosPosunchangedAC: Non-AMB obs not processed

REQ-RULES-AMB-004: Manual Resolution Constraint

Input Variables

VariableTypeValid ValuesDescription
obs.problemsarray[CLASSIFICATION]AMB-flagged observation
resolution_methodstringmanual, resolution_codeHow resolution is attempted

Output Variables

VariableTypeDescription
resolution_allowedboolWhether resolution is permitted

Decision Table: Manual Resolution Prevention

TVobs.problemsresolution_methodexpected resolution_allowedCovers
TV-AMB-004-001[CLASSIFICATION]manualfalseAC: Manual entry rejected
TV-AMB-004-002[CLASSIFICATION]resolution_codetrueAC: Resolution code permitted

Notes:

  • UI affordance for prevention TBD per OQ-01 in SRS
  • System shall reject manual resolution attempts

Traceability to Existing Tests

RequirementJira TestsStatus
REQ-RULES-AMB-001BT-3880Existing
REQ-RULES-AMB-002PendingGap
REQ-RULES-AMB-003PendingGap
REQ-RULES-AMB-004PendingGap

Gap Analysis

Identified Gaps

GapRequirementDescriptionPriorityOwner
GAP-001REQ-RULES-AMB-002No Jira test ticket for visual flaggingMediumTBD
GAP-002REQ-RULES-AMB-003No Jira test ticket for resolution processingHighTBD
GAP-003REQ-RULES-AMB-004No Jira test ticket for manual resolution constraintHighTBD

Remediation Plan

  1. GAP-001: Create test ticket covering TV-AMB-002-001 through TV-AMB-002-003 (TM-UI required)
  2. GAP-002: Create test ticket covering TV-AMB-003-001 through TV-AMB-003-008
  3. GAP-003: Create test ticket covering TV-AMB-004-001 through TV-AMB-004-002