可以设想一下自动化测试开发与执行的场景。首先,研发人员根据测试任务的要求,开发和调试自动化测试脚本,并能基于脚本和测试环境组合成测试任务,而这些任务能够在晚上自动执行。这就需要在下班前预先安排测试任务,如在某个web页面提交测试任务、查看测试结果。这种测试任务能够按某种机制自动启动执行,而且需要找到可用的测试资源来执行测试任务,这依赖于安装在测试机器上的代理来进行交互通信,获得机器状态、运行测试工具和将测试日志发送到某服务器上供分析。所以,自动化测试集成了测试脚本开发环境、测试执行引擎、测试资源管理、测试报告生产器、函数库、测试数据源和其他可复用模块等,而且还能够灵活地集成其他各种测试工具,包括单元测试工具、系统功能测试和性能测试工具等。
框架和工具地根本区别是:框架只是完成一个架构,用户可以根据自己地需求进行填充,如进行二次开发,增加具体的、特定的功能,还可以集成其他不同的测试工具;而一个测试工具相对固定,无法进行二次开发,也不能集成大量地第三方测试工具。
自动化测试框架能够与CI环境、配置管理系统和缺陷管理系统等集成起来,持续构建后直接触发自动化测试,做到CI与持续测试无缝集成。测试工具所发现的缺陷能自动记录到缺陷库中,形成一个良好的开发和测试整合的环境。例如,开源TA框架——STAF提供测试所需的基本服务(如配置、文件传输、进程处理、消息队列、资源池、跟踪、日志、监控等),提供TA框架所需的底层通信,并使不同的测试工具进程之间交换数据。STAF需要和软件自动化框架支持及自动化执行引擎结合起来使用。
过去谈到自动化框架,会谈到数据驱动的测试框架和关键字驱动测试框架。目前自动化测试框架一般都支持数据驱动,数据驱动的技术主要体现在脚本中可以定义参数变量,参数变量的取值通过数据文件或特定的数据表来实现,实现脚本和数据分离。而且在实际的项目中,许多测试用例的操作行为或步骤是一样的,不同的是输入数据,测试用例体现在输入数据上,所以数据驱动的脚本很有价值,将来修改和丰富测试用例,只要修改数据文件,而不影响自动化测试脚本。
也有人从其他角度,如从脚本语言或描述方式对自动化测试框架进行分类,分为以下4种类型:
1、函数型自动化测试框架,属于轻量型的测试框架。它只是通过函数的方式来定义和调用测试用例,借助IDE平台管理测试用例集,从而快速的实现自动化测试。
2、单领域语言型,通过自然语言或者关键字形式的领域特定语言描述测试用例,形成更清晰、更易理解的自动化脚本。
3、多领域语言型,通过多句或者多个关键字的领域语言来描述一个特定的场景,使得测试用例更容易阅读和理解,并比较容易形成一套活文档系统。
4、富文档型。通过富文档的方式来描述负责的软件测试场景,甚至可以增加业务流程图活系统用户界面等。
如果团队只关注快速实现自动化测试,可以选择函数型自动化测试框架。如果为了解决知识传递问题,让测试用例更可读和易懂,这时适宜选择单领域语言型。如果为了进一步解决和非技术人员协作开发的问题、让测试脚本更具有可读性和可维护性,拥有一套活文档,可以选择多领域语言型自动化测试框架或富文档型。有的框架只支持自己特定的脚本,有的框架可以支持流行的编程语言,我们选择框架时,应该优先选择后者。
框架和工具地根本区别是:框架只是完成一个架构,用户可以根据自己地需求进行填充,如进行二次开发,增加具体的、特定的功能,还可以集成其他不同的测试工具;而一个测试工具相对固定,无法进行二次开发,也不能集成大量地第三方测试工具。
自动化测试框架能够与CI环境、配置管理系统和缺陷管理系统等集成起来,持续构建后直接触发自动化测试,做到CI与持续测试无缝集成。测试工具所发现的缺陷能自动记录到缺陷库中,形成一个良好的开发和测试整合的环境。例如,开源TA框架——STAF提供测试所需的基本服务(如配置、文件传输、进程处理、消息队列、资源池、跟踪、日志、监控等),提供TA框架所需的底层通信,并使不同的测试工具进程之间交换数据。STAF需要和软件自动化框架支持及自动化执行引擎结合起来使用。
过去谈到自动化框架,会谈到数据驱动的测试框架和关键字驱动测试框架。目前自动化测试框架一般都支持数据驱动,数据驱动的技术主要体现在脚本中可以定义参数变量,参数变量的取值通过数据文件或特定的数据表来实现,实现脚本和数据分离。而且在实际的项目中,许多测试用例的操作行为或步骤是一样的,不同的是输入数据,测试用例体现在输入数据上,所以数据驱动的脚本很有价值,将来修改和丰富测试用例,只要修改数据文件,而不影响自动化测试脚本。
也有人从其他角度,如从脚本语言或描述方式对自动化测试框架进行分类,分为以下4种类型:
1、函数型自动化测试框架,属于轻量型的测试框架。它只是通过函数的方式来定义和调用测试用例,借助IDE平台管理测试用例集,从而快速的实现自动化测试。
2、单领域语言型,通过自然语言或者关键字形式的领域特定语言描述测试用例,形成更清晰、更易理解的自动化脚本。
3、多领域语言型,通过多句或者多个关键字的领域语言来描述一个特定的场景,使得测试用例更容易阅读和理解,并比较容易形成一套活文档系统。
4、富文档型。通过富文档的方式来描述负责的软件测试场景,甚至可以增加业务流程图活系统用户界面等。
如果团队只关注快速实现自动化测试,可以选择函数型自动化测试框架。如果为了解决知识传递问题,让测试用例更可读和易懂,这时适宜选择单领域语言型。如果为了进一步解决和非技术人员协作开发的问题、让测试脚本更具有可读性和可维护性,拥有一套活文档,可以选择多领域语言型自动化测试框架或富文档型。有的框架只支持自己特定的脚本,有的框架可以支持流行的编程语言,我们选择框架时,应该优先选择后者。









