With the release of IBM Z Virtual Test Platform (ZVTP) 2.0.1, IBM’s innovative integrated test solution significantly improves the user experience with the Virtual Test Platform Server Extension (VTP Server Extension). VTP Server Extension complements the IBM Dynamic Test Runner capability, providing a simple but powerful user interface to work with ZVTP recording data sets.
VTP Server Extension’s fundamental building block is the test case, which distills a ZVTP recording data set into its key metadata, storing this metadata into a database on IBM Z for persistence. With a test case, you can understand the topology and execution timeline of your application using run-time data and replay ZVTP tests with a simple two-step process.
With VTP Server Extension, you create a test case from a ZVTP recording data set, giving the test case a unique name:
With this test case, VTP Server Extension allows you to discover important information about the recorded test, collected from the application as it executed. This can be a very useful adjunct to static analysis, by showing a temporal relationship between artifacts, based on real run-time analysis.
For starters, VTP Server Extension will detail the various artifacts recorded during the test in the Table view. This includes which CICS or IMS transactions were executed, which programs were executed during the task, which files were read, which CICS BMS maps and map sets were referenced, and much more. As an example, this Table view shows that CICS transaction EPSP was captured; it invoked program EPSCMORT, and referenced BMS map EPSMORT from map set EPMENU:
The Timeline view takes the analysis to another level, to show the precise execution sequence of subsystem and program calls recorded by the Dynamic Test Runner. This powerful view allows you to understand the relationships between transactions, programs and subsystems and the order in which these interactions occur.
This example shows a CICS pseudo-conversational transaction. EPSP was executed three times during the recorded test; by clicking on each transaction instance, VTP Server Extension shows the programs called during that transaction, in order of execution. Clicking on a program allows you to see the statements recorded by Dynamic Test Runner in execution order.
After the test case data has been imported, VTP Server Extension allows you to Run the test case, which executes the test in replay mode using the Dynamic Test Runner. This simple action allows you to test application programs with any version of the code, without the need to set up a test environment or promote code into it.
As an example, let’s assume you’ve built a new version of your application into the TEST.CICS.DFHRPL load library and would like to ensure that a recorded test scenario is unaffected. Simply click on Run test case from the test case view and supply your test library data set name in the User library box:
When you click Run, VTP Server Extension will build a batch job to execute a replay using the Dynamic Test Runner. If the test execution is successful, you will receive a results view to that effect:
Now, imagine that you made a change that affects your test’s execution. The result of Run test case may display mismatches between the replay under Dynamic Test Runner and the originally recorded information. Using the Timeline view, you can quickly identify the places where the results mismatched, and even pinpoint the exact step in test execution where results began to differ. At any level of the Timeline view, you can use the arrows to move forward and backward between mismatches, and each mismatch will present the recorded data along with the data seen during replay:
In conclusion, VTP Server Extension builds on the solid foundation laid by IBM Z Virtual Test Platform, to build a simplified user experience for deriving the powerful insights and shift-left integration test capability provided by ZVTP recordings. Watch this space for continued innovation and improvement of this one-of-a-kind test capability!
Originally published on the IBM Z and LinuxONE Community Blog.