AWS Mainframe Modernization 应用程序测试概念 - AWS Mainframe Modernization

AWS Mainframe Modernization 应用程序测试概念

AWS 应用程序测试功能使用的术语与其他测试服务或软件包使用的术语在含义上略有不同。以下章节解释 AWS Mainframe Modernization 应用程序测试功能如何使用这些术语。

测试用例

一个测试用例就是测试工作流程中一个最具原子性的操作单元。通常,一个测试用例用于表示修改数据的一个独立业务逻辑单元。将对每个测试用例进行比较。测试用例会添加到测试套件中。测试用例包含有关测试用例修改的数据构件(数据集、数据库)以及测试用例执行期间触发的业务功能(批处理任务、3270 交互式对话等)的元数据。例如,数据集的名称和代码页。

输入数据 → 测试用例 → 输出数据

测试用例可以是在线类型,或者是批处理类型:

  • 在线 3270 屏幕测试用例是用户执行交互式屏幕对话(3270)来读取、修改或生成新的业务数据(数据库和/或数据集记录)的测试用例。

  • 批处理测试用例是要求提交批处理来读取、处理、修改或生成新的业务数据(数据集和/或数据库记录)的测试用例。

测试套件

测试套件包含一组按顺序逐一运行的测试用例。重放将在测试套件级别完成。当重放测试套件时,测试套件中的所有测试用例都会在目标测试环境中运行。如果比较参考测试构件和重放测试构件后存在差异,则会在测试用例级别显示差异。

例如,测试套件 A:

测试用例 1、测试用例 2、测试用例 3 等。

测试环境配置

测试环境配置支持您使用 CloudFormation 来设置初始数据集和配置参数(或资源),您需要这些数据集和配置参数(或资源)来使测试可重复运行。

上传

上传将在测试套件级别完成。在上传过程中,您必须提供一个 Amazon S3 位置,其中包含将用于进行比较的来自源大型机的构件、数据集和关系数据库 CDC 日志。这些内容将被视为来自源大型机的参考数据。在重放期间,生成的重放数据将与上传的参考数据进行比较,以确保应用程序的等效性。

重放

重放将在测试套件级别完成。在重放期间,AWS Mainframe Modernization 应用程序测试功能会使用 CloudFormation 脚本来创建目标测试环境并运行应用程序。系统将捕获在重放期间修改的数据集和数据库记录,并与来自大型机的参考数据进行比较。通常,您将在大型机上上传一次,然后重放多次,直到达到功能等效为止。

比较

成功完成重放后,系统会自动进行比较。在比较过程中,会将您在上传阶段上传和捕获的参考数据与重放阶段生成的重放数据进行比较。将在单个测试用例级别上为数据集、数据库记录和在线屏幕独立完成比较。

数据库比较

在比较源和目标应用程序之间数据库记录的变化时,应用程序测试利用状态进度匹配功能。状态进度匹配功能比较每条运行的 INSERT、UPDATE 和 DELETE 语句的差异,这与在过程结束时比较表行不同。状态进度匹配功能比其他方法更高效,它仅比较更改的数据并检测事务流中的自我更正错误,因此速度更快,也更准确。通过使用 CDC(更改数据捕获)技术,应用程序测试可以检测单个关系数据库的变化,并在源和目标之间进行比较。

关系数据库更改由经过测试的应用程序代码使用 DML(数据修改语言)语句(如 SQL INSERTUPDATEDELETE)在源和目标上生成,不仅如此,当应用程序使用存储过程,或在某些表上设置了数据库触发器,或当使用 CASCADE DELETE 来保证引用完整性,从而自动触发额外删除时,也能间接生成关系数据库更改。

数据集比较

应用程序测试会自动比较在源(记录)和目标(重放)系统上生成的参考数据集和重放数据集。

比较数据集:

  1. 首先在源和目标上输入相同的数据(数据集、数据库)。

  2. 在源系统(大型机)上运行您的测试用例。

  3. 捕获生成的数据集并将其上传到 Amazon S3 存储桶。您可以使用 CDC 日志、屏幕和数据集将输入数据集从源传输到 AWS。

  4. 指定上传测试用例时将大型机数据集上传到的 Amazon S3 存储桶的位置。

重放完成后,应用程序测试会自动比较输出参考和目标数据集,显示记录是相同、等效、不同还是缺失。例如,与工作负载执行时刻有关的日期字段(日期 + 1、当月结束等)会自动被视为等效。此外,您还可以选择定义等效规则,以便那些尽管不是完全相同但仍具有相同业务含义的记录被标记为等效。

比较状态

应用程序测试使用以下比较状态:相同、等效和不同。

相同

源数据和目标数据完全相同。

等效

源数据和目标数据包含被视为等效的虚假差异,例如与工作负载执行时刻有关但不影响功能等效性的日期或时间戳。您可以定义等效规则来确定这些差异是什么。如果所有重放的测试套件与其参考测试套件相比较,显示出“相同”或“等效”的状态,则表示测试套件显示没有差异。

