本主题解释如何配置回归测试的功能测试套件,它帮助确定功能是否随着时间而意外更改。本章包含:
了解回归测试
回归测试的目的在于检测意外故障,尤其是那些由于开发人员在修改或扩展以前正常运行的代码时没有完全了解内部代码关联而导致的错误。回归测试是确保更改没有在代码中引入新错误或检查更改是否成功解决现有错误的唯一可靠方法。
回归测试期间,SOAtest 运行指定的测试用例,比较当前输出与之前记录的输出,然后在当前响应和控制响应之间存在差异时发出警告。后续的回归测试运行将提示此差异,直到应用程序返回预期结果。我们建议你执行功能测试以验证你的服务功能是否正确,然后开始回归测试以确保系统变更不会引入错误或意外更改。
创建回归测试
可以自动为整个测试套件创建回归控制,也可以为单个测试用例录制回归控制。如果希望在所有或大多数测试用例上运行回归测试,则我们建议你自动添加回归控制到完整的测试套件中,然后删除不希望使用的控件。如果只希望在限制数量的测试用例上执行回归测试,则单独添加控件会更有效。
自动创建回归控制
若要让 SOAtest 自动为整个测试套件或特定测试套件创建回归控制:
- 则右键单击合适的测试套件或测试节点,然后从快捷菜单中选择 Create/Update Regression Control 。
- 在打开的响应验证向导中,展开 Create Regression Control,指定要创建的控制类型,然后单击 Finish。Diff 工具将被添加到所选定测试中
- 单个回归控制 vs. 多个回归控制:此选项仅适用于使用数据源中参数化值的测试。它确定 SOAtest 是仅使用数据源中的一行,还是数据源中的所有行来创建回归控制。
- 内部回归控制 vs. 外部回归控制:外部回归控制允许你管理 SOAtest 之外的回归控制。如果正在处理大量消息,推荐使用外部控制,因为 1) 它们减少了 .tst 文件的大小 2) 它们允许使用 ExamXML Diff 选项,该选项可处理非常大型的文件。由于内容是可读文本,所以还可以搜索、更新、脚本化和管理外部文件中的回归内容。
SOAtest 运行一个带有 Diff 控件的测试用例的所有后续时间,它都将把实际结果与 Diff 控件中指定的结果进行比较。
如果创建了单个回归控制,则将单个文件保存在与当前项目文件相同的目录下。该文件将包含回归内容。
如果创建了多个回归控制,则将每个数据源关联的响应保存在单个文件中。还将创建一个具有随机名称的目录,其中包含多个类似 DS_Row_001.xml 名称的文件。该文件中的数量与行数相关联。例如,如果数据源有五行,则在创建回归控制时,测试会运行五次,并生成五个文件。
手动创建回归控制
如果希望在测试用例上执行回归测试,但又不希望使用当前结果作为比较值,那么我们推荐你为该测试用例定义你自己的 Diff 控件。
若要为测试用例定义自己的 Diff 工具:
- 则按照 Adding Test Outputs 中描述的过程添加 Diff 工具。
- 按照 Diff中所描述配置 Diff 工具。
SOAtest 运行一个带有 Diff 控件的测试用例的所有后续时间,它都将把实际结果与 Diff 控件中指定的结果进行比较。
修改回归选项
若要自动更新回归控制:
- 右键单击适当的测试套件或测试节点,然后从快捷菜单中选择 Create/Update Regression Control
若要手动更新回归控制:
- 则双击 Diff 工具,然后修改可用选项。
若要在测试套件中对所有用于回归控制的逻辑和数据源使用进行自定义:
- 双击测试套件的 Test Case Explorer 节点,然后修改可用选项,其如 Regression Options中所述。