You can use the following methods to test CICS® application programs. This guidance does not relate to testing Java™ applications.
A single-thread test takes one application transaction
at a time, in an otherwise empty
CICS system, and sees how
it behaves. This enables you to test the program logic, and also shows whether
the basic CICS information (such as resource definition) is correct.
It is feasible to test this single application in one CICS region
while your normal, online production CICS system is active in another.
A multithread test involves several concurrently active transactions. Naturally, all the transactions are in the same CICS region, so you can readily test the ability of a new transaction to coexist with them.
You might find that a transaction that works perfectly in its single-thread testing still fails in the multithread test. It might also cause other transactions to fail, or even terminate CICS.
A regression test is used to make sure that all the transactions in a system continue to do their processing in the same way both before and after changes are applied to the system. This is to ensure that fixes applied to solve one problem do not cause further problems. It is a good idea to build a set of miniature files to perform your tests on, because it is much easier to examine a small data file for changes.
A good regression test exercises all the code in every program; that is, it explores all tests and possible conditions. As your system develops to include more transactions, more possible conditions, and so on, add these to your test system to keep it in step. The results of each test should match those from the previous round of testing. Any discrepancies are grounds for suspicion. You can compare terminal output, file changes, and log entries for validity.
Sequential terminal support (described in Using sequential terminal support), can be useful for regression
testing. When you have a module that has worked for some time and
is now being modified, you need to rerun your old tests to ensure
that the function still works. Sequential terminal support makes it
easy to maintain a library
of old test cases and to rerun them
when needed.
You can prepare a stream of transaction test cases to do the basic testing of a program module. As the testing progresses, you can generate additional transaction streams to validate the multiprogramming capabilities of the programs or to allow transaction test cases to run concurrently.