不同

源数据和目标数据包含差异,例如数据集中的记录数量不同或同一记录中的值不同。

等效规则

确定虚假差异可被视为等效结果的一组规则。离线功能等效性测试(OFET)不可避免地会导致源系统和目标系统之间某些结果存在差异。例如,更新时间戳因设计而异。等效规则解释了如何为这些差异做调整并避免在比较时出现误报。例如,如果在一个特定数据列中某个日期为运行时 + 2 天,则等效规则会描述它,并接受目标系统上一个运行时 + 2 天的时间,而不是严格等于参考上传中同一列的值。

最终状态数据集比较

已创建或修改的数据集的结束状态,包括从数据集初始状态起对数据集所做的所有更改或更新。对于数据集,应用程序测试会在测试用例运行结束时查看这些数据集中的记录,并比较结果。

状态进度数据库比较

系统会比较若干个 DML(删除、更新、插入)语句序列对数据库记录所做的更改。应用程序测试将比较从源数据库到目标数据库的各种更改(插入、更新或删除表的行),并将确定每个单独更改的差异。例如,一条 INSERT 语句可能被用来在表中插入一行,而源数据库相比目标数据库使用不同的值。

功能等效(FE)

如果两个系统被给予同样的输入数据,它们在所有可观察的操作中都产生同样的结果,则这两个系统被认为是功能等效的。例如,有两个应用程序,如果同样的输入数据生成相同的输出数据(通过屏幕、数据集更改或数据库更改),则这两个应用程序被视为功能等效。

在线 3270 屏幕比较

当目标系统在 AWS Cloud 中的 AWS Blu Age 运行时下运行时,比较大型机的 3270 屏幕输出与现代化应用程序 web 屏幕的输出。当目标系统在 AWS Cloud 中的 Micro Focus 运行时下运行时,比较大型机的 3270 屏幕输出与更换主机的应用程序的 3270 屏幕。

重放数据

重放数据用于描述在目标测试环境中重放测试套件时生成的数据。例如,在 AWS Mainframe Modernization 服务应用程序上运行测试套件时,就会生成重放数据。然后,将重放数据与从源捕获的参考数据进行比较。每次在目标环境中重放工作负载时,都会生成新一代的重放数据。

参考数据

参考数据用于描述在源大型机上捕获的数据。它是重放(目标)生成的数据要比较的参考。通常,对于大型机上创建参考数据的每条记录,都会有很多重放。这是因为,用户通常会在大型机上捕获应用程序的正确状态,然后在目标现代化应用程序上重放测试用例,以验证等效性。如果发现错误,会进行修复,并再次重放测试用例。通常,要经历重放、修复错误、再次重放以验证的多次循环。这被称为一次捕获,多次重放的测试范式。

上传、重放和比较

应用程序测试执行三种步骤:

  • 上传:捕获大型机上为测试场景的每个测试用例创建的参考数据。其中包括 3270 在线屏幕、数据集和数据库记录。

    • 对于在线的 3270 屏幕,您必须使用 Blu Insights 终端模拟器来捕获源工作负载。有关更多信息,请参阅 Blu Insights 文档

    • 对于数据集,您需要使用常用工具(例如 FTP 或 AWS Mainframe Modernization 的数据集传输服务部分)来捕获大型机上每个测试用例生成的数据集。

    • 对于数据库更改,请参阅使用 Precisely 进行 AWS Mainframe Modernization 数据复制文档,来捕获和生成包含更改的 CDC 日志。

  • 重放:在目标环境中重放测试套件。测试套件中指定的所有测试用例都会运行。将自动捕获由各个测试用例创建的指定数据类型,例如数据集、关系数据库更改或 3270 屏幕。这些数据被称为重放数据,将与上传阶段捕获的参考数据进行比较。

    注意

    关系数据库更改将需要您的初始条件 CloudFormation 模板中的特定于 DMS 的配置选项。

  • 比较:比较源测试参考数据与目标重放数据,显示的结果为相同、不同、等效或缺失的数据。

差异

表示通过数据比较,检测到参考数据集和重放数据集之间存在差异。例如,在线 3270 屏幕中的一个字段显示,从业务逻辑角度看,源大型机和目标现代化应用程序之间的值不同,因此,该字段将被视为一个差异。又如,数据集中有一条上传,它在源应用程序和目标应用程序之间不同。

等效

等效记录是参考数据集和重放数据集之间不同的记录,但从业务逻辑角度看,不应将其视为不同。例如,一个包含数据集生成时间(工作负载执行时间)的时间戳的记录。使用可自定义的等效规则,您可以指示应用程序测试将此类误报的不同视为等效,即使它显示参考数据和重放数据之间的值不同。

源应用程序

要比较的源大型机应用程序。

目标应用程序

新的或修改后的应用程序,在其上完成测试,并将与源应用程序进行比较,以检测任何缺陷并实现源应用程序和目标应用程序之间的功能等效。目标应用程序通常在 AWS 云中运行。