什么是业务流程测试?
业务流程管理(Business Process Testing(BPT) )是使软件测试流程与业务目标保持一致的流程,以减少测试生命周期中的复杂性、时间消耗和工作量。业务流程测试是一种端到端测试,可以从业务和客户的角度检查软件应用程序的可用性。
BPT框架
BPT(Business Process Testing) 框架是一个内置的、专注于质量中心的微型自动化框架。可以设计自动化场景,并根据自己的需求执行,而无需事先具备自动化或编码知识。
以下是BPT框架的构建块
- 组件(Component)
- 应用领域
- 调用流
- 业务流程测试
组件(Component): (也称为业务组件)是一组可重用的自动化语句,在AUT中执行特定的预定义任务。它类似于VBScript函数和QTP动作,但设计用于BPT框架中。
应用领域: 它是一个存储库,包含开发业务组件所需的所有资源。它是一个逻辑实体,看不到文件系统中的物理存在。
业务流程: 包含一系列业务组件的场景,旨在测试应用程序的特定业务流程。
调用流: 有时,需要在多个BPT中以相同的顺序使用相似的组件。可以直接调用流,而不是单独调用、添加每个组件。
BPT的优势
下面是传统自动化存在的困难:
- 手动测试人员和自动化测试人员之间缺乏协调。
- 手动测试人员在自动化过程中没有任何作用。
- 自动化发展缺乏标准。
- 巨大的维护工作。
- 自动化测试人员通常不具备良好的应用知识,容易开发效率低下的脚本
BPT使用标准化框架克服了上述困难。在该框架中,将手动测试作为自动化开发的一部分,并定义了开发BPT的标准流程。 手动测试人员为所需的功能设计手动组件,该组件由自动化测试人员开发完成。手动/自动化测试人员将按顺序排列这些自动化组件,以形成BPT,这将成为一个测试场景。
BPT定义了不同的角色,以及执行。BPT帮助优化角色,分类如下:
- SME
- QTP专家
- 测试人员
SME: SME是业务分析师或手工测试人员,他们对应用程序有很好的了解。他们设计业务组件,会清楚地提到测试步骤和预期结果。
QTP专家: QTP专家通过自动执行手册组件中提到的步骤,将手动业务组件转换为自动化组件。 一旦组件设计完成,SME或QTP专家将安排这些组件形成BPT,从而形成测试场景。
测试人员: 测试人员可以是手动测试人员或QTP专家,他们可以从质量中心执行BPT。
BPT入门
软件要求:
- QTP/UFT(QTP最新版本)。
- 拥有业务组件模块的QC/ALM(QC最新版本)访问权限(可能需要单独购买)。
软件配置:
- QTP: 启用选项“允许其他HP产品运行测试和组件”
- QC: 应安装加载项:QC连接附加模块,QTP外接程序
BPT框架的实现:
因为它是一个内置框架,所以不需要编写代码来构建该框架。只需要准备构建BPT构建块所需的构件。 让我们简要学习质量中心(HP ALM)中的重要模块。
业务组件模块: 能够创建、管理和自动化可重用的业务组件,它将包含在业务流程中执行特定功能的步骤。组件通常分类如下-
- 手动组件
- 自动化组件
- 关键字驱动组件
- 脚本化组件
Test Plan模块: 可以在该模块中以某种逻辑顺序拖放组件形成一个测试场景,支持调试组件。
Test Lab模块: 能够执行业务流程测试并查看结果。甚至可以在不同的机器上并行运行BPT。
典型的BPT自动化流程包括以下阶段。
- 创建手动组件
- 自动化组件
- 开发流程或BPT组件
- 调试BPT的组件
- 执行BPT的组件
步骤1) 创建手动组件
登录QC

定位至业务组件模块。

业务组件和文件夹由下面提到的组件树中的特定图标标识-

文件夹 :用于按逻辑隔离对组件进行分类。

Component Request文件夹: 手动测试人员或SME放置他们希望自动化的组件。

Obsolete文件夹: 可以将所有无效组件移动到此文件夹中,以便在将其从QC中永久删除之前进行检查。

