Skip to main content
Version: 3.0.0

STD: Inhibition CT Rule (INH)

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/rules/rule-inhibition-ct.md Rule Name: INH (Inhibition CT) Domain: RULES-INHCT


Overview

This document specifies tests for the Inhibition CT rule using decision tables and test vectors. The INH rule detects potential PCR inhibition by comparing Internal Control (IC) CT values against negative control baselines and flagging observations that exceed configured thresholds.

Rule Characteristics:

  • Pure business logic (no UI)
  • CT threshold comparison against baseline average
  • Fallback control resolution when original mix lacks NC
  • Role-based exclusion from evaluation
  • Error assignment when no valid baseline exists

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-INHCT-001Core Threshold Comparison78100%None
REQ-RULES-INHCT-002Baseline Calculation67100%None
REQ-RULES-INHCT-003Fallback Controls56100%None
REQ-RULES-INHCT-004Role Exclusion45100%None
REQ-RULES-INHCT-005No NC Error Handling45100%None

Totals: 5 REQs, 26 Conditions, 31 Test Vectors, 100% Coverage


Input Variables

VariableTypeValid ValuesDescription
obs.target_typestringIC, non-ICTarget type of observation
obs.ctfloatnumericObservation CT value
nc[].ctfloatnumericNegative control CT values
nc[].has_errorbooltrue, falseNC has error status
nc[].has_resolutionbooltrue, falseNC has resolution status
config.ct_inhibition_deltafloatnumeric (positive)Maximum allowed CT deviation
role.exclude_from_ic_delta_checkbooltrue, false, nullRole exclusion flag
config.backup_mixesarray[], [Mix_A, ...]Fallback mix identifiers
obs.mixstringMix identifierObservation's mix
nc_count_for_mixint0, 1, ...Count of valid NCs for mix

Output Variables

VariableTypeDescription
obs.problemstring?IC_FAILED or null
obs.errorstring?IC_RULE_NO_NC_IN_RUN or null
evaluatedboolWhether observation was evaluated by INH rule

REQ-RULES-INHCT-001: Core Threshold Comparison

Decision Table: Target Type Filtering

TVobs.target_typeevaluatedCovers
TV-001-001ICtrueAC: IC-type evaluated
TV-001-002non-ICfalseAC: Non-IC not evaluated

Decision Table: CT Delta Threshold

TVobs.ctnc_avg_ctct_inhibition_deltadeltaproblemCovers
TV-001-003202545IC_FAILEDAC: Delta > threshold
TV-001-004212544nullAC: Delta = threshold (not greater)
TV-001-005222543nullAC: Delta < threshold

Decision Table: Absolute Value Comparison

TVobs.ctnc_avg_ctct_inhibition_deltadeltaproblemCovers
TV-001-006302545IC_FAILEDAC: Positive delta > threshold
TV-001-007202545IC_FAILEDAC: Negative delta > threshold (abs)

Decision Table: Configuration Source

TVtarget_config.ct_inhibition_deltaapplied_deltaCovers
TV-001-00855AC: Delta from target configuration

REQ-RULES-INHCT-002: Baseline Calculation

Decision Table: NC Averaging

TVnc[0].ctnc[1].ctcalculated_avgCovers
TV-002-001252324AC: Average of multiple NCs
TV-002-00225-25AC: Single NC used directly

Decision Table: Error/Resolution Exclusion

TVnc[0].ctnc[0].statusnc[1].ctnc[1].statuseffective_avgCovers
TV-002-00325valid23valid24AC: Both valid, average both
TV-002-00425valid23error25AC: Exclude NC with error
TV-002-00525valid23resolution25AC: Exclude NC with resolution
TV-002-00625error23resolution-AC: All excluded (triggers REQ-005)

Decision Table: Boundary Threshold

TVobs.ctnc[0].ctnc[1].ctct_inhibition_deltadeltaproblemCovers
TV-002-00720252344nullAC: Delta equals threshold, no problem

REQ-RULES-INHCT-003: Fallback Controls

Decision Table: Fallback Activation

TVnc_count_original_mixbackup_mixesuse_fallbackCovers
TV-003-0010[Mix_A]trueAC: No original NC, use fallback
TV-003-0021[Mix_A]falseAC: Original NC exists, no fallback
TV-003-0030[]falseAC: No fallback configured

Decision Table: Fallback Evaluation

TVobs.mixobs.ctfallback_nc.ctct_inhibition_deltaproblemCovers
TV-003-004Mix_B25304IC_FAILEDAC: Fallback NC triggers problem
TV-003-005Mix_B25294nullAC: Fallback NC within threshold

Decision Table: Original Mix Priority

TVnc_count_originalnc_count_fallbacksource_usedCovers
TV-003-00611originalAC: Original mix takes priority

REQ-RULES-INHCT-004: Role Exclusion

