What is AWS Mainframe Modernization Application Testing? - AWS Mainframe Modernization

What is AWS Mainframe Modernization Application Testing?

Testing impacts migration projects significantly. It can consume up to 70% of your migration, modernization, or augmentation project time and effort. AWS Application Testing, a feature of AWS Mainframe Modernization, provides automated functional equivalence testing for your migrated applications. Functional equivalence testing helps you validate that your applications on the AWS Cloud are equivalent to your applications on your mainframe. AWS Application Testing automatically compares changes to data sets, database records, and online 3270 screens between your mainframe and AWS. Moreover, Application Testing permits repeatable testing, so you can run your test scenarios many times as you update target architecture, resolve issues, and progress toward a fully migrated application. After migration, you can continue to use Application Testing for regression testing, to make sure that updates to runtime engines or other components don’t cause regressions. Application Testing is cost-efficient: target test environments are created using the user-provided CloudFormation templates, leveraging Infrastructure-as-Code (IaC) concepts. Application Testing accelerates migration projects using the elasticity of the cloud. You can run independent test suites on as many parallel environments as required, reducing testing timelines.

Are you a first-time Application Testing user?

If you are a first-time user of Application Testing, we recommend that you begin by reading the following sections:

Benefits of Application Testing

Application Testing provides several benefits to help you in your migration process:

  • Testing acceleration, agility, and flexibility.

  • “Record once on mainframe, replay multiple times in AWS” testing concepts.

  • IaC creation of target environments through user-supplied CloudFormation templates.

  • High degrees of testing repeatability.

  • Built for the cloud, with scalability and elasticity in mind.

  • Large-scale testing with high degree of automation.

  • Cost efficiency.

Integration with AWS CloudFormation

Application Testing uses infrastructure as code with AWS CloudFormation. This design choice simplifies and improves your testing experience. AWS CloudFormation gives you autonomy and the independence to define the better infrastructure for your needs. You can select or define for many parameters (instance size, RDS instance, optimal security group) independently. You can add resources, such as an Amazon SQS queue that you require for your application to work properly under test conditions.

In the AWS CloudFormation templates provided for download, you will notice some common features:

  • Application Testing creates a fully isolated stack, including an AWS Mainframe Modernization runtime environment and application, with its own network and security definitions. This isolated stack provides resiliency, because other actors in the same AWS account cannot interfere with testing activity. It also avoids situations where system operators modify the default VPC or security group, which can cause testing activity failures.

  • The security group also allows you to control external access to the resources used in testing. For example, a database might contain confidential data.

  • Full isolation prevents other actors that share the VPC from snooping on the traffic.

  • It enhances performance. For example, communication between the AWS Mainframe Modernization application that the template creates and its Amazon RDS database occurs on a separate network (a private VPC), which avoids other actors slowing down traffic.

We recommend that you implement these features in the AWS CloudFormation templates you create as well.

How Application Testing works

The following figure is an overview of how Application Testing works.

How functional equivalence testing in Application Testing works.
  • You can transfer input data from the source to AWS using File Transfer in AWS Mainframe Modernization or your preferred tools for mainframe data transfer.

  • You run the same business logic on both the source and the target.

  • Application Testing automatically compares the output data (data sets, relational database changes, online 3270 screens and user interactions) from both source and target. After you run your test scenario on the mainframe, you capture the output data and transfer them to AWS, then replay the test scenario on the target. Application Testing automatically compares the output data from the test run on AWS with the output data from the source. You can see at a glance which records are identical, equivalent, different, or missing. In addition, you can define equivalence rules, so that records that are not identical but have the same business meaning are understood to be equivalent.

The workflow you follow in Application Testing consists of the following steps:

  1. Create test cases: Test cases are the smallest unit of testing actions. When you create a test case, you also identify the data types to be compared that best represent functional equivalence between the source and target.

  2. Define test environment configuration: Specify your environment configuration by specifying AWS CloudFormation template and additional attributes.

  3. Create test suites: Test suites are a collection of test cases.

  4. Upload data sets on the source and replay on the target: Capture the input and output data sets on the mainframe, and upload them to AWS. Then replay the test scenario on AWS.

  5. Compare source and target data sets: Application Testing automatically compares the output data sets from both source and target, so you can see at a glance what is correct and what is not.

Both the final action of a test scenario and the goal of the entire process is to identify discrepancies between the source and the target test runs. Application Testing compares the source version and the target version for the data captured on all the interaction channels during the test run. It also compares the final states of the relevant data (as defined in the test cases).

Application Testing is a feature of AWS Mainframe Modernization. It also uses infrastructure as code with AWS CloudFormation to ensure testing repeatability, automation, and cost efficiency. For more information, see:

Accessing Application Testing

You can access Application Testing console at https://console.aws.amazon.com/apptest/ or from the AWS Mainframe Modernization console by choosing Application Testing in the left navigation pane.

Pricing for Application Testing

Pricing for Application Testing can be found at AWS Mainframe Modernization Pricing.