组件: 这是用来表示组件的符号。手工业务通信,如下图所示。

在给定的时间内,组件可以是以下任何一种状态,分别为开发中、就绪、维护和错误状态。 当在测试计划模块中发起组件求时,它处于“未实现”状态(如下所示)。当此特定组件从Request文件夹移动到Component文件夹时,它将更改为“正在开发”状态。

业务组件模块中的工具栏

创建新的手动业务组件
创建新文件夹,以便可以在一个位置创建所有与应用程序相关的组件。 选择Components文件夹->单击New文件夹

输入代表应用程序的某个意思的全名,然后单击OK。甚至可以在主文件夹下创建子文件夹。 要在其中创建组件的选定文件夹->单击“New Component”(新建组件)按钮

输入与将要执行的操作类似的组件名称,以便在准备BPT时轻松选择组件。单击确定按钮。 将在右侧创建一个新组件。
让我们研究一下组件上的各个选项卡
一、明细页签 :包含组件名称、创建者、创建日期…等基本字段等。
Description选项卡有三个部分:总结、前置条件和后置条件。
在总结部分中,可以提到组件功能及其结果的简要描述。
在前提条件部分,提到使用此组件所需的应用程序状态。
在后置条件部分中,提到执行组件步骤后的应用程序状态。
在创建组件的逻辑顺序以创建BPT时,牢记前置条件和后置条件。
在讨论区中,可以添加与组件相关的注释。

二、快照选项卡: 可以使用此选项卡来捕获组件所属的特定页面的快照。
参数选项卡:如果想要从Compon传递数据或检索数据,可以使用此选项卡,这些类似于QTP中的操作/测试参数。 单击New链接添加新参数,需要提供
- 参数名称:参数的名称。
- 取值类型:参数类型(数字、日期、字符串、密码…等等)。
- 默认值:可以输入一些默认值,如果没有从组件传递任何值,则可以使用这些默认值。
- 说明:可以提及参数的简要说明。

与输入参数类似,可以添加或删除输出参数。如果要从组件返回任何 value(s) ,则必须使用输出参数。
三、设计步骤页签: 包含哪些组件需要执行的步骤,设计页签中的按钮按如下顺序显示。
添加新步骤、编辑、删除、复制、粘贴、创建/选择参数、完成参数、搜索、行高、保存和自动

要添加该步骤,单击‘Add New Step’,组件步骤编辑器将打开。输入步骤名称以描述步骤、说明(要在应用程序上执行的确切操作)和预期结果(执行步骤后的应用程序状态)。
当选择一个步骤并单击编辑步骤按钮时,也会打开步骤编辑器。 步骤编辑器中有文本编辑器工具栏,可用于设置字符串的格式,如粗体、斜体和下划线。

四、自动化选项卡: 将显示与组件相关的自动化步骤,如果组件已经自动化,将在下一步“自动化手动组件”中详细讨论此步骤。
五、依赖项页签: 将显示组件、BPT、流程、测试资源、应用程序等其他实体之间存在的依赖关系,依赖项页签包含以下三个页签
资源选项卡显示组件使用的应用程序区域(自动化组件所需的所有资源的逻辑分组/名称)。
使用者选项卡将显示包括当前所选组件的BPT和流的详细信息。如果想要导航到特定的BPT或流,可以只点击测试或流的名称,将被导航到BPT或Flow in Test Plan模块。
应用程序区域选项卡显示组件使用的应用程序区域的名称,与使用的网格一样,网格显示使用应用程序区域的实体以及应用程序区域使用的资源。
六、历史页签: 显示ENT中任意字段的变更,每次变更都会显示历史页签,包含两个子页签:
审核日志选项卡显示对不同字段、时间戳和用户详细信息所做更改的列表。
业务选项卡显示所选组件的不同版本。
步骤2) 自动化手动组件
构建应用领域
应用程序区域是一个逻辑实体,它帮助我们对所有必需的资源进行分组,以使应用程序或应用程序的一部分实现自动化。应用程序区域包含共享对象存储库、函数库和自动化组件所需的所有其他设置。
可以为整个应用程序创建一个应用程序区域,也可以根据需要为应用程序的不同部分创建尽可能多的应用程序区域。
打开QTP->文件->新建->应用程序区域
它将显示以下窗口,其中将包含四个模块。

