Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 4 of 5

Versioning tests with the solution

11 min

Listen to this lesson

0:00 / 6:16

A test describes how the solution should behave at a point in time. When the solution changes, the test must change in step, and when two versions of the solution exist side by side, two versions of the test may be needed. Without versioning, teams end up with tests that work in CMD but fail in CMQ because the transport has not moved yet, or tests updated for the new release that can no longer support emergency fixes on the old one.

Testware is configuration too

The ISTQB Test Automation Engineering syllabus treats configuration management of testware as essential: environment configuration, test data and test suites must be managed across environments and versions of the system under test. It describes two ways of matching tests to releases: feature toggles in the testware that switch test suites on per release or environment, and releasing the testware with the same version as the system, using tags or branches in a configuration management system.

With a feature toggle, the same suite runs the right tests in each system because it reads what is deployed there.
The Sign-Off Table · thesignofftable.com/academy/sap-tau-303
ApproachHow it worksFits when
Single version with feature togglesOne test codebase; a configuration per environment says which features are activeChanges flow continuously and environments differ only briefly
Version tags per releaseTestware tagged with the solution release it matchesReleases are discrete, such as feature pack stacks
Branches during parallel linesA maintenance branch for the old version and a main line for the new oneTwo solution versions must be supported at once
Ways to keep testware in step with the SAP solution.
The Sign-Off Table · thesignofftable.com/academy/sap-tau-303

Follow the transport, not the calendar

In an ABAP landscape, a change reaches each system when its transport is imported. Tests should follow the same path. If a test change depends on a transport, it should be activated in an environment only when that transport is there. Several practical patterns help.

  • Link each test change to the requirement, user story or feature that caused it, so you can see which tests a change affects.
  • In SAP Cloud ALM, features bundle transports and move them through the landscape; record on the feature that automation was updated, and run the affected tests when the feature reaches quality.
  • Let tests read an environment configuration that states what is deployed, rather than hard-coding behavior per system.
  • Release the test change to the shared suite when the transport is imported into quality, not when the developer finishes coding.
  1. Requirement or user storyThe change is defined and linked to the processes it touches.
  2. Feature with transportsKenji's team builds the change in CMD; transports are assigned to the feature.
  3. Test change on a branchThe automation engineer updates the affected tests and links them to the feature.
  4. Import into CMQThe feature is deployed to quality; the test change is merged and the affected tests run.
  5. Ready for productionTest evidence is attached; the feature is approved and deployed to CMP.
Moving a test change in step with an ABAP change at Contoso.
The Sign-Off Table · thesignofftable.com/academy/sap-tau-303

Parallel versions during a conversion or upgrade

Contoso met the hardest case during the conversion. The ECC production system EP1 still needed emergency fixes through ED1 and EQ1, managed by the support team with ChaRM in SAP Solution Manager 7.2, while the S/4HANA program built and tested in CMD and CMQ with SAP Cloud ALM. The upgrade guide for Private Edition describes the same pattern for upgrades: during the upgrade the development system is locked, so a temporary copy of development can supply production with emergency corrections, and changes must then be made in both, which is dual maintenance.

  1. Before conversionOne lineTests on main match ECC (ED1, EQ1, EP1).
  2. Program startBranchCreate an ECC maintenance branch; main moves to S/4HANA (CMD, CMQ).
  3. During programDual maintenanceAn ECC emergency fix changes a process: update the ECC branch, then assess the S/4HANA version.
  4. Go-liveSwitchProduction runs on S/4HANA; the S/4HANA line becomes the only active suite.
  5. After hypercareArchiveTag and archive the ECC branch; stop running it.
Test versioning through a system conversion with dual maintenance.
The Sign-Off Table · thesignofftable.com/academy/sap-tau-303

Version everything a test needs

A test is more than a script. Keep its locator maps, data factory code, environment configuration and expected results in the same repository with the same version, so a tagged release recreates exactly what ran. Record the solution version on every result: system, client, release and stack, and the test version. A failure report that cannot say which test version ran against which solution version cannot be trusted for sign-off.

Every result used for sign-off names both versions: which testware ran and which solution it ran against.
The Sign-Off Table · thesignofftable.com/academy/sap-tau-303

What would you do?

Kenji's team changes the credit check logic in CMD. The automation engineer immediately updates the credit tests in the shared suite. The next nightly run in CMQ fails, because the transport is still waiting for approval. What should the team change?

Key points
  • Testware needs configuration management: environment settings, data and suites.
  • Match tests to releases with feature toggles, version tags or branches.
  • Test changes follow the transport and feature path, not the developer's calendar.
  • During conversions and upgrades, dual maintenance applies to tests as well as code.
  • Record test version and solution version on every result used for sign-off.

Check your understanding · not graded

Lesson check

  1. 1. When should a test change that depends on a transport be activated in the CMQ suite?

  2. 2. Which ISTQB option ties testware exactly to a system release?

  3. 3. Why does the Private Edition upgrade guide suggest a temporary copy of the development system?

  4. 4. Which pair of facts should every result used for sign-off record?