Find and Fix Bugs Earlier with Automated Testing
Automated testing increases the effectiveness and coverage of software testing, leading to fewer bottlenecks in the software delivery pipeline, lower failure rates and higher quality software.
Topaz® for Total Test enables developers to:
- Automate unit, functional, integration and regression testing
- Easily generate tests from within Xpediter
- Run unit, functional and integration tests from the same test scenario
- Validate code changes immediately
- Maintain the quality of their codebase
- Quickly put program code updates into production
- Leverage integrations with leading cross-platform DevOps and Compuware tools for continuous code quality management
The Value of Topaz for Total Test
- Enables a “shift left” approach to testing to improve application quality and development velocity and efficiency
- Empower novice developers to validate COBOL code changes with the same speed and confidence as other code
- Support Continuous Integration and Continuous Delivery (CI/CD)
- Reduce time spent manually writing tests, collecting test data or manually creating data
- Increase confidence when making large mainframe code changes
- Facilitate regression testing
Key Features of Topaz for Total Test
DevOps Toolchain Integrations
Topaz for Total Test can be easily integrated into a DevOps toolchain to enable COBOL unit, functional and integration testing within the automated build-test-deploy process through integrations with Jenkins and SonarSource SonarQube.
Integration with Jenkins
Topaz for Total Test is easily configurable into an existing Jenkins workflow. COBOL testing can be automatically triggered as part of a DevOps toolchain and/or Continuous Delivery process for enterprise DevOps efficiency.
Integrations with SonarQube
Code coverage results captured by Topaz for Total Test can be fed into SonarQube to help IT teams better understand the scope and effectiveness of their testing as code is promoted toward production. In addition, testing pass/fail results can be displayed in SonarQube along with other quality trends throughout the DevOps process. Quality Gates may be defined to use test results to determine whether to proceed with the workflow or to fix the code before continuing.
Integration with XebiaLabs
An integration with XebiaLabs enables users to integrate a Topaz for Total Test unit test scenario and/or test suite into a DevOps pipeline orchestrated by XebiaLabs.
Automatically Generate a Unit Test and Test Assets
Topaz for Total Test automatically generates unit tests as well as program stubs while collecting the necessary test data for data stubs—to simplify test setup and execution on different test systems.
Test Data Virtualization
Topaz for Total Test simplifies and accelerates large COBOL program unit testing by automatically virtualizing data for Db2 databases as well as IMS Batch Message Processing (BMP) /Message Processing Programs (MPP), Batch DL/I, and VSAM and QSAM data files. Virtualized data moves with the test, so the test runs independently of data files, eliminating the need to move data files or data tables separately. The virtualized data can be edited to drive specific test cases.
Topaz for Total Test generates virtualized program calls and Db2 stored procedure calls, eliminating the need to call the actual subprogram or stored procedure. It also supports IMS BMP/MPP and Batch DL/I command virtualization, eliminating the need to have an IMS system when testing an IMS program.
Live CICS commands can also be virtualized so CICS tests are isolated from actual CICS regions.
In addition, Topaz for Total Test also provides the ability to virtualize submodules calls for functional tests in batch and CICS, giving developers greater flexibility in controlling program execution.
Topaz for Total Test generates default test result assertions that enable comparisons between expected results and actual program results. Developers can also easily change the expected results collected from the program to create new test cases. After the test executes, test assertions are evaluated to determine if the test passes or fails.
Program Entry and Write Assertions
For unit tests, program entry assertions ensure that the parameters passed into a subprogram are correct. They are similar to write assertions, which confirm the data that is to be written to VSAM or QSAM files, Db2 tables, IMS segments or by CICS commands are correct. Db2 SQL Statement write assertions can be used to verify data in UPDATE, INSERT or DELETE statements. IMS write assertions include ISRT, REPL, DLET. Write assertions support many CICS commands that move data, for example WRITEQ. The expected values for all of these assertions are automatically captured during program execution when the unit tests are created.
Advanced Functional Testing Capabilities
Topaz for Total Test also automates the creation of functional tests and supports the functional testing of live load modules on an LPAR in batch and CICS using live data. Programs can be written in COBOL, PL/I or Assembler. Functional tests are defined in a test scenario, and the user can either generate a test from Xpediter, or manually specifies input and expected output data for the linkage section of the module.
The test scenario can contain a sequence of steps. For example, a developer may set up the data in Db2 and datasets before testing the program; assign resources to the program dynamically with JCL defined in the test case; execute the program by providing input data and verifying output data; and finally, verify the data created by the program in Db2 and in datasets.
Similarly, test scenarios can also be used to create an integration test of multiple program interactions.
Multiple Tests from One Test Scenario
Developers can run unit, functional and integration tests from the same test scenario—using one editor and one execution dialog. With this combined test scenario JCL is now automatically generated to run the tests. Test scenarios can be combined into test suites that are automatically executed in CI/CD pipelines with Jenkins. Test results can be captured along with other details in one report and housed in a shared repository.
Functional Testing Web Client
Topaz for Total Test’s web client enables users to add runtime information about a load module to a repository as a component and easily create and execute test cases from the web client. A test case is executed directly from the browser, and the result is immediately shown, making it easy for non-developers and mainframe developers, who have not yet adopted a modern IDE, to create tests.
Flexibly Execute Unit and Functional Tests
Because test assets move with tests, developers have the flexibility of executing their unit and functional tests on different systems based upon available test environments. Topaz for Total Test also displays a simple list of target systems where tests can be run. Developers simply need to pick the target system and run the test. Topaz for Total Test then automatically transfers the tests as well as all virtualized programs, commands and data needed.