常规: 它将显示应用程序区域的一般信息,如应用程序区域的名称、创建应用程序区域的作者、位置、描述和相关的加载项。
如果想删除任何加载项,可以单击Modify按钮并删除不必要的加载项。
其他设置包含与正常记录和运行设置以及QTP类似的记录和运行设置。

甚至可以使用恢复选项添加要与应用程序区域关联的任何恢复方案。根据加载项,已经选择了其他与环境相关的设置选项。

函数库
此模块将帮助我们将所有必需的函数库与应用程序区域相关联。

对象存储库
此模块将帮助我们关联所需的共享对象存储库,类似于函数库。

关键词
“关键字”窗格显示所有内置方法、函数库中的所有用户定义函数和对象存储库中的对象。此外,“关键字”窗格还显示由我们或使用外接程序可扩展性开发的第三方开发的任何测试对象类的方法和属性。

在添加了所需的函数库、共享对象存储库并进行了必要的设置之后,可以保存应用程序区域。
将手动部件转换为自动部件
导航回要自动化的特定零部件的QC和设计选项卡。一旦组件转换为自动化组件,就不能再将其转换回手动组件。


关键字驱动组件
导航至自动化选项卡。
它将显示消息“要创建步骤,必须首先通过单击选择应用程序区域来选择一个应用程序区域”

单击选择应用程序区域后,将显示以下窗口,其中将显示可用应用程序区域列表,可以从中选择所需的应用程序区域。

选择应用程序区域显示在自动化选项卡的底部。

可以类似于使用关键字视图在QTP中自动执行组件的方式来自动执行组件。自动化组件后,步骤如下所示

脚本化组件
导航至自动化选项卡。它将显示启动按钮以启动QTP。

单击启动按钮(QTP应该安装在同一台机器上),它将打开QTP并显示一个弹出窗口,要求我们将应用程序区域与组件相关联。

一旦应用程序区域与组件相关联,组件就可以使用所有资源,可以使用这些资源编写组件脚本。
步骤3) 开发BPTS
BPT可以是自动测试,也可以是手动测试。由使用自动化组件创建的手动业务组件BPT组成的BPT称为自动BPT。
要创建手动或自动BPT,必须使用QC中的测试计划模块。 单击左侧窗格中的测试计划模块图标

通过单击Add Folder图标创建想要在其中创建业务流程测试的文件夹。

输入文件夹名称,然后单击确定按钮

单击“创建新测试”图标。

选择Test Type作为‘Business-Process’,并为BPT输入一些有意义的名称。

显示如下

选择‘Test script’选项卡->,然后选择‘Select Component’子选项卡。它将在右侧显示包含所有组件信息的组件模块树

按逻辑顺序拖放组件以形成业务场景。也可以在安排下面的组件后,在下面显示BPT示例

如果新组件在测试计划模块本身的组件树中不可用,也可以通过单击“New component request”来求新组件。
一旦在测试脚本编辑器窗格中排列了组件,它就会显示为五列结构:
- 组件/流:将与快照图像一起显示组件(如果包含)。
- 状态:组件的状态,可以是前面讨论的任何一种状态。
- 输入:如果有输入参数,它将显示在此列中。
- 输出:如果有输出参数,它将显示在此列中。
- On Failure:它将显示一个下拉列表,可以在其中选择希望在组件出现故障时执行BPT的操作。可以选择继续或退出BPT。

配置输入参数
要配置任何组件的输入参数,可以单击特定组件的Input列中的Input Parameters链接,也可以右键单击该组件并选择Input Parameters Values->Iterations。

单击输入参数链接后,将打开Component Iterations对话框。

