Environments in IBM Engineering Test Management

Introduction

IBM Engineering Lifecycle Management platform consists of several domain specific solutions, Engineering Test Management (ETM) being one of these solutions. Out of its capabilities, Envionment Management in ETM might considered to be an undervalued feature.

It can be considered to be as an undeniable fact that the importance of test management is growing along with the complexity of the projects. Teams not only should be concerned about the Requirement – Test coverage in a one dimensional traceability space, but should also be concerned about the status of the verification of the requirements as well as the second dimension to the traceability. Which might be simply depicted in the figure below:

Image
Figure 1: Verification of Requirements

Where, the trace between requirement and test case presents a very basic traceability from requirement and test case coverage point of view. However, including the test results to this concept will enhance the information we can get out of traceability, because it is not enough now to have a test case, it is also important for the requirement to pass the tests.

But this still, cannot be the whole story. Because in a typical system development scenario, it should not be enough that the requirement has passed the verification scenario. Has it passed the verification scenario in some mandatory conditions? Especially, the conditions that we cannot control within the system but the system still interacts with. Hence, has the system been verified according to its intended use environment? In other words, what about the third dimension?

Image
Figure 2: Verification of Requirements Agains Different Conditions

Accoding to this figure, what could be the verdict of the requirement’s verification? Wouldn’t it be misleading if the latest result was collected in Summer? Is there a risk that the previous failed cases will be shadowed by the latest successful result?

In this article, we would like to highlight a very rich, yet undermined feature that IBM ETM proposes to manage the verification of requirements for different conditions.

Test Environments in IBM ETM

A Test environment refers to the setup where testing activities take place. For testing of software, it typically includes the hardware, software, network configurations, and any necessary system dependencies required to run tests. However if a system is considered instead of being pure software, the definition of “environment” would be quite extended. It can be generalized to be the outside conditions that the system is in interaction with or affected by. For instance for an atomspheric combustion engine, the air pressure (hence the altitude) is definitely a test envrionment. We should want to test and record the performance of the engine on different altitudes.

Test Environments are also called as Lab Resources in ETM, because generally the system under test is being tested in a simulated environment to mimic the conditions of the intended use environment, hence a test lab.
Before delving into the topic, we would like to split the usage of the test environments into two parts, namely the basic and the advanced scope of using test environments. These two scopes can be listed as follows:

Basic usage of test environments,

  • Defining Test Environments
  • Using test environments in test plans
  • Associating test envrionments with test cases
  • Running test cases against test environments
  • Reporting on test results on test environments

More advanced usage of test environments:

  • Creating test lab resources out of test environments
  • Registering test lab resources in a lab resource reservation system
  • Requesting a lab resource for a scheduled test
  • Fulfilling requests
  • Creating test cells out of test lab resources

In this article we will be focusing only on the basic scope, which can still promise significant value even without exploring the advanced features. On a prospecting article next, we also would like to delve into the advanced usage as well.

Basic Usage of Test Environments

Defining Test Environments

This action requires a role-based permission that can be set in the Project Area Management. The existing definition of test envrionments can be accessed via the “Project Properties” menu:
Image
Figure 3: Manage Project Properties to Open Test Environments

When browsed to the “Lab Resource and Channel Properties”, the existing test envrionments are opened. Please note that it is not possible to delete an enviroment after it is saved. Thus a careful analysis in the beginning, maybe a mock up on a test system is highly recommended.
Image
Figure 4: Existing Test Environments for the Project

A new environment type can be defined by clicking on the green cross:

Image
Figure 5: New environment type defined as "Atmospheric Pressure"

Make sure the “Set as test environment type” is selected. Otherwise you cannot use this type in specifiying test environments. Then define the allowed values as an enumarated list of the new environment type:

Image
Figure 6: List of Values

Using Test Environments in Test Plans

Once the environments and their allowed list of values are defined, next step is to use these values to scope the test plans with them. This will help us to define enviornmental boundaries to test plans

To start scoping the test plan, go to the Test Environments of the test plan:

