====== Exception Handling ====== [[dido:99_annexes:annex-b-terms-and-definitions:start|Go up to Terms and Definitions]] ===== Discussion ===== Exception Handling identifies the defined processing performed in response to a detected [[dido:99_annexes:annex-b-terms-and-definitions:t:test_execution_exception|Test Execution Exception]]. Exception Handling can require DIDO-TE to: * Record the Test Execution Exception * Classify the Test Execution Exception * Continue [[dido:99_annexes:annex-b-terms-and-definitions:t:test_execution|Test Execution]] * Retry an operation * Repeat a [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|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 * Isolate an affected [[dido:99_annexes:annex-b-terms-and-definitions:n:node|Node]] * Replace an affected [[dido:99_annexes:annex-b-terms-and-definitions:o:operational_resource|Operational Resource]] * Pause the [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run|Test Run]] * Resume the Test Run * Cancel the Test Run * Terminate the Test Run * Notify an authorized [[dido:99_annexes:annex-b-terms-and-definitions:a:actor|Actor]] * Request an authorized Actor decision * Generate a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_result|Test Result]] * Assign or request a [[dido:99_annexes:annex-b-terms-and-definitions:v:verdict|Verdict]] * Preserve [[dido:99_annexes:annex-b-terms-and-definitions:e:evidence|Evidence]] Exception Handling can identify: * Its identity * Its name * Its description * Its applicable Test Execution Exception types * Its applicable exception severity * Its applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run_state|Test Run States]] * Its entry conditions * Its handling operations * Its permitted retries * Its retry interval * Its applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:timeout|Timeouts]] * Its permitted Execution Paths * Its recovery conditions * Its escalation conditions * Its completion condition * Its failure condition * 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 applicable notification requirements * Its applicable authorization requirements * Its applicable [[dido:99_annexes:annex-b-terms-and-definitions:g:governance_policy|Governance Policies]] * Its required 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]] Exception Handling can be defined by: * A [[dido:99_annexes:annex-b-terms-and-definitions:t:test_definition|Test Definition]] * A [[dido:99_annexes:annex-b-terms-and-definitions:t:test_sequence|Test Sequence]] * A Sequence Step * A [[dido:99_annexes:annex-b-terms-and-definitions:t:test_step|Test Step]] * A [[dido:99_annexes:annex-b-terms-and-definitions:t:test_executable|Test Executable]] * A Governance Policy * The applicable [[dido:99_annexes:annex-b-terms-and-definitions:a:acceptance_criteria|Acceptance Criteria]] * Another controlling specification When more than one Exception Handling definition applies, the applicable Governance Policies or Acceptance Criteria determine precedence and conflict resolution. ===== Definition ===== //defined processing performed in response to a detected [[dido:99_annexes:annex-b-terms-and-definitions:t:test_execution_exception|Test Execution Exception]]// ===== 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:t:test_execution_exception|Test Execution Exception]] * DIDO Reference Implementation Conceptual Model * DIDO-TE draft Requirements Register OMG TestIF defines information used to describe Test Sequences, Test Steps, Test Executables, Test Runs, and Test Results. OMG TestIF does not define Exception Handling as a separate TestIF model element. This definition introduces Exception Handling to specify how DIDO-TE responds to Test Execution Exceptions and how those responses affect Test Execution, Test Run States, Test Results, Evidence, Provenance, and Traceability. ===== Note ===== Exception Handling differs from a Test Execution Exception: * A Test Execution Exception identifies an event or condition affecting Test Execution * Exception Handling identifies the defined response to the Test Execution Exception Exception Handling differs from a Test Run Termination Reason: * Exception Handling specifies the processing performed in response to a Test Execution Exception * A Test Run Termination Reason identifies why a Test Run entered the Terminated Test Run State Exception Handling does not necessarily terminate Test Execution. Successful Exception Handling can: * Resolve the Test Execution Exception * Restore the required state * Permit Test Execution to continue * Preserve the current Test Run State * Return a paused Test Run to the Running state Unsuccessful Exception Handling can cause a Test Run to: * Remain Paused * Enter the Terminated Test Run State * Become an [[dido:99_annexes:annex-b-terms-and-definitions:i:incomplete_test_run|Incomplete Test Run]] Automated Exception Handling does not require human intervention. Exception Handling requiring an authorized Actor decision is not fully automated during the period in which Test Execution waits for that decision. A human notification does not by itself constitute human intervention. A human response affecting Test Execution constitutes human intervention. Exception Handling can preserve Test Results produced before, during, or after the Test Execution Exception. The applicable Acceptance Criteria determine whether Test Results affected by a Test Execution Exception can be used for: * Analysis * Diagnosis * Comparison * Regression analysis * [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baseline]] establishment * [[dido:99_annexes:annex-b-terms-and-definitions:v:validation|Validation]] * A [[dido:99_annexes:annex-b-terms-and-definitions:v:validation_decision|Validation Decision]] Exception Handling should identify bounded retry behavior. An unlimited retry instruction does not provide an objectively verifiable completion or termination condition. When Exception Handling permits multiple responses, it should identify the conditions governing selection of each response. Exception Handling should preserve Traceability among: * The detected Test Execution Exception * The controlling Exception Handling definition * The processing performed * The affected Test Run * The preceding and resulting Test Run States * The applicable Test Run Termination Reason * The resulting Test Results * The supporting Evidence ===== Example ===== A Test Execution Exception occurs when an Execution Facility becomes temporarily unavailable during a Sequence Step. The applicable Exception Handling requires DIDO-TE to: * Record the Test Execution Exception * Pause the Test Run * Attempt to restore the Execution Facility * Retry restoration no more than three times * Wait ten seconds between retry attempts * Resume the Test Run when the Execution Facility becomes available * Terminate the Test Run when the third retry fails * Notify the applicable Actor * Preserve the supporting Evidence The Execution Facility becomes available during the second retry. DIDO-TE: * Changes the Test Run State from **Running** to **Paused** * Restores the Execution Facility * Changes the Test Run State from **Paused** to **Running** * Repeats the affected Sequence Step * Continues Test Execution * Records the Exception Handling performed * Preserves Evidence, Provenance, and Traceability Because the Exception Handling succeeds, the Test Run does not enter the Terminated Test Run State and does not receive a Test Run Termination Reason. ---- © 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.