Decision Table: Exclusion Flag Behavior

TVrole.exclude_from_ic_delta_checkrole_used_as_ncCovers
TV-004-001truefalseAC: Excluded role not used
TV-004-002falsetrueAC: Included role used
TV-004-003nulltrueAC: Null treated as false (included)

Decision Table: Exclusion Impact on Evaluation

TVnc_role.excludednc.ctobs.ctct_deltaproblemCovers
TV-004-004true3025-nullAC: Excluded NC ignored, no baseline
TV-004-005false30255IC_FAILEDAC: Included NC used for baseline

REQ-RULES-INHCT-005: No NC Error Handling

Decision Table: Error Trigger Conditions

TVnc_roles_excludednc_present_in_runfallback_availableerrorCovers
TV-005-001allyesnoIC_RULE_NO_NC_IN_RUNAC: All NC roles excluded
TV-005-002nonenonoIC_RULE_NO_NC_IN_RUNAC: No NC in run
TV-005-003allyesyes (no NC)IC_RULE_NO_NC_IN_RUNAC: Fallback also unavailable

Decision Table: Non-Error Cases

TVnc_roles_excludednc_present_in_runerrorCovers
TV-005-004someyesnullAC: At least one valid NC role
TV-005-005noneyesnullAC: NC available normally

Test Vector Summary by Requirement

REQ-RULES-INHCT-001 Test Vectors

TV IDDescriptionExpected Result
TV-001-001IC-type target evaluatedevaluated=true
TV-001-002Non-IC target skippedevaluated=false
TV-001-003Delta 5 > threshold 4IC_FAILED
TV-001-004Delta 4 = threshold 4No problem
TV-001-005Delta 3 < threshold 4No problem
TV-001-006Positive delta exceeds thresholdIC_FAILED
TV-001-007Negative delta exceeds threshold (abs)IC_FAILED
TV-001-008Delta from target configurationUses configured value

REQ-RULES-INHCT-002 Test Vectors

TV IDDescriptionExpected Result
TV-002-001Two NCs averagedavg=24
TV-002-002Single NCavg=NC value
TV-002-003Both NCs validavg includes both
TV-002-004One NC has erroravg excludes error NC
TV-002-005One NC has resolutionavg excludes resolved NC
TV-002-006All NCs excludedNo valid baseline
TV-002-007Delta equals thresholdNo problem

REQ-RULES-INHCT-003 Test Vectors

TV IDDescriptionExpected Result
TV-003-001No original NC, fallback existsUse fallback
TV-003-002Original NC existsNo fallback
TV-003-003No fallback configuredNo fallback source
TV-003-004Fallback NC triggers problemIC_FAILED
TV-003-005Fallback NC within thresholdNo problem
TV-003-006Both sources availableUse original only

REQ-RULES-INHCT-004 Test Vectors

TV IDDescriptionExpected Result
TV-004-001Role excludedNot used as NC
TV-004-002Role includedUsed as NC
TV-004-003Role flag nullTreated as included
TV-004-004Excluded NC ignoredNo baseline available
TV-004-005Included NC usedProblem assigned

REQ-RULES-INHCT-005 Test Vectors

TV IDDescriptionExpected Result
TV-005-001All NC roles excludedIC_RULE_NO_NC_IN_RUN
TV-005-002No NC in runIC_RULE_NO_NC_IN_RUN
TV-005-003Fallback also unavailableIC_RULE_NO_NC_IN_RUN
TV-005-004Some NC roles includedNo error
TV-005-005NC available normallyNo error

Automation Status

REQ IDStatusNotes
REQ-RULES-INHCT-001AutomatedCore threshold logic
REQ-RULES-INHCT-002AutomatedBaseline calculation
REQ-RULES-INHCT-003AutomatedFallback control logic
REQ-RULES-INHCT-004AutomatedRole exclusion
REQ-RULES-INHCT-005AutomatedError condition handling

Traceability to SRS

REQ IDSRS SectionJira References
REQ-RULES-INHCT-001FR-INHCT-001BT-3876, BT-3898
REQ-RULES-INHCT-002FR-INHCT-002-
REQ-RULES-INHCT-003FR-INHCT-003BT-4458
REQ-RULES-INHCT-004FR-INHCT-004BT-5287
REQ-RULES-INHCT-005FR-INHCT-005BT-5287

Gap Analysis

Identified Gaps

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

Coverage Notes

  1. Boundary conditions: TV-001-004 and TV-002-007 explicitly test the threshold boundary (delta equals threshold, no problem assigned)
  2. Absolute value: TV-001-006 and TV-001-007 verify both positive and negative deltas are compared using absolute value
  3. Exclusion cascade: TV-002-006 through TV-005-003 cover the cascade from NC exclusion to fallback to error
  4. Configuration defaults: TV-004-003 covers null exclusion flag treated as false