====== Test Execution Exception ====== [[dido:99_annexes:annex-b-terms-and-definitions:start|Go up to Terms and Definitions]] ===== Discussion ===== A Test Execution Exception identifies an event or condition that disrupts, prevents, or requires deviation from the defined progression of [[dido:99_annexes:annex-b-terms-and-definitions:t:test_execution|Test Execution]]. A Test Execution Exception can arise from: * An invalid [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument_value|Test Argument Value]] * An unsatisfied [[dido:99_annexes:annex-b-terms-and-definitions:s:starting_condition|Starting Condition]] * An unsatisfied [[dido:99_annexes:annex-b-terms-and-definitions:t:timing_condition|Timing Condition]] * Expiration of a [[dido:99_annexes:annex-b-terms-and-definitions:t:timeout|Timeout]] * An unavailable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_item|Test Item]] * An unavailable [[dido:99_annexes:annex-b-terms-and-definitions:n:node|Node]] * An unavailable [[dido:99_annexes:annex-b-terms-and-definitions:o:operational_resource|Operational Resource]] * An unavailable [[dido:99_annexes:annex-b-terms-and-definitions:e:execution_facility|Execution Facility]] * An unavailable [[dido:99_annexes:annex-b-terms-and-definitions:e:executable_artifact|Executable Artifact]] * An unsatisfied [[dido:99_annexes:annex-b-terms-and-definitions:d:dependency|Dependency]] * An invalid [[dido:99_annexes:annex-b-terms-and-definitions:c:configuration|Configuration]] * A communication failure * A resource failure * A security event * A policy violation * An invalid state transition * An unexpected [[dido:99_annexes:annex-b-terms-and-definitions:t:test_result|Test Result]] * An unauthorized operation * An external event * Another defined exceptional condition A Test Execution Exception can identify: * Its identity * Its name * Its description * Its exception type * Its severity * Its detection time * Its detection source * Its originating event or condition * The affected [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run|Test Run]] * The affected [[dido:99_annexes:annex-b-terms-and-definitions:t:test_sequence|Test Sequence]] * The affected [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|Sequence Step]] * The affected [[dido:99_annexes:annex-b-terms-and-definitions:t:test_step|Test Step]] * The affected [[dido:99_annexes:annex-b-terms-and-definitions:t:test_executable|Test Executable]] * The affected Operational Resources * The applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run_state|Test Run State]] * The applicable [[dido:99_annexes:annex-b-terms-and-definitions:e:exception_handling|Exception Handling]] * The applicable [[dido:99_annexes:annex-b-terms-and-definitions:g:governance_policy|Governance Policies]] * Its disposition * Its resulting Test Run State * Its applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run_termination_reason|Test Run Termination Reason]] * Its [[dido:99_annexes:annex-b-terms-and-definitions:e:evidence|Evidence]] * Its [[dido:99_annexes:annex-b-terms-and-definitions:p:provenance|Provenance]] * Its [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|Traceability]] A Test Execution Exception can cause DIDO-TE to: * Continue Test Execution * Retry an operation * Repeat a Sequence Step * Skip a permitted Sequence Step * Select an alternative [[dido:99_annexes:annex-b-terms-and-definitions:e:execution_path|Execution Path]] * Restore a defined state * Perform a compensating operation * Pause the Test Run * Resume the Test Run * Cancel the Test Run * Terminate the Test Run * Request an authorized [[dido:99_annexes:annex-b-terms-and-definitions:a:actor|Actor]] decision * Record the exception without changing the Test Run State The applicable Exception Handling determines the response to a detected Test Execution Exception. ===== Definition ===== //event or condition that disrupts, prevents, or requires deviation from the defined progression of [[dido:99_annexes:annex-b-terms-and-definitions:t:test_execution|Test Execution]]// ===== Source ===== Adapted from: * [[https://www.omg.org/spec/TestIF/1.0/PDF|OMG Test Information Interchange Format (TestIF), Version 1.0]] * [[dido:99_annexes:annex-b-terms-and-definitions:t:test_execution|Test Execution]] * [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run|Test Run]] * [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run_state|Test Run State]] * [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run_termination_reason|Test Run Termination Reason]] * [[dido:99_annexes:annex-b-terms-and-definitions:e:exception_handling|Exception Handling]] * DIDO Reference Implementation Conceptual Model * DIDO-TE draft Requirements Register OMG TestIF defines information used to describe and exchange testing activities and execution results. OMG TestIF does not define Test Execution Exception as a separate TestIF model element. This definition introduces the term to identify exceptional events and conditions affecting DIDO-TE Test Execution and to associate those events and conditions with their handling, resulting Test Run States, Test Results, Evidence, Provenance, and Traceability. ===== Note ===== A Test Execution Exception is specific to Test Execution. It does not mean: * An approved exception to a Governance Policy * A waiver from a Requirement * A legal or regulatory exception * A programming-language exception unless the programming-language exception affects Test Execution * Any unusual event unrelated to Test Execution A Test Execution Exception differs from an error: * An error identifies an incorrect state, value, action, or result * A Test Execution Exception identifies an event or condition requiring a Test Execution response An error can cause a Test Execution Exception. An error that does not affect Test Execution does not necessarily constitute a Test Execution Exception. A Test Execution Exception differs from a failure: * A failure identifies an inability to perform a required function or satisfy a required condition * A Test Execution Exception identifies the effect of an event or condition on Test Execution progression A failure can cause a Test Execution Exception. A Test Execution Exception does not necessarily indicate a failure. A Test Execution Exception differs from a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run_termination_reason|Test Run Termination Reason]]: * A Test Execution Exception identifies the event or condition affecting Test Execution * A Test Run Termination Reason classifies why the Test Run entered the Terminated Test Run State A handled Test Execution Exception does not necessarily terminate the Test Run. An unhandled or unrecoverable Test Execution Exception can cause a Test Run to enter the Terminated [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run_state|Test Run State]]. A single Test Execution Exception can result in: * No Test Run State transition * One Test Run State transition * Multiple Test Run State transitions * One or more additional Test Results * One or more additional Evidence records Multiple Test Execution Exceptions can contribute to one Test Run termination. The applicable [[dido:99_annexes:annex-b-terms-and-definitions:a:acceptance_criteria|Acceptance Criteria]] or Governance Policies should determine: * Which events and conditions constitute Test Execution Exceptions * How DIDO-TE classifies each Test Execution Exception * Which Exception Handling applies * Whether Test Execution can continue * Whether human intervention is permitted or required * Which Test Run State transition occurs * Which Test Run Termination Reason applies * Which Evidence DIDO-TE preserves ===== Example ===== A [[dido:99_annexes:annex-b-terms-and-definitions:t:test_step|Test Step]] requires a Node to return a response within 30 seconds. The Node does not return the response before the applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:timeout|Timeout]] expires. DIDO-TE detects a Test Execution Exception identifying: * The expired Timeout * The affected Test Run * The affected Sequence Step * The affected Test Step * The affected Node * The time of detection * The applicable Exception Handling The applicable Exception Handling permits one retry. If the retry succeeds, DIDO-TE continues Test Execution and records the Test Execution Exception and its disposition. If the retry does not succeed, DIDO-TE: * Changes the Test Run State from **Running** to **Terminated** * Assigns **Timed Out** as the Test Run Termination Reason * Identifies the Test Run as an [[dido:99_annexes:annex-b-terms-and-definitions:i:incomplete_test_run|Incomplete Test Run]] * Preserves the applicable Evidence * Maintains Provenance and Traceability ---- © 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.