Skip to main content
Version: Next

STD: Managing Inconclusive Rule (INCONCLUSIVE)

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


Overview

This document specifies tests for the Managing Inconclusive rule using decision tables and test vectors. The rule detects inconclusive sample results by identifying wells where exactly one Non-IC target has a Positive classification, then applies the WELL_INCONCLUSIVE error code.

Rule Characteristics:

  • Pure business logic (no UI)
  • Target filtering (excludes IC and passive targets)
  • Single trigger condition (exactly one Non-IC Positive)
  • Binary output (error applied or not)

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-INCONCLUSIVE-001Generate Inconclusive Sample Error814100%None

Totals: 1 REQ, 8 Conditions, 14 Test Vectors, 100% Coverage


REQ-RULES-INCONCLUSIVE-001: Generate Inconclusive Sample Error

Input Variables

VariableTypeValid ValuesDescription
rule_enabledbooltrue, falseWhether INCONCLUSIVE rule is enabled for assay
targetsarrayWell target listAll targets in the well
target.clsstringPositive, Negative, Ambiguous, ...Target classification
target.is_icbooltrue, falseWhether target is Internal Control
target.is_passivebooltrue, falseWhether target is passive
non_ic_positive_countint0, 1, 2, ...Count of Non-IC targets with Positive CLS

Output Variables

VariableTypeDescription
error_appliedboolWhether WELL_INCONCLUSIVE was applied
well.error_codestring?WELL_INCONCLUSIVE or null
bulk_manage_visibleboolWhether well is flagged for bulk management

Decision Table: Rule Enablement

TVrule_enabledtargetsevaluatedCovers
TV-001-001true[T1(Pos)]trueAC: Rule evaluates when enabled
TV-001-002false[T1(Pos)]falseAC: Rule skipped when disabled

Decision Table: IC Target Exclusion

TVtarget.is_ictarget.clscounted_in_triggerCovers
TV-001-003falsePositiveyesAC: Non-IC Positive counted
TV-001-004truePositivenoAC: IC targets excluded
TV-001-005trueNegativenoAC: IC targets excluded
TV-001-006falseNegativenoAC: Non-IC Negative not counted

Decision Table: Passive Target Exclusion

TVtarget.is_passivetarget.clscounted_in_triggerCovers
TV-001-007falsePositiveyesAC: Active target counted
TV-001-008truePositivenoAC: Passive target excluded
TV-001-009trueNegativenoAC: Passive target excluded

Decision Table: Trigger Condition (Non-IC Positive Count)

TVnon_ic_positive_counterror_appliedwell.error_codeCovers
TV-001-0100falsenullAC: Zero Positive = no error
TV-001-0111trueWELL_INCONCLUSIVEAC: Exactly one Positive = error
TV-001-0122falsenullAC: More than one Positive = no error
TV-001-0133falsenullAC: More than one Positive = no error

Decision Table: Bulk Management Integration

TVerror_appliedbulk_manage_visibleCovers
TV-001-014truetrueAC: Error flags well for bulk management

Decision Table: Combined Scenarios

TVrule_enabledtargetsexpected_errorreasonCovers
TV-001-015true[IC(Pos), T1(Pos)]WELL_INCONCLUSIVEIC excluded, 1 Non-IC PosAC: IC exclusion + trigger
TV-001-016true[Passive(Pos), T1(Pos)]WELL_INCONCLUSIVEPassive excluded, 1 Non-IC PosAC: Passive exclusion + trigger
TV-001-017true[IC(Pos), Passive(Pos), T1(Pos)]WELL_INCONCLUSIVEBoth excluded, 1 Non-IC PosAC: Combined exclusions
TV-001-018true[T1(Pos), T2(Pos)]null2 Non-IC Pos = no errorAC: Multiple Positive
TV-001-019true[T1(Neg), T2(Neg)]null0 Non-IC Pos = no errorAC: No Positive
TV-001-020true[IC(Pos), IC(Pos), T1(Neg)]nullIC excluded, 0 Non-IC PosAC: IC exclusion, no trigger

Boundary Value Analysis

BoundaryTest VectorDescription
Exactly 1 PositiveTV-001-011Lower boundary where error triggers
Zero PositiveTV-001-010Below trigger threshold
Two PositiveTV-001-012Above trigger threshold

Test File Locations

RequirementTest FileAutomation Status
REQ-RULES-INCONCLUSIVE-001tests/Unit/Rules/InconclusiveRuleTest.phpAutomated

Traceability to Existing Tests

RequirementJira TestsStatus
REQ-RULES-INCONCLUSIVE-001BT-5202Existing

Gap Analysis

Identified Gaps

GapRequirementDescriptionPriorityOwner
None----

All acceptance criteria are covered by test vectors. The existing Jira ticket BT-5202 provides traceability to implementation tests.