一、关键字概念
  建立基于关键字的测试设计和测试自动化的 前提是:构成任何应用程序的离散功能性业务事件可以使用短文本描述关键字和相关联的参数值对变量进行描述。例如,大多数应用程序要求用户登录;此业务事件 的关键字可以是“登录用户”,参数可以是“用户ID”和“密码”。通过设计关键字来描述离散功能性业务事件,测试员开始建立一个可用于创建关键字测试案例 的通用关键字库。这便是创建语言(关键字)以描述应用程序内一系列事件(测试案例)的实际过程。
  如果正确地实现和维护,关键字将呈现有关投资的良好回报,因为每一个业务事件都是作为离散的实体设计、自动化和维护的。然后这些关键字可用于设 计关键字测试案例,但对关键字本身的设计和自动化开销已支付。当任何给定的关键字内发生更改时,将很容易找出受影响的测试案例并进行适当的更新,另外,关 键字本身的任何设计和更新仅执行一次。将其与录制/回放相比(每次运行测试案例时,捕捉特定业务事件或业务事件的一部分)-如果登录时启动100个测试案 例,则此事件将会自动运行100次,且有100种事例需要维护。
  1.关键字开发
  关键字的开发应采用与任何正式的开发工作相同的方式来完成。关键字需要设计、编码、实现和维护。
  2.设计
  测试设计员负责关键字的设计-关键字的设计至少应包括:关键字名称、关键字描述和关键字参数。
  3.关键字名称
  标准的关键字命名规范是先起草,接下来允许设计员进行有效地共享关键字。关键字名称应该以执行的操作<action> 开头,接下来是功能实体<entity>,然后是描述性文本<text> (如果需要),以下是几个常见实例:
  登录用户–登录用户
  输入用户姓名-输入用户姓名
  输入用户地址-输入用户地址
  验证用户姓名-验证用户姓名
  挑选用户记录–挑选用户记录
  关键字名称应该是关键字所执行的操作的速记描述。
  4.关键字描述
  关键字描述应该描述关键字的行为,并包含足够的信息供测试自动化工程师构建关键字。对于设计员而言,描述是关键字定义,而对于自动化工程师而言,则是功能规格。该描述必须简短而准确-以下是关键字是“登录用户”的示例:
  登录用户描述:在登录页面输入特定的用户ID和密码,然后按“确定”按钮。
  5.关键字参数
  关键字参数应捕捉可影响由关键字定义的实时业务事件的所有业务输入。获取适当的参数列表的简单可靠的方法是采取 “捕捉显示事物”的方法。对于关键字“登录用户”,应用程序显示三个元素:“用户ID”、“密码”和“确定”按钮–用于支持此关键字的两个必需的参数是 “用户ID”和“密码”。“确定”按钮不是必需的参数,因为关键字描述陈述“确定”按钮需要经常使用。如果有多个按钮(如“确定”、“取消”和“退 出”),则需要第三个参数“按按钮”,并需要修改关键字描述。
  6.编码
  自动化测试工程师选取测试下的关键字名称、描述、参数、测试应用程序和关键字开发标准并构建密码。如果关键字方面有任何问题,自动化工程师将与测试设计员联系以修改设计来阐明关键字的目的。如果存在任何自动化/工程问题,自动化工程师将与开发组和工具生产商联系来找出符合自动化框架的相应自动化解决方案。
  7.实现
  关键字实现使用与任何可共享项目资源相同的路径。完成的关键字至少应满足以下条件:通过测试设计员的审核,自动化工程师的单元测试功能测试,并集成到项目“Testware”中。该过程不需要很复杂或扩展性,但必须确保任何实现的关键字都公布于测试组并能实现预期的功能。
  8.维护
  出现以下情况时需要进行关键字维护:检测到关键字故障,更改业务事件或修改关键字标准。关键字维护遵循和关键字开发相同的部署路径:设计、编码和实现。
  二、关键字测试案例
  关键字测试案例是设计用于对正在进行测试的一个或多个应用程序的一个或多个方面进行测试或运用的一系列关键字。关键字测试案例必须经过设计、执 行和维护的。写关键字测试案例是测试设计员/测试员的职责,仅当关键字测试案例执行过程中出现故障时需要自动化工程师介入。请注意:关键字设计范例常在缺 少关键字自动化时使用–这是一个有效的独立测试设计范例。
  1.设计
  关键字测试案例设计包括计划测试案例的目的,使用关键字建立测试案例,以及针对正在进行测试的应用程序来测试设计。乍一看,这似乎与测试案例设计的任何其他方法没什么两样,但是关键字测试案例设计与任何徒手/文本形式的测试案例设计之间存在显著的差别。关键字测试案例设计的特征有:
  一致性–每次都使用相同的关键字来描述业务事件,
  数据驱动–关键字包含执行测试步骤所需的数据,
  自动生成文档-关键字描述包含设计员的目的详细信息,
  可维护性–有了一致性,接下来便是可维护性,终能够支持自动化,而不需要从测试设计变换到脚本自动化。
  测试设计员不需要成为测试自动化工程师能获取测试自动化的权限。
  2.执行
  通过按顺序执行关键字步骤,测试员可以手动执行关键字测试案例执行–这应作为关键字验证过程的一部分执行。测试案例是使用 自动化关键字构建的,可以使用测试自动化工具或集成的测试管理工具来执行。不管是否使用自动化,测试案例执行都是一种机械练习。测试案例应该包含执行测试 案例,以及确定该操作成功或失败的所有必需信息。
  3.维护
  当应用程序行为或在一个或多个测试案例中使用的关键字设计中发生更改时,必须进行测试案例维护。正确实现的关键字框架将允 许测试员通过一些查询机制来查找关键字的所有实例–将通常令人痛苦的查找受影响的测试案例的过程减少到一个简单步骤。而且,良好实现的关键字框架应该支持 对关键字实例的全局更改。