STD: Multiple Wells Combined Outcome Rule (MWCOMBOUT)
Version: v1.0.0
Status: Draft
SRS Source: docusaurus/docs/srs/rules/rule-multiple-wells-combined-outcome.md
Rule Name: MULTIPLE_WELLS_COMBINED_OUTCOME
Domain: RULES-MWCOMBOUT
Overview
This document specifies tests for the Multiple Wells Combined Outcome rule using decision tables and test vectors. The rule gates combined outcome assignment based on whether the combined outcome has multiple mix results (count > 1).
Rule Characteristics:
- Pure business logic (no UI)
- Simple threshold check (mix results count > 1)
- Binary output (allow/deny assignment)
- Fixed threshold (not configurable)
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 ID | Title | Conditions | Test Vectors | Coverage | Gaps |
|---|
| REQ-RULES-MWCOMBOUT-001 | Multiple Wells Combined Outcome Rule Execution | 5 | 8 | 100% | None |
Totals: 1 REQ, 5 Conditions, 8 Test Vectors, 100% Coverage
REQ-RULES-MWCOMBOUT-001: Multiple Wells Combined Outcome Rule Execution
| Variable | Type | Valid Values | Description |
|---|
combined_outcome | object | Configured outcome | Combined outcome configuration |
well | object | Well with association | Well associated with combined outcome |
mix_results_count | int | 0, 1, 2, 3, ... | Number of mix results for the combined outcome |
Output Variables
| Variable | Type | Description |
|---|
outcome_assigned | bool | Whether the combined outcome was assigned to the well |
Decision Table: Rule Identification
| TV | Rule Name | Valid | Covers |
|---|
| TV-001-001 | MULTIPLE_WELLS_COMBINED_OUTCOME | true | AC: Rule identification |
Decision Table: Mix Results Count Threshold
| TV | mix_results_count | outcome_assigned | Covers |
|---|
| TV-001-002 | 0 | false | AC: Edge case - no results |
| TV-001-003 | 1 | false | AC: Single result - no assignment |
| TV-001-004 | 2 | true | AC: Boundary - minimum for assignment |
| TV-001-005 | 3 | true | AC: Multiple results - assignment |
| TV-001-006 | 100 | true | AC: Large count - assignment |
Decision Table: Combined Scenarios
| TV | Scenario | mix_results_count | outcome_assigned | well_receives_outcome | Covers |
|---|
| TV-001-007 | Single sample data | 1 | false | No | AC: Prevents false-positive combined outcomes |
| TV-001-008 | Multi-well aggregation | 2 | true | Yes | AC: Proper multi-sample aggregation |
Automation Status
| REQ ID | Test Vectors | Automation Status | Notes |
|---|
| REQ-RULES-MWCOMBOUT-001 | TV-001-001 to TV-001-008 | Automated | Data-driven threshold tests |
Traceability to Existing Tests
| Requirement | Jira Tests | Config | Status |
|---|
| REQ-RULES-MWCOMBOUT-001 | BT-5131 | v30 | Existing |
| REQ-RULES-MWCOMBOUT-001 | BT-5707 | v30 | Existing |
| REQ-RULES-MWCOMBOUT-001 | BT-5632 | v30 | Existing |
| REQ-RULES-MWCOMBOUT-001 | BT-5687 | v30 | Existing |
| REQ-RULES-MWCOMBOUT-001 | BT-5128 | v2 | Existing |
| REQ-RULES-MWCOMBOUT-001 | BT-5130 | v2 | Existing |
| REQ-RULES-MWCOMBOUT-001 | BT-5135 | v2 | Existing |
Gap Analysis
Identified Gaps
| Gap | Requirement | Description | Priority | Owner |
|---|
| None | - | All acceptance criteria covered by test vectors | - | - |
Open Questions from SRS
| ID | Question | Test Impact |
|---|
| OQ-001 | Should the >1 threshold be configurable? | If made configurable, add test vectors for threshold variation |
| OQ-002 | Error handling for count = 0 not specified | TV-001-002 assumes no assignment; verify behavior |