Skip to main content
Version: Next

STD: Downward Sigmoid Control Rule (DSIGMOIDCTRL)

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/rules/rule-downward-sigmoid-control.md Rule Name: SIGMOID_CONTROL Domain: RULES-DSIGMOIDCTRL


Overview

This document specifies tests for the Downward Sigmoid Control rule using decision tables and test vectors. The rule evaluates sigmoid curve patterns in control sample contexts with support for classification problem handling and individual curve resolution for failed validations.

Rule Characteristics:

  • Inherits mathematical logic from Downward Sigmoid Rule (parent)
  • Classification problem support extends base sigmoid behavior
  • Individual curve resolution for failed validations
  • Error reporting in Run Summary Target/Mix messages

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. This format enables exhaustive condition coverage while remaining concise and auditable.


Coverage Summary

REQ IDTitleConditionsTest VectorsCoverageGaps
REQ-RULES-DSIGMOIDCTRL-001Sigmoid Control Rule Evaluation915100%None
REQ-RULES-DSIGMOIDCTRL-002Rule Failure Error Reporting47100%None

Totals: 2 REQs, 13 Conditions, 22 Test Vectors, 100% Coverage


REQ-RULES-DSIGMOIDCTRL-001: Sigmoid Control Rule Evaluation

Input Variables

VariableTypeValid ValuesDescription
curve.dataarrayfloat[]Curve data points for sigmoid fitting
curve.valid_sigmoidbooltrue, falseWhether curve passes sigmoid validation
obs.classification_problembooltrue, falseClassification problem scenario flag
curve.individual_resolution_successbooltrue, falseIndividual curve resolution outcome

Output Variables

VariableTypeDescription
rule.passedboolWhether the rule passed for this curve
curve.statusstringresolved, unresolvable
error.propagatedboolWhether error was sent to handler

Decision Table: Sigmoid Curve Validation (Mathematical Evaluation)

TVcurve.valid_sigmoidrule.passedCovers
TV-001-001truetrueAC: Curve passes sigmoid validation
TV-001-002false(see resolution)AC: Curve fails, triggers resolution

Decision Table: Classification Problem Handling

TVobs.classification_problemcurve.valid_sigmoidbehaviorCovers
TV-001-003falsetrueStandard passAC: No classification, pass
TV-001-004falsefalseStandard resolutionAC: No classification, fail triggers resolution
TV-001-005truetrueStandard passAC: Classification problem, pass
TV-001-006truefalseExtended resolutionAC: Classification problem extends base behavior

Decision Table: Individual Curve Resolution

TVcurve.valid_sigmoidcurve.individual_resolution_successrule.passedcurve.statuserror.propagatedCovers
TV-001-007falsetruetrueresolvedfalseAC: Resolution succeeds
TV-001-008falsefalsefalseunresolvabletrueAC: Resolution fails, mark unresolvable
TV-001-009trueN/AtrueN/AfalseAC: No resolution needed

Decision Table: Batch Independence

TVcurve_A.valid_sigmoidcurve_A.resolutioncurve_B.statuscurve_B.affectedCovers
TV-001-010falseattemptingvalidfalseAC: A resolution does not affect B
TV-001-011falsefailedvalidfalseAC: A failure does not affect B
TV-001-012falsesuccessvalidfalseAC: A success does not affect B

Decision Table: Gap Coverage — Classification Resolution and Batch Independence

TVScenariocurve.valid_sigmoidresolution_typerule.passedCovers
TV-DSIGMOIDCTRL-GAP-001Classification problem handling via individual curve resolutionfalseManual classification (Pos)true (after resolution)AC: Resolution resolves failing control
TV-DSIGMOIDCTRL-GAP-002Batch independence — one failing, one unaffected passing controlfalse (curve A)N/Afalse (A), true (B)AC: Failure isolated to single control
TV-DSIGMOIDCTRL-GAP-005Resolution success path on negative-control failurefalseManual classification (Neg)true (after resolution)AC: Neg resolution clears error

REQ-RULES-DSIGMOIDCTRL-002: Rule Failure Error Reporting

Input Variables

VariableTypeValid ValuesDescription
rule.passedbooltrue, falseRule evaluation outcome
obs.targetstringTarget identifierObservation target association
obs.wellstringWell identifier (e.g., A1)Observation well position
obs.indexint1, 2, 3, ...Observation index within well

Output Variables

VariableTypeDescription
run_summary.has_errorboolWhether error appears in Run Summary
run_summary.error_locationstringTarget/Mix message section
run_summary.error_contextstringIdentifies failed observation

Decision Table: Error Display Trigger

TVrule.passedrun_summary.has_errorCovers
TV-002-001truefalseAC: Pass produces no error
TV-002-002falsetrueAC: Failure produces error in Run Summary

Decision Table: Error Message Location and Context

TVrule.passedrun_summary.error_locationrun_summary.error_contextCovers
TV-002-003falseTarget/Mix messagesContains target and observation IDAC: Error in Target/Mix section
TV-002-004falseTarget/Mix messages"[Target Name]: Sigmoid control rule failed for observation [N]"AC: Error identifies observation

Decision Table: Multiple Observation Failures

TVobs_1.rule.passedobs_2.rule.passederror_countcontexts_distinctCovers
TV-002-005falsefalse2trueAC: Each failure reported with its observation context
TV-DSIGMOIDCTRL-GAP-003falsefalse1trueAC: Failing control adds INCORRECT_SIGMOID_TARGET in target/mix context
TV-DSIGMOIDCTRL-GAP-004falsefalse2trueAC: Multiple failing observations reported with distinct target contexts

Traceability to Existing Tests

RequirementJira TestsStatus
REQ-RULES-DSIGMOIDCTRL-001BT-4914, BT-4916Existing
REQ-RULES-DSIGMOIDCTRL-002PendingGap

Implementation Notes

Automation Status

RequirementAutomation StatusNotes
REQ-RULES-DSIGMOIDCTRL-001AutomatedBT-4916 covers individual curve resolution
REQ-RULES-DSIGMOIDCTRL-002PendingRequires test implementation

Test Data Requirements

  1. Valid sigmoid curves: Curves that pass sigmoid fitting validation
  2. Invalid sigmoid curves: Curves that fail initial validation but may resolve individually
  3. Unresolvable curves: Curves that fail both initial and individual resolution
  4. Classification problem scenarios: Observations flagged with classification problems

Gap Analysis

Identified Gaps

GapRequirementDescriptionPriorityOwner
GAP-001REQ-RULES-DSIGMOIDCTRL-002No Jira test ticket for error reporting in Run SummaryHighTBD

Remediation Plan

  1. GAP-001: Create test ticket covering TV-002-001 through TV-002-005 for Run Summary error display verification