Skip to main content
Version: Next

STD: Positive Sigmoid Rule (POSSIGMOID)

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/rules/rule-positive-sigmoid.md Rule Name: POSITIVE_SIGMOID Domain: RULES-POSSIGMOID


Overview

This document specifies tests for the Positive Sigmoid rule using decision tables and test vectors. The rule validates that wells with a positive final classification exhibit the expected upward sigmoid curve shape and flags errors when an incorrect downward pattern is detected.

Rule Characteristics:

  • Pure business logic (no UI)
  • Skip conditions evaluated first (manual classification, resolution code)
  • Error codes assigned at both well and target levels
  • Part of sigmoid rule validation suite (companion: NEGATIVE_SIGMOID)

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-POSSIGMOID-001Core Sigmoid Validation44100%None
REQ-RULES-POSSIGMOID-002Skip on Resolution Code22100%None
REQ-RULES-POSSIGMOID-003Skip on Manual Classification22100%None

Totals: 3 REQs, 8 Conditions, 8 Test Vectors, 100% Coverage


Input Variables

VariableTypeValid ValuesDescription
sigmoid_directionenumupward, downwardDirection of the sigmoid curve
final_clsenumpositive, negativeFinal classification assigned to the well
resolution_codestringPOSITIVE_SIGMOID, nullResolution code applied to the well
manual_clsstringany value, nullManual classification assigned by user

Output Variables

VariableTypeDescription
well.error_codestring?INCORRECT_POSITIVE_SIGMOID or null
target.error_codestring?INCORRECT_POSITIVE_SIGMOID_TARGET or null

REQ-RULES-POSSIGMOID-001: Core Sigmoid Validation

Decision Table: Sigmoid Direction vs Classification

This table covers the core rule logic: detect incorrect sigmoid curve direction on positive wells.

TVsigmoid_directionfinal_clswell.error_codetarget.error_codeCovers
TV-001-001downwardpositiveINCORRECT_POSITIVE_SIGMOIDINCORRECT_POSITIVE_SIGMOID_TARGETAC: Error Detection - downward on positive triggers error
TV-001-002upwardpositivenullnullAC: Correct Pattern - upward on positive passes
TV-001-003downwardnegativenullnullAC: Scope Exclusion - negative wells out of scope
TV-001-004upwardnegativenullnullAC: Scope Exclusion - negative wells out of scope

Notes:

  • TV-001-001 validates the primary error detection capability
  • TV-001-002 validates that correct patterns do not trigger errors
  • TV-001-003 and TV-001-004 validate that negative wells are excluded from this rule's scope (handled by NEGATIVE_SIGMOID rule instead)

REQ-RULES-POSSIGMOID-002: Skip on Resolution Code

Decision Table: Resolution Code Skip Behavior

This table covers the skip condition when resolution code POSITIVE_SIGMOID is present.

TVsigmoid_directionfinal_clsresolution_codewell.error_codetarget.error_codeCovers
TV-002-001downwardpositivePOSITIVE_SIGMOIDnullnullAC: Resolution code skips rule - no error assigned
TV-002-002downwardpositivenullINCORRECT_POSITIVE_SIGMOIDINCORRECT_POSITIVE_SIGMOID_TARGETAC: No resolution code - error assigned

Notes:

  • TV-002-001 validates that the resolution code POSITIVE_SIGMOID acknowledges and dismisses the error
  • TV-002-002 serves as control case showing error is assigned without the resolution code

REQ-RULES-POSSIGMOID-003: Skip on Manual Classification

Decision Table: Manual Classification Skip Behavior

This table covers the skip condition when manual classification is present.

TVsigmoid_directionfinal_clsmanual_clswell.error_codetarget.error_codeCovers
TV-003-001downwardpositivepositivenullnullAC: Manual classification skips rule - no error
TV-003-002downwardpositivenullINCORRECT_POSITIVE_SIGMOIDINCORRECT_POSITIVE_SIGMOID_TARGETAC: No manual classification - error assigned

Notes:

  • TV-003-001 validates that any manual classification (regardless of value) bypasses automated validation
  • TV-003-002 serves as control case showing error is assigned without manual classification
  • Per SRS: "The skip shall apply regardless of what value the manual classification is set to"

Composite Decision Table: Skip Precedence

This composite table demonstrates the evaluation order when multiple conditions are present.

TVsigmoid_directionfinal_clsmanual_clsresolution_codewell.error_codetarget.error_codeNotes
TV-COMP-001downwardpositivepositivePOSITIVE_SIGMOIDnullnullBoth skip conditions present - skipped
TV-COMP-002downwardpositivepositivenullnullnullManual only - skipped
TV-COMP-003downwardpositivenullPOSITIVE_SIGMOIDnullnullResolution only - skipped
TV-COMP-004downwardpositivenullnullINCORRECT_POSITIVE_SIGMOIDINCORRECT_POSITIVE_SIGMOID_TARGETNo skip conditions - error

Evaluation Order (per SRS flowchart):

  1. Check manual classification (if present, skip)
  2. Check resolution code (if present, skip)
  3. Check final_cls (if not positive, skip)
  4. Check sigmoid direction (if downward, assign error)

Traceability to Existing Tests

RequirementJira TestsAutomation Status
REQ-RULES-POSSIGMOID-001BT-5021Automated
REQ-RULES-POSSIGMOID-002PendingAutomated
REQ-RULES-POSSIGMOID-003PendingAutomated

Gap Analysis

Identified Gaps

GapRequirementDescriptionPriorityOwner
GAP-001REQ-RULES-POSSIGMOID-002No Jira test ticket for resolution code skip behaviorMediumTBD
GAP-002REQ-RULES-POSSIGMOID-003No Jira test ticket for manual classification skip behaviorMediumTBD

Remediation Plan

  1. GAP-001: Create test ticket covering TV-002-001 and TV-002-002
  2. GAP-002: Create test ticket covering TV-003-001 and TV-003-002