Skip to main content
Version: 3.0.0

STD: Resolution-Based LIMS Export Rule (RRESOLUTION)

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


Overview

This document specifies tests for the RRESOLUTION rule using decision tables and test vectors. The rule sets a well's LIMS export value based on its assigned resolution code configuration when the resolution code is configured to set a LIMS Export code.

Rule Characteristics:

  • Pure business logic (no UI)
  • Two preconditions: resolution code exists AND resolution code has LIMS export enabled
  • Single output: LIMS export value assignment
  • No modification when preconditions fail

Test Method: TM-API (per Test Plan section 3.3 - 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. This format enables exhaustive condition coverage while remaining concise and auditable.


Coverage Summary

REQ IDTitleConditionsTest VectorsCoverageGaps
REQ-RULES-RRES-001Set Well LIMS Export from Resolution Code35100%None

Totals: 1 REQ, 3 Conditions, 5 Test Vectors, 100% Coverage


REQ-RULES-RRES-001: Set Well LIMS Export from Resolution Code

Input Variables

VariableTypeValid ValuesDescription
well.resolution_codeobject/nullNULL, {valid resolution code}Resolution code assigned to well
resolution_code.sets_lims_exportbooltrue, falseFlag indicating if resolution code controls LIMS export
resolution_code.lims_export_valuestringAny valid LIMS codeThe LIMS export value to assign when enabled
well.lims_export (initial)stringAny valid LIMS codeWell's current LIMS export before rule execution

Output Variables

VariableTypeDescription
well.lims_exportstringWell's LIMS export value after rule execution
modifiedboolWhether the rule modified the well's LIMS export

Decision Table: Precondition Evaluation

This table covers the core matching logic based on the two preconditions:

  1. Resolution code exists (well.resolution_code IS NOT NULL)
  2. Resolution code has LIMS export enabled (resolution_code.sets_lims_export = TRUE)
TVwell.resolution_coderesolution_code.sets_lims_exportresolution_code.lims_export_valuewell.lims_export (initial)expected well.lims_exportmodifiedCovers
TV-RRES-001-001NULLN/AN/AORIGINALORIGINALfalseAC: No resolution code - no modification
TV-RRES-001-002{RC-A}falsenullORIGINALORIGINALfalseAC: Resolution code exists but sets_lims_export=false - no modification
TV-RRES-001-003{RC-B}trueRESOLVED_POSORIGINALRESOLVED_POStrueAC: Both preconditions met - set LIMS export
TV-RRES-001-004{RC-C}trueRESOLVED_NEGPENDINGRESOLVED_NEGtrueAC: Different initial value - still overwritten
TV-RRES-001-005{RC-D}trueERROR_CODEnullERROR_CODEtrueAC: Null initial value - set to configured value

Decision Table: Boundary and Edge Cases

TVScenariowell.resolution_codesets_lims_exportlims_export_valueexpected_resultCovers
TV-RRES-001-006Empty string LIMS value{RC-E}true""well.lims_export = ""AC: Empty string is valid LIMS value
TV-RRES-001-007Same value as initial{RC-F}trueORIGINALwell.lims_export = ORIGINALAC: Value unchanged but rule executed

Decision Table: Condition Combinations (Truth Table)

TVCondition 1: Resolution Code ExistsCondition 2: sets_lims_export = TRUEActionCovers
TV-RRES-001-TT1NON/ANo modificationAC: No modification - no resolution code
TV-RRES-001-TT2YESNONo modificationAC: No modification - LIMS export not enabled
TV-RRES-001-TT3YESYESSet well.lims_exportAC: Both conditions met - set value

Automation Status

REQ IDTest VectorsAutomation StatusNotes
REQ-RULES-RRES-001TV-RRES-001-001 through TV-RRES-001-007, TV-RRES-001-TT1 through TV-RRES-001-TT3AutomatedRule logic tested via API

Traceability to Existing Tests

RequirementJira TestsStatus
REQ-RULES-RRES-001BT-5299Existing

Gap Analysis

Identified Gaps

GapRequirementDescriptionPriorityOwner
None-All acceptance criteria covered by test vectors--

Coverage Notes

  • The RRESOLUTION rule has simple binary logic with only two preconditions
  • All three condition combinations are exhaustively tested
  • Boundary cases (empty string, null initial value, same value) are included
  • No multi-condition complexity or priority conflicts exist in this rule