Skip to main content
Version: 3.0.1

STD: Inhibition - Qualitative Rule (PICQUAL)

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/rules/rule-inhibition-qualitative.md Rule Name: PICQUAL Domain: RULES-INHQUAL


Overview

This document specifies tests for the Inhibition - Qualitative (PICQUAL) rule using decision tables and test vectors. The rule evaluates qualitative sample wells for suspected inhibition by examining Internal Control (IC) cycle threshold values and assigns appropriate error codes based on sample test history.

Rule Characteristics:

  • Pure business logic (no UI)
  • Sequential condition evaluation (IC CT → non-IC CT → quantity bypass → repeat/first-run)
  • Two distinct error codes based on sample history
  • Configurable thresholds (IC CT = 35, Quantity Cutoff = 10,000)

Test Method: TM-API (per Test Plan §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-INHQUAL-001Detect Inhibition in Qualitative Wells810100%None
REQ-RULES-INHQUAL-002Bypass Repeat Check When Quantity Meets Cutoff46100%None

Totals: 2 REQs, 12 Conditions, 16 Test Vectors, 100% Coverage


Input Variables

VariableTypeValid ValuesDescription
obs.targetstringIC, Non-ICObservation target type
obs.ctfloatnumeric (null if undetermined)Cycle threshold value
obs.classificationstringPos, Neg, Amb, ...Observation classification
obs.quantityfloatnumericQuantified value for observation
sample.mix_tested_beforebooltrue, falseWhether Sample/Mix combination has been tested previously
config.ic_ct_thresholdint35 (default)IC CT pass threshold
config.cutofffloat10,000 (default)CT cutoff for non-IC observations
config.quantity_cutofffloat10,000 (default)Quantity threshold for bypass

Output Variables

VariableTypeDescription
error_codestring?null, ICQUAL_INHN, or ICQUAL_FIRST_RUN
repeat_testing_flagboolWhether sample is marked for repeat testing

REQ-RULES-INHQUAL-001: Detect Inhibition in Qualitative Wells

Acceptance Criteria Summary

AC IDConditionExpected Outcome
AC-01IC CT <= 35No error
AC-02IC CT > 35 AND non-IC CT < CutOffNo error
AC-03IC CT > 35 AND no non-IC CT < CutOff AND repeat sampleError: ICQUAL_INHN
AC-04IC CT > 35 AND no non-IC CT < CutOff AND first runError: ICQUAL_FIRST_RUN
AC-05Rule mapped to IC targetConfiguration validation
AC-06Evaluation order: IC CT → non-IC CT → repeat/first-runSequential processing

Decision Table: IC CT Threshold Evaluation

TVic_ctexpected_errorearly_exitCovers
TV-001-00135nulltrueAC-01: IC CT at threshold boundary (pass)
TV-001-00234nulltrueAC-01: IC CT below threshold (pass)
TV-001-00336(continue)falseAC-01: IC CT above threshold (fail, continue evaluation)
TV-001-0040nulltrueAC-01: IC CT minimum boundary (pass)

Decision Table: Non-IC Amplification Check

Precondition: IC CT > 35

TVnon_ic_ctcutoffexpected_errorearly_exitCovers
TV-001-0053035nulltrueAC-02: Non-IC CT below cutoff (pass)
TV-001-00634.935nulltrueAC-02: Non-IC CT just below cutoff (pass)
TV-001-0073535(continue)falseAC-02: Non-IC CT at cutoff (fail, continue)
TV-001-0084035(continue)falseAC-02: Non-IC CT above cutoff (fail, continue)

Decision Table: Repeat/First-Run Error Assignment

Precondition: IC CT > 35 AND no non-IC CT < CutOff AND quantity < quantity_cutoff

TVmix_tested_beforeexpected_errorrepeat_flagCovers
TV-001-009trueICQUAL_INHNfalseAC-03: Repeat sample inhibited
TV-001-010falseICQUAL_FIRST_RUNtrueAC-04: First run inhibited

Decision Table: Complete Flow (End-to-End)

TVic_ctnon_ic_ctquantityqty_cutoffmix_testedexpected_errorCovers
TV-001-01135N/AN/A10000N/AnullAC-01: IC passes
TV-001-0123630N/A10000N/AnullAC-02: Non-IC passes
TV-001-01336401500010000N/AnullAC (REQ-002): Quantity bypass
TV-001-0143640500010000trueICQUAL_INHNAC-03: Repeat fails
TV-001-0153640500010000falseICQUAL_FIRST_RUNAC-04: First run fails

REQ-RULES-INHQUAL-002: Bypass Repeat Check When Quantity Meets Cutoff

Rule Disambiguation

This quantity bypass behavior belongs to the PICQUAL (qualitative inhibition) rule. Do not confuse it with PICQUANT (quantitative inhibition, see std-rule-inhibition-quantification.md), which has separate quantity-based evaluation logic. In PICQUAL, quantity >= cutoff bypasses the repeat/first-run check entirely (no error assigned); in PICQUANT, quantity evaluation serves a different purpose (evaluating quantitative sample inhibition).

Acceptance Criteria Summary

AC IDConditionExpected Outcome
AC-01Quantity >= cutoff (10,000)Skip repeat/first-run checks, no error
AC-02Quantity at boundary (10,000)No error
AC-03Quantity above boundary (10,001)No error
AC-04Default cutoff = 10,000Configuration validation

Decision Table: Quantity Bypass Evaluation

Precondition: IC CT > 35 AND no non-IC CT < CutOff

TVquantityquantity_cutoffmix_tested_beforeexpected_errorCovers
TV-002-0011000010000truenullAC-01, AC-02: Quantity at boundary (bypass)
TV-002-0021000010000falsenullAC-01, AC-02: Quantity at boundary (bypass, first run)
TV-002-0031000110000truenullAC-01, AC-03: Quantity above boundary (bypass)
TV-002-0041000110000falsenullAC-01, AC-03: Quantity above boundary (bypass, first run)
TV-002-005999910000trueICQUAL_INHNAC-01: Below cutoff, repeat sample
TV-002-006999910000falseICQUAL_FIRST_RUNAC-01: Below cutoff, first run

Decision Table: Configurable Cutoff Verification

TVquantityquantity_cutoffexpected_errorCovers
TV-002-00750005000nullAC-04: Custom cutoff at boundary
TV-002-00849995000(continue)AC-04: Custom cutoff below boundary

Boundary Value Analysis

IC CT Threshold Boundaries

TVic_ctNoteExpected
TV-BND-00134Below thresholdPass
TV-BND-00235At thresholdPass
TV-BND-00336Above thresholdContinue
TV-BND-00435.0001Just above (float precision)Continue

Quantity Cutoff Boundaries

TVquantityNoteExpected
TV-BND-0059999Below cutoffContinue to repeat check
TV-BND-00610000At cutoffBypass
TV-BND-00710001Above cutoffBypass

Error Handling

Test VectorScenarioExpected Behavior
TC-INHQUAL-ERR-001Well has no IC observationRule not triggered
TC-INHQUAL-ERR-002IC CT is null/undefinedRule not triggered
TC-INHQUAL-ERR-003No non-IC observations in wellProceed to quantity/repeat check

Traceability to Existing Tests

RequirementJira TestsAutomation Status
REQ-RULES-INHQUAL-001BT-5189, BT-5191, BT-5661Automated
REQ-RULES-INHQUAL-002None (Gap - fixtures required)Not Automated

Note: Original references to BT-674 and BT-4491 were incorrect. BT-674 tests CONTROL_FAIL rule. BT-4491 is a task for PICQUANT (quantitative) rule, not PICQUAL (qualitative).


Gap Analysis

Identified Gaps

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

Verification Checklist

  • All condition combinations have test vectors
  • Boundary values tested for IC CT threshold (35)
  • Boundary values tested for quantity cutoff (10,000)
  • Error codes verified (ICQUAL_INHN, ICQUAL_FIRST_RUN)
  • Early exit paths verified (IC pass, non-IC pass, quantity bypass)
  • Evaluation order verified
  • Configuration validation included