====== Execution Path ======
[[dido:99_annexes:annex-b-terms-and-definitions:start|Go up to Terms and Definitions]]
===== Discussion =====
An Execution Path is the actual progression through [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|Sequence Steps]] during [[dido:99_annexes:annex-b-terms-and-definitions:t:test_execution|Test Execution]].
A [[dido:99_annexes:annex-b-terms-and-definitions:t:test_sequence|Test Sequence]] defines the permitted progression through its Sequence Steps. An Execution Path identifies the progression that actually occurs during a particular [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run|Test Run]].
An Execution Path can identify:
* Its initial Sequence Steps
* Each performed Sequence Step
* The order in which Sequence Steps occurred
* Concurrent Sequence Steps
* Repeated Sequence Steps
* Skipped Sequence Steps
* Conditional branches taken
* Conditional branches not taken
* Error-handling branches taken
* The [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument_value|Test Argument Values]] supplied to each occurrence
* The [[dido:99_annexes:annex-b-terms-and-definitions:s:starting_condition|Starting Conditions]] applicable to each occurrence
* The [[dido:99_annexes:annex-b-terms-and-definitions:t:timing_condition|Timing Conditions]] applicable to each occurrence
* The start and completion time of each occurrence
* The event or condition that caused each progression
* The applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_result|Test Result]] for each occurrence
* The applicable [[dido:99_annexes:annex-b-terms-and-definitions:v:verdict|Verdict]] for each occurrence
* The point and cause of termination
* Its [[dido:99_annexes:annex-b-terms-and-definitions:p:provenance|Provenance]]
* Its [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|Traceability]]
An Execution Path can contain:
* Sequential progression
* Parallel progression
* Conditional progression
* Iterative progression
* Event-driven progression
* Error-handling progression
* A combination of progression types
===== Definition =====
//actual progression through [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|Sequence Steps]] during [[dido:99_annexes:annex-b-terms-and-definitions:t:test_execution|Test Execution]]//
===== Source =====
Adapted from:
* [[https://www.omg.org/spec/TestIF/1.0/Beta3/PDF|OMG Test Information Interchange Format (TestIF), Version 1.0 Beta 3, Sections 1.3, 7.3.4, and 7.3.14]]
* [[dido:99_annexes:annex-b-terms-and-definitions:t:test_sequence|Test Sequence]]
* [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|Sequence Step]]
* [[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 Reference Implementation Conceptual Model
* DIDO-TE draft Requirements Register
OMG TestIF defines TestSequence as a directed progression of SequenceSteps and permits progression to depend on the applicable Sequence Step relationships and conditions.
OMG TestIF discusses test paths but does not establish Execution Path as a separate TestIF model element. This definition introduces Execution Path to identify the Test Sequence progression that actually occurred during a particular Test Run.
===== Note =====
Use the singular glossary term Execution Path. Link plural usage to the same controlling page:
[[dido:99_annexes:annex-b-terms-and-definitions:e:execution_path|Execution Paths]]
An Execution Path differs from a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_sequence|Test Sequence]]:
* A Test Sequence defines permitted progression
* An Execution Path identifies the progression that actually occurred
A Test Sequence can permit multiple Execution Paths.
An Execution Path differs from a [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|Sequence Step]]:
* A Sequence Step identifies one position and occurrence within a Test Sequence
* An Execution Path identifies the actual progression through the performed Sequence Steps
An Execution Path differs from a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run|Test Run]]:
* An Execution Path identifies the actual progression
* A Test Run records the Execution Path, execution context, Test Results, Evidence, and related information for a particular occurrence of Test Execution
An Execution Path differs from a Test Result:
* An Execution Path identifies what progression occurred
* A Test Result records an outcome associated with a Sequenced Test Object or Sequence Step
A repeated Test Run does not necessarily follow the same Execution Path. Differences can result from:
* Different Test Argument Values
* Different Starting Conditions
* Different Test Results
* Different Verdicts
* Different Timing Conditions
* Timeouts
* Errors
* Concurrent behavior
* External events
* Nondeterministic behavior
The applicable Acceptance Criteria determine whether reproducible Test Execution requires:
* The same Execution Path
* An equivalent Execution Path
* Any permitted Execution Path
* A particular set of required Sequence Steps
* Exclusion of prohibited Execution Paths
Parallel progression does not always establish a single total ordering. An Execution Path can preserve a partial ordering that identifies concurrency and the required temporal relationships among Sequence Steps.
An Execution Path should preserve enough information to reconstruct:
* Which Sequence Steps occurred
* Which Sequence Steps did not occur
* The order or partial order of occurrence
* The Test Argument Values used
* The conditions that controlled progression
* The Test Results produced
* The reason Test Execution completed or terminated
===== Example =====
A Test Sequence permits the following progression:
* Sequence Step ''SS-01'' establishes a Node Set
* Sequence Step ''SS-02'' submits a transaction
* Sequence Steps ''SS-03A'', ''SS-03B'', and ''SS-03C'' observe three Nodes concurrently
* Sequence Step ''SS-04'' evaluates the Test Results when all three Nodes respond
* Sequence Step ''SS-05'' handles a timeout when one or more Nodes fail to respond
During one Test Run, all three Nodes respond. The Execution Path is:
* ''SS-01''
* ''SS-02''
* Concurrent occurrence of ''SS-03A'', ''SS-03B'', and ''SS-03C''
* ''SS-04''
During a repeated Test Run, Node C fails to respond. The Execution Path is:
* ''SS-01''
* ''SS-02''
* Concurrent occurrence of ''SS-03A'', ''SS-03B'', and ''SS-03C''
* ''SS-05''
The two Test Runs use the same Test Sequence but follow different Execution Paths. The Acceptance Criteria determine whether both Execution Paths satisfy the applicable Reproducibility requirement.
----
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.