软件自动测试架构设计(2)

发表于:2014-12-17来源:uml.org.cn作者:Smilings点击数: 标签:自动测试架构
4. 根据测试案例存放目录以及测试测试的ID文件获取具体需要测试的测试案例。 5. 获取每个测试案例需要执行的动作指令以及输入数据。 6. 逐个执行测试

  4. 根据测试案例存放目录以及测试测试的ID文件获取具体需要测试的测试案例。

  5. 获取每个测试案例需要执行的动作指令以及输入数据。

  6. 逐个执行测试案例,根据测试案例的动作指令调用不同的接口执行不同的动作。

  7. 某个测试案例测试完成后,获取该测试案例的测试结果,并将测试结果输出到结果记录文件中。

  8. 继续执行下一个案例,直到所有的测试案例都被测试完为止。

  3.1.2 指令接口

  是测试案例操作指令与具体测试步骤实现之间的桥梁,与测试案例的操作指令相对应,指令接口就是实现测试案例的操作指令所需要做的事情,动作完成之后将该动作的操作结果返回给主控程序。接口模块负责与接口的数据处理,包括输入和输出,同时必须包括数据处理的结果。主控程序在读取了测试案例的操作指令之后,调用这些操作指令所对应的指令接口执行相应的操作,如果该接口执行操作成功则主动程序继续下一步操作,否则测试终止,只有所有的测试步骤的指令都被成功之行,测试案例才通过。

  为了方便管理与调用,所有的接口都实例化都一个接口工厂中,在实现了相应的指令接口后,需要将这些指令接口增加到接口工厂中,接口工厂根据案例中的接口类型来调用不同的接口实例。

  指令接口,事实上就是执行测试案例中的每个指令要求做的事情,比如输入测试案例的测试数据、执行相应的测试步骤、获取测试结果、对比测试结果,指令接口完成一个指令之后将这个指令的操作结果返回给主控程序。

  比如,话单检查指令接口,指令接口需要做的事情就是初始化要监听的话单文件,获取话单文件,把获取到的话单文件同期望话单进行比较,返回比较结果给主控程序。

  又如:短信接收发送指令接口,指令接口的工作就是实现发送MT,收取状态报告并把收到的状态报告的状态值与期望的状态值进行比较,返回比较结果给调用者;收到本地MO,并把收到到的本地MO与期望的MO进行比较,返回比较结果给调用者。

  3.1.3驱动程序

  驱动程序是实现具体的指令操作的程序,被指令接口调用完成具体的测试工作,并将测试结果返回给指令接口。驱动程序是具体操作的完成者。

  比如,话单检查驱动程序,用于对特定话单格式的话单文件进行跟踪,并且能够把跟踪结果解析成话单,话单检查指令接口会调用话单驱动程序完成具体的每条话单的各个子段的比较,驱动程序完成检查后将结果返回给指令接口。

  3.1.4 辅助功能

  实现系统的辅助功能,比如案例文件的处理,底层socket处理,文件处理或者数据库操作。

  3.2 测试案例

  3.2.1 测试案例的组成

  测试案例包括了业务逻辑、测试步骤以及输入与输出,使用XML存储测试案例,可以提高测试案例的可读性、通用性以及可维护性。不过这样有一个不好的地方就是测试案例看起来会比较庞大,不够轻盈,但是非常清晰,即使是对测试案例完全不熟悉的人,只要看了也自然很快就对业务流程有了一个大致的了解;而且,业务逻辑体现在测试案例,也会增强系统的扩展性,如果需要增加某些测试步骤或修改测试数据,只需要修改测试案例即可。

  测试案例主要由测试案例ID、测试案例描述、以及测试操作指令所组成。测试案例ID就是测试系统的案例ID,测试描述包括测试案例的简要描述、测试产品名称、测试功能点、测试版本、测试类型以及测试案例的作者,测试操作指令是测试案例的核心,每个测试步骤就是一个操作指令,操作指令的顺序与业务逻辑或测试步骤相关。每个操作指令包括:

  (1) 操作指令ID,在Test Case中唯一;

  (2) 操作指令接口名称,自动测试工具所提供的指令接口名称,在一个Test Case中可以出现多次;

  (3) 操作指令接口动作名称,自动测试工具所提供的指令接口的具体操作的名称,在一个Test Case中可以出现多次,自动测试工具操作指令接口名称和操作指令接口动作名称调用不同的指令接口的功能完成相关的动作;

  (4) 操作指令的描述;

  (5) 模拟接口的信息,如果需要使用到模拟接口,需要将模拟接口相关的信息再测试案例中输入,模拟接口相关信息应该参数化;

  (6) 输入数据,也就是执行这个操作步骤所需要输入的测试数据或是预期的结果或延时等待时间等。

原文转自:http://www.uml.org.cn/Test/200804257.asp