测试程序结构
为了进行自动测试,所有测试用例必须符合下面的程序结构。注意:下面这些步骤的顺序不能改变。
- 初始化 Lotus Notes 运行时。运行任何 Lotus C API 之前都要初始化 Lotus Notes 运行时。Lotus C API NotesInit 或 NotesInitExtended 可用于在各种环境下初始化 Lotus Notes 运行时系统。Lotus C API 应用程序在测试其他任何功能之前应该首先调用 NotesInit 或 NotesInitExtended。
- 创建和准备测试数据。测试目标 API 之前,首先要创建和准备必要的测试数据。比如,如果 Lotus C API 创建了一个表单字段,那么在测试该 API 之前应该首先创建并打开一个 Lotus Notes 文档。
- 执行测试 API。调用要测试的目标 Lotus C API。为了测试不同的参数组合,API 可执行多次。
- 检验测试结果。为了完成自动化测试,应该通过编程而不是手工检验 API 的执行结果。检验 API 执行结果有两种办法:根据预期的结果检查或者成对调用 API 进行检查。
- 测试数据恢复。如果测试用例创建测试数据,测试之后应用程序应该删除这些数据以免影响后续的测试。数据移除过程也是自动测试的关键步骤。
- 记录测试结果。在 failed.log 和 suite.log 文件中记录测试结果,在 output.log 文件中记录输出信息。
|
对 NoteSQL 应用自动测试
如前所述,Lotus C API 自动测试框架已经被成功应用于其他 Lotus 工具箱产品,比如 Lotus C++ API 工具箱和 NotesSQL。这一节我们讨论 NotesSQL 自动测试,看看如何将 Lotus C API 工具箱自动测试框架应用于其他 API 测试产品。
NotesSQL 是 Lotus Notes 和 Domino 数据库的 Open Database Connectivity (ODBC) 驱动程序,实现了 ODBC 2.0 或者更新版本的 API 规范。可用于从 Notes and Domino 数据库(即 NSF 文件)查询数据。所谓编程测试 NoteSQL 就是测试 NotesSQL 驱动程序中实现的 ODBC 2.0(或更新的)API。
NotesSQL 自动测试由一个 kshell 脚本 nsqln.ksh 控制(类似于 Lotus C API 自动测试脚本 tapi.ksh)。NotesSQL 开发人员建立了 646 个自动测试用例,使用 nsqln.ksh 自动构建和运行这些用例。通过自动测试脚本,测试人员只需要在 kshell 环境下启动 nsqln.ksh 脚本,然后等待 NotesSQL 测试结果就行了。nsqln.ksh 完成后将创建 suite.log 和 problem.log 文件(类似于 Lotus C API 的 failed.log),测试人员可通过这些日志文件查看测试用例的运行状态。
与 Lotus C API 自动测试框架相比,NotesSQL 有两个主要的不同之处:
- 构建和运行是分开的。NotesSQL 自动测试脚本将构建和运行过程分开并通过参数控制。因此,为了执行 NotesSQL 自动测试,用户应该先使用 nsqln.ksh build 命令构建所有的用例,然后使用 nsqln.ksh test 运行测试用例。构建和运行生成不同的日志文件。
- 运行状态。Lotus C API 工具箱测试有两种运行状态:pass 和 fail。NotesSQL 增加了两种新的状态:same as gold file 和 reconciliation error。在 Lotus C API 自动测试框架中检查 API 执行结果,可以比较预期值和测试 API 的返回值。但在 NotesSQL 测试中,SQL 语句可能返回大量的数据,如果比较取得的数据和预期结果会使程序非常复杂。因此 NotesSQL 采用另一种办法检验取得的数据。它创建一个 file.gld 文件保存预期的数据,NotesSQL 测试用例创建 data.log 文件保存返回的数据。NotesSQL 测试用例的最后一步是比较 file.gld 和 data.log 文件。如果所有的数据都一致,则返回状态 “same as gold file”。否则返回 reconciliation error 并使用 diff.log 文件记录它们之间的差别。
文章来源于领测软件测试网 https://www.ltesting.net/