Basic Background Knowledge


To use Topaz for Total Test Virtualized Test (Unit Test) efficiently, we recommend you become familiar with the basic principles and some elementary terms used in Topaz for Total Test. For more information, see Wiki: https://en.wikipedia.org/wiki/Software testing.

Topaz for Total Test Integration with Xpediter/Eclipse

When debugging a COBOL Batch Program using the xpediterIcon.png Xpediter/Eclipse debugger, Topaz for Total Test provides a context menu (RecordTestCase.png Record Test Case...) to automatically generate test case(s) from the debugging session. This eliminates creating the all test elements manually.

For more details, see Process-Flow-Topaz-for-Total-Test-COBOL-Batch-Programs and Context-Menus-from-Xpediter-Debug-Session.

Interface Testing

The concept of component interface testing, or just the shortened name interface testing, is a well-known testing methodology that can be used to check the handling of data passed between COBOL programs.

Topaz for Total Test Exploits Interfaces

Using Topaz for Total Test Virtualized Test, an interface consists of the called program and the data structures passed to it (also called the signature). As an example, in COBOL this may look like this:

CALL PROGRAM1 USING PARM-1 PARM-2

The data structures passed in the above USING clause are usually copybooks. By importing these using Topaz for Total Test, they are translated to a language independent XML format simply called a structure in Topaz for Total Test. That way you can create and perform tests irrespective of the target object's language.

Topaz for Total Test Adds Usage Information

However, technically describing your interface by the target and the structures it uses is not enough. Still missing is information about which structures are used for input and which for output. This is because their usage is not contained in the structures nor does the call statement imply this, but this is merely a convention between calling program and called program.

Topaz for Total Test Virtualized Test provides a way to add this semantic information, called usage information, to the interface definition.

Summary

In a nutshell, the Topaz for Total Test test interface is a technical description (call interface) plus semantic information (usage). This provides a business view on the interface because it eventually masks out the technical details which are not relevant for the business functionality. We will need

  • the argument structures in the specific order expected by the target.
  • the usage of the structures or attributes (fields) contained therein.

TTT_QuickStart00001.jpg

With this information, Topaz for Total Test knows how to (technically) call the target and how the data are (substantially) used by the target.

Test Scenario

The concept of a Test Scenario is used to define and describe what to test, which input to use, and which output to expect to consider the test successful. In terms of Topaz for Total Test Virtualized Test, you need to provide the following information in order to create a test case for a test scenario:

• Which interface is being called?

• What is the name of the target that you want to test (program or load module)?

• Which input data need to be passed?

• Which check conditions must be met if the target functions as expected?

TTT_QuickStart00003.jpg


Check conditions are used and are essential to successful testing. Not only are they required to properly document the test scenario, but they are crucial for the re-use of the test scenario. Check conditions are needed to:

  • Automate the tests
  • Re-use the scenario for regression testing.

A test scenario is aimed to be a reproducible test of one or more specific requirements implemented by an interface.

Test Case

Each time an interface is called during the test run, it represents a test case. The simplest variant of a test scenario contains just one test case, and it is thus referred as a simple test scenario.

However, it is often required to create test scenarios that consist of more than one test case. There may be correlations that need to be reproduced in the test scenario.

As an example, you may want to process contract data, but the function requests a contract ID that you must first read using another function. Or you may want to store certain data in a database in order to provide a reproducible data environment for your actual test interface and become independent from the environment.

To accomplish such tasks, Topaz for Total Test allows you to combine multiple test cases in one test scenario, and to pass data from one test case to another by using references.


Test_Cases_diagram.png

As a rule, a test scenario consists of any of those test cases required to check one or more requirements of one specific interface. The test cases belong to this test scenario in the specific order.

Please note that a test scenario should not test multiple interfaces, but use the additional test cases only for so-called setup and tear down purposes to support the test of one interface.

Test Suite

Opposite to the close relations of the test cases within a test scenario, a test suite is just a loose bundle of test scenarios. The test scenarios in a test suite are not related to each other and may even be executed in any order without interfering with each other.

The test scenarios are bundled in a test suite mostly for practical reasons. For example, you may have a collection of test scenarios that you want to run regularly as a regression test.

Test Run

When you run a test scenario or a test suite, in this order:

  • all required information and data are collected from the test scenario and the test interfaces it uses.
  • Data is converted into a format required by the target platform, copied over to the target platform, and then the tests are executed on the target platform.
  • Results data is converted back, parsed and the test results are displayed in a results report.

This section provides information about the following topics:

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*