可以输入组件的所有输入参数。如果要多次运行组件,可以通过单击“添加迭代”并输入数据来添加多个迭代。
如果要删除任何小版本,首先选择该小版本,然后单击“Delete Iteration”(删除小版本),所选小版本将被移除。
如果只想运行选定的迭代,可以使用“Select Iterations”,并且可以按如下所示的方式运行想要运行的迭代范围。

甚至也可以从外部逗号分隔的文件导入输入参数,并且可以使用导入和导出选项导出用于特定组件的列表参数。
当点击导入选项时,它将显示文件对话框,允许我们选择所需的文件,如下所示。

选择后,将显示映射参数对话框,需要在其中将文件中的列标题映射到组件中的参数。必须对所有输入参数执行此练习。


如果想要使用前面组件的输出参数,需要单击参数列名下面的Output复选框。
将显示输出参数列表窗口,其中包含先前组件的所有输出参数列表。可以从中选择所需的输出参数,然后单击确定按钮。

对组件进行分组/取消分组
有时,如果希望将BPT中的组件组合在一起运行多次,则需要将它们组合在一起。首先,选择要对其进行分组的组件,然后单击Group Components图像,或者右键单击选择组件,然后选择Grouping>Group Components。

对组件进行分组后,它将如下所示。如果要解组组件,选择该组并单击解组组件图标。

向分组的组件添加参数/迭代
这与输入单个组件的参数数据的方式类似,但唯一的区别是,当单击分组组件的任何输入参数链接时,它将一起显示所有组件的输入参数。
BPT状态
与组件具有不同的状态一样,BPT也将根据BPT的创建及其进度而具有不同的状态。
BPTS状态可由其组件的状态确定。BPT状态由其所有组件中最严重的状态决定。 例如,假设有一个业务流程测试,其中包含:
- 3个就绪组件
- 1个维护组件
- 2在开发组件下
- 1个错误组件
- 1在开发(求)组件下
在此示例中,测试状态为Error,因为Error是测试中业务组件的最严重状态。
步骤4) 调试BPT
一旦设计好BPT,需要运行BPT来检查组件是否按正确顺序排列,传递的数据是否正常工作。这类似于用所有可能的方式(肯定的和否定的)和数据测试我们的自动化脚本,以检查脚本的准确性。
在测试中,计划模块单击“测试脚本”工具栏中的“运行或调试测试”按钮。

单击Run(运行)按钮后,将显示“Run or Debug Test(运行或调试测试)”窗口。在Run窗口中,有两个选项可以选择如何运行我们的BPT。
- 正常
- 调试

调试模式: 当在此模式下运行组件时,默认情况下会在组件的第一行添加断点,这将帮助我们逐行调试组件。
正常模式: 在此模式下,它从开始运行到结束,不会暂停,并立即继续到测试中的下一个组件。
可以根据需要为每个组件选择任意一种模式。如果已经验证了同一BPT或另一BPT中的某些组件,则可以直接进入正常模式。
执行完成后,它将显示BPT的所有组件的执行总结。

步骤5) 执行BPT
一旦BPT被彻底开发和测试,可能需要将这些BPT作为回归、健全或任何其他测试周期的一部分来运行。 要执行BPTS,需要使用QC的测试实验室模块。导航到Test Lab,然后选择要在其下运行这些BPT的测试计划文件夹和测试集。

从Test Lab Grid中选择“Select Tests”选项,在右侧将显示一个带有测试计划树结构的窗格,其中包含所有测试用例。即使也可以使用拖放功能来选择要运行的BPT。
将BPT添加到执行网格后,需要单击“Run”按钮。
点击‘Run’(运行)按钮后,会显示一个单独的‘Automatic Runner’(自动运行程序)窗口,必须在该窗口中说明必须在哪台机器上运行这些BPT。可以在将要运行的同一台机器上运行测试。

在“Run on Host”栏中提到机器名称后,如果要运行“Automatic Runner”窗口中的所有测试,则需要单击“Run All”,如果只想运行选定的BPT,则需要选择“Run”。
QC将自动连接到上述机器并执行BPT,并将结果更新回QC,状态为通过或失败。

如果双击特定测试,它将显示该特定测试的进一步详细结果。