Image
Figure 7: Test Environments Section of a Test Plan
First action is to corelate the test plan with relevant environments and their values. For instance the test plan above is for summer testing. Therefore, we can neglect the cold temperatures. In the Platform Coverage section selection of environments and values occur.
Image
Figure 8: Selection of Environments
From the environment “Atmospheric Pressure” all the values are selected. However, from the Ambient Temperature, only the ones that will be seen in summer is selected. At the end, the platform coverage shows the selected values:
Image
Figure 9: Platform Coverage of the Test Plan
But these are not the testing environments of our test plan yet. We have to create the combinations of these selections in the next tab, Test Environment:
Image
Figure 10: Generation of New Test Environments of the Test Plan - 1
Select the next tab: Test Environment and click “Generate New Test Environments”. This will open a wizard where we can define permutations and combinations of the selected values to create composition of these environments:
Image
Figure 11: Generation of New Test Environments of the Test Plan – 2
The Advanced Properties can be used if one would like to force the exclusion of specific value combinations or force the inclusion of specific value combinations. In the Advanced Properties, weights can also be assigned to certain environment values so that the combinations of these values are prioritized:
Image
Figure 12: Generation of New Test Environments of the Test Plan – 3
Defining the coverage scheme, considering the Advanced Proporties as well, will generate permutations of the selected Platform Coverage.
Image
Image
Figure 13: Generation of New Test Environments of the Test Plan – 4
Finish will generate all these envrionments to be used in the test plan.
Image
Figure 14: New Test Environments Generated for the Test Plan
This would indicate that all the test cases within this test plan should be tested on these environments to ensure full requirement test coverage.

Associating test envrionments with test cases

For the sake of simplicity lets define a single test case in our Test Plan: “Performance Testing of the Atmosperic Combustion Engine”. We have already associated this test case with the Test Plan as follows:
Image
Figure 15: Test Case(s) in Test Plan

This figure indicates there is only one instance of testing for the performance of the engine. Hoever, we may expect different test results for different conditions. Hence, there should be multiple instances of this test case to verify the performance requirements on different conditions.

To address this issue, we multiply the test cases with the test environments and generate an instance of the same test case for every environment. We call these instances as “Test Case Execution Records”

Image
Figure 16: Generation of the Test Execution Records per Test Environment – 1
When “Generate Execution Record” is run against selected Test Cases, a wizard will help to generate instances selected predefined Test Environments as follows:
Image
Figure 17: Generation of the Test Execution Records per Test Environment – 2
As a result, the test case will now be presented with 8 different instances, related with 8 different Test Environments to be tested against:
Image

Running test cases against test environments

Execution of the tests in ETM is basically the execution of the Test Execution Records. Which indicates the execution of the same test scenario but on the relevant environment:
Image
Figure 18: Test Results per Test Environment
After the tests are run against environments, we can group per result. In this example, same test case is run and different results are presented on different environments. One environment hasn’t even been tested.

Reporting on test results on test environments

Based on this simple scenario, there are 3 different reports that can be generated as follows:

  1. Requirement Test Case Coverage: Are all requirements have a traceability link to test cases
  2. Requirement Test Result Coverage: Are all requirements on all environments verified? Are there any failed tests on specific environments.
  3. Environment Verification: Are all Requirements on a specific environment successfully verified? - This is also an important metric if a quick release is targeted for a specific environment. There might be some issues on other environments but we don’t have to wait to release for the environments that are verified.

Importance of Test Environments in ETM

The usage of test envrionments would bring a great value to the verification and validation processes. Some of which could be listed as follows:

  1. Consistency and Reproducibility: Managing test environments ensures that tests are executed in the same conditions every time, making results reproducible. This consistency is critical when debugging issues or comparing results across different test cycles.
  2. Efficient Resource Management: Proper test environment management in ETM helps optimize resources. Teams can define environments based on the needs of various test phases, ensuring that the right environment is available at the right time.
  3. Support for Complex Testing Scenarios: System often depend on a variety of components and / or Subsystems, such as ECU, motor, hydrolic elements, mechatronical elements etc. A well-defined test environment enables testing of complex scenarios, including system integration and end-to-end testing.
  4. Traceability: ETM’s ability to link test environments to specific tests, requirements, and defects enhances traceability. It provides clear documentation on which environment was used to execute which tests, helping teams maintain a transparent testing process.
  5. Collaboration Across Teams: Testing environments are often used by multiple teams (development, QA, operations). ETM helps coordinate between these teams to ensure that all necessary environments are available and properly configured for testing.

In conclusion, managing test environments is a critical component of effective test management, and IBM Engineering Test Management (ETM) offers a robust solution for organizing, allocating, and tracking test environments throughout the development lifecycle. Properly configured test environments ensure that tests are run consistently, efficiently, and accurately, leading to reliable and actionable results. By integrating test environment management into your workflow and following best practices, you can significantly improve the quality of your products.

Softacus Services

Check out services!

We, in Softacus, are experts when it comes to consulting and service delivery of IBM software products and solutions in your business. We help our clients to improve visibility and transparency when licensing and managing commercial software, providing measurable value while increasing efficiency and accountability and we are providing services in different areas (see Softacus Services).
IBM ELM extensions developed by Softacus are free of charge for the customers who ordered IBM ELM licenses via Softacus or for the customers who ordered any of our services. If you are interested in any of our IBM ELM extensions, you found a bug or you have any enhancement request, please let us know at info@softacus.com.