From My perspective of the OMG’s UML Testing Profile
Conceptual Design Stage
The System Architecture description models and its sub-systems architecture description models own the test case conceptual design of each requirement having a SysML «Verify» dependency to a TestCase model element in version 1.4 of the language standard. A Test Case in the UML Testing Profile (UTP) extends the UML metaclasses behavior and operation. A Test Case ALWAYS returns a Verdict.
Each requirement subject to verification should have such a dependency
The TestCase is named and it has a dependency relationship to its TestObjectiveSpecification model element per the UTP v1.2
A TestRequirement model element may be used to refine the TestObjectiveSpecification model element and act as a bridge between the System of Interest model and the Test System model
Note: The UTP 2 specification addresses maturing concepts in these elements of a test specification
The TestObjectiveSpecification expresses the conceptual design of the TestCase in a natural language statement. This statement identifies the most important components of the TestCase from the perspective of the Accepting Stakeholder concerns. The components are: pre and invariant conditions of the system under test (SUT) environment, the SUT and its interacting Actors or Systems, their Input(s) to the SUT, the expected behavior of the SUT in response to its inputs.
This collection of components expresses the ‘acceptance criterion’ of the Accepting Stakeholder. A TestCase, satisfying its TestObjectiveSpecification, will produce objective evidence verifying, to the satisfaction of the Accepting Stakeholder, that the system requirement has been satisfied by the responsible system feature.
The goal of the Test Objective is to articulate an abstract, yet understandable and unambiguous description of the purpose of the TestCase. The TestObjectiveSpecification does not state ‘How’ to implement the TestCase. The conceptual design treats the TestCase as a “black box”
The Test System Architecture Imports the conceptual design of a TestCase as the foundation to the development of the Test Design Specification for the TestCase
A conceptual test case design may be realized by a collection of test cases by the Test System
Logical Design Stage
The Test Specification of the System Architecture has the responsibility for the Test Design Specification of each conceptual test case imported from the system architecture
A logical design identifies the components of a test case’s structure and behavior and their relationships.
The logical design activity is an iterative activity ending when a specification can be realized
Test Architecture and high level Test design is performed
Engineering tasks include: requirements analysis, evaluation, allocation and component specification
The role each component plays in its test case and its test objective responsibilities is defined and traced
A logical design should not specify concrete values for test data properties. Specify concepts for test data properties (e.g., inbounds, at Boundary, out of bounds, etc…)
Logical properties can be realized as concrete data values through transformation rules
Allocate a TestCase to it’s owning TestContext
A TestContext owns 1 or more TestCases having a common test configuration and a common composited TestObjectiveSpecification
Test component / SUT connections are detailed by the Test Configuration of the TestContext
Typically an internal block diagram when using SysML
Document the execution sequence/schedule of a TestContext’s TestCases
Specify requirements for: the Test Environment, Test Components, test tools, test data, etc…
The Test Case Specification is fully described and can be realized
Concrete Design Stage
The Test Specification of the System Architecture has the responsibility for the Test Case Specification of each test case specified by the Test Design Specification
Define test data pools, partitions and selectors
Detailed design and specification of test data values
Detailed design and specification of the test environment
The physical design of a test case defines component deployment in the test environment
Identify constraints / limitations of the test environment, data flows, or execution infrastructure
The Test Case Specification is complete when an implementation can be realized