====== Test Executable ====== [[dido:99_annexes:annex-b-terms-and-definitions:start|Go up to Terms and Definitions]] ===== Discussion ===== A Test Executable contains or references executable instructions that implement a test action or validation. As a [[dido:99_annexes:annex-b-terms-and-definitions:s:sequenced_test_object|Sequenced Test Object]], a Test Executable can participate in a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_sequence|Test Sequence]]. A Test Executable can implement an action or validation specified by a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_step|Test Step]]. Executable instructions can include: * Source code * Compiled code * Scripts * Commands * Declarative automation * Tool-specific procedures * Test-framework instructions * Executable models * Service requests * Hardware-control instructions * References to externally maintained executable artifacts A Test Executable can identify: * Its identity * Its name * Its description * Its version * Its executable instructions * Its executable type * Its language or format * Its entry point * Its applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument|Test Arguments]] * Its applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument_value|Test Argument Values]] * Its produced outputs * Its applicable [[dido:99_annexes:annex-b-terms-and-definitions:e:expected_result|Expected Results]] * Its required dependencies * Its required execution facilities * Its applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_item|Test Items]] * Its applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_environment|Test Environments]] * Its completion condition * Its failure condition * Its timeout * Its applicable [[dido:99_annexes:annex-b-terms-and-definitions:g:governance_policy|Governance Policies]] * 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 [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|Sequence Step]] identifies the occurrence of a Test Executable at a particular position within a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_sequence|Test Sequence]]. The same Test Executable can participate in multiple [[dido:99_annexes:annex-b-terms-and-definitions:t:test_sequence|Test Sequences]] or occur more than once within the same Test Sequence. Each Sequence Step can supply the applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument_value|Test Argument Values]] and [[dido:99_annexes:annex-b-terms-and-definitions:e:expected_result|Expected Results]] for that occurrence. ===== Definition ===== //[[dido:99_annexes:annex-b-terms-and-definitions:s:sequenced_test_object|Sequenced Test Object]] that contains or references executable instructions implementing a test action or validation// ===== Source ===== Adapted from: * [[https://www.omg.org/spec/TestIF/1.0/Beta3/PDF|OMG Test Information Interchange Format (TestIF), Version 1.0 Beta 3, Section 7.3.7, TestExecutable]] * [[dido:99_annexes:annex-b-terms-and-definitions:t:test_object|Test Object]] * [[dido:99_annexes:annex-b-terms-and-definitions:s:sequenced_test_object|Sequenced Test Object]] * [[dido:99_annexes:annex-b-terms-and-definitions:t:test_step|Test Step]] * [[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_argument|Test Argument]] * [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument_value|Test Argument Value]] * DIDO Reference Implementation Conceptual Model * DIDO-TE draft Requirements Register OMG TestIF defines TestExecutable as a SequencedTestObject used for low-level procedural definitions, including code and scripts intended for test automation. This definition preserves that automation role while allowing the executable information to reside within the Test Executable or in an independently managed artifact referenced by it. ===== Note ===== Every Test Executable is a [[dido:99_annexes:annex-b-terms-and-definitions:s:sequenced_test_object|Sequenced Test Object]] and therefore a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_object|Test Object]]. A Test Executable differs from 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_step|Test Step]] specifies an action or validation independently of a particular execution mechanism * A Test Executable contains or references the executable instructions implementing an action or validation A Test Step can have: * No Test Executable when a human or external process performs the Test Step * One Test Executable when one executable artifact implements the Test Step * Multiple Test Executables when different tools, platforms, or [[dido:99_annexes:annex-b-terms-and-definitions:t:test_environment|Test Environments]] require different realizations A Test Executable differs from a [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|Sequence Step]]: * A Test Executable identifies reusable executable instructions * A [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|Sequence Step]] identifies an occurrence of a [[dido:99_annexes:annex-b-terms-and-definitions:s:sequenced_test_object|Sequenced Test Object]] within a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_sequence|Test Sequence]] A Test Executable differs from a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_result|Test Result]]: * A Test Executable identifies the executable instructions used 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_result|Test Result]] records an outcome produced by Test Execution A Test Executable can define [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument|Test Arguments]] representing its input and output interface. A Test Executable does not assign occurrence-specific values to those Test Arguments. A [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|Sequence Step]] supplies the applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument_value|Test Argument Values]] for a particular occurrence of the Test Executable within a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_sequence|Test Sequence]]. A Test Executable can depend on a particular tool, programming language, operating system, processor architecture, or execution facility. The associated [[dido:99_annexes:annex-b-terms-and-definitions:t:test_step|Test Step]] should remain independent of those implementation details when the action or validation can be expressed independently. A change to the executable instructions, referenced artifact, dependency, entry point, [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument|Test Argument]] interface, or execution requirements can create a new Test Executable version. A reproducible [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run|Test Run]] should identify: * The exact Test Executable identity and version * The referenced executable artifact * The executable artifact digest * The applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument|Test Arguments]] * The applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument_value|Test Argument Values]] * Every executable dependency used during [[dido:99_annexes:annex-b-terms-and-definitions:t:test_execution|Test Execution]] ===== Example ===== A [[dido:99_annexes:annex-b-terms-and-definitions:t:test_case|Test Case]] contains a [[dido:99_annexes:annex-b-terms-and-definitions:t:test_step|Test Step]] requiring submission of a proposed [[dido:99_annexes:annex-b-terms-and-definitions:d:dido|DIDO]] transaction. A Test Executable references a versioned script that: * Connects to the applicable [[dido:99_annexes:annex-b-terms-and-definitions:n:node|Node]] * Submits the proposed transaction * Records the transaction identifier * Returns the submission status The Test Executable defines: * ''transaction'' as a required input [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument|Test Argument]] * ''targetNode'' as a required input [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument|Test Argument]] * ''submissionIdentifier'' as an output [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument|Test Argument]] * ''submissionStatus'' as an output [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument|Test Argument]] A [[dido:99_annexes:annex-b-terms-and-definitions:s:sequence_step|Sequence Step]] references the Test Executable and supplies: * The proposed transaction as the [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument_value|Test Argument Value]] for ''transaction'' * The applicable [[dido:99_annexes:annex-b-terms-and-definitions:n:node|Node]] identity as the Test Argument Value for ''targetNode'' During [[dido:99_annexes:annex-b-terms-and-definitions:t:test_execution|Test Execution]], the [[dido:99_annexes:annex-b-terms-and-definitions:t:test_run|Test Run]] records: * The Test Executable identity and version * The referenced executable artifact * The executable artifact digest * The input [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument_value|Test Argument Values]] * The output [[dido:99_annexes:annex-b-terms-and-definitions:t:test_argument_value|Test Argument Values]] * The applicable [[dido:99_annexes:annex-b-terms-and-definitions:t:test_environment|Test Environment]] * The resulting [[dido:99_annexes:annex-b-terms-and-definitions:t:test_result|Test Result]] * The supporting [[dido:99_annexes:annex-b-terms-and-definitions:e:evidence|Evidence]] ---- © 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.