1、广州南天自动化测试广州南天什么是自动化测试什么是自动化测试自动化测试的优势自动化测试的优势自动化测试的方法比对自动化测试的方法比对自动化测试流程自动化测试流程经验总结及分析建议经验总结及分析建议主要内容主要内容什么是自动化测试自动化测试适用于各种大型系统,尤其是投入运营后变更频繁或者多期开发的系统。可以为B/S系统、字符终端、C/S系统。什么是自动化测试什么是自动化测试自动化测试的优势自动化测试的优势自动化测试的方法比对自动化测试的方法比对自动化测试流程自动化测试流程经验总结及分析建议经验总结及分析建议主要内容主要内容自动化测试的优势降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力
2、投入降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力投入自动化测试的优势2 减少重复测试的时间,实现快速回归测试。减少重复测试的时间,实现快速回归测试。3增强测试的覆盖率,从而提高产品质量,降低潜在风险增强测试的覆盖率,从而提高产品质量,降低潜在风险 自动化测试的优势广州南天4 通过自动化测试发现系统的隐患,保证了系统上线后的稳定运行,避免了由于系通过自动化测试发现系统的隐患,保证了系统上线后的稳定运行,避免了由于系统缺陷造成的损失。统缺陷造成的损失。时间开发阶段升 级运 维阶 段成本时间开发阶段升级运维阶 段成本手工测试手工测试自动化测试自动化测试自动化测试的优势 创建优良可靠的
3、测试过程,减少人为错误; 可以运行更多更繁琐的测试; 可以执行一些手工测试困难或不可能进行的测试; 更好的利用资源; 测试具有一致性和重复性; 测试脚本的重用性;5 其他优势:自动化测试的优势什么是自动化测试什么是自动化测试自动化测试的优势自动化测试的优势自动化测试的方法比对自动化测试的方法比对自动化测试流程自动化测试流程经验总结及分析建议经验总结及分析建议主要内容主要内容自动化测试常用的方法u 按照脚本的编写方法分为:u录制方式u描述性编程的方式u 按照脚本的组合方式分为:uQTP方式uQTP+QC方式uQTP+其它辅助工具的方式u 按照脚本的action数分为:u单个action的方式u多
4、个action的方式。自动化测试的实现方法比对 例如:Browser(管理系统).Page(管理系统).Link(我的工作日志).Clicku录制方式和描述性编程的比较录制方式录制方式描述性编程方式描述性编程方式例如:Browser(“creationTime:=”¤twin).Page(“index:=0”). Link(“text:= 我的工作日志”, “visible:=true”,“index:=).Click共同点 都通过识别界面对象,实现功能的自动化不同点 录制方式需要使用对象库,描述性编程不需要对象库,对象是运行时实时在页面中获取的。 录制方式的脚本后期需要维护对象库
5、 录制方式脚本不灵活,不能随着环境的改变而变化u录制方式和描述性编程方式的比较脚本组合方式的简单介绍:QTP方式:方式: QTP中编写脚本,在QTP自带的工具中执行组装及运行。QTP+QC方式方式: QTP中编写脚本,将脚本保存到QC的“业务组件”模块中,然后通过模块“测试计划”将一个个单独的脚本按照每个案例的要求进行组合,最后在“测试实验室”模块中设置每个业务流、执行流或者单个的脚本的执行顺序,实施执行。 现在的很多公司都是使用QTP+QC方式这种方式,例如:百度、TATA、移动等QTP+其他辅助工具的方式其他辅助工具的方式: 这里的辅助工具可能是只实现运行时配置数据的功能;也可能是集脚本的
6、组合、脚本的调用、数据的配置为一体的功能;还可能是为了更好的识别对象加载的其他自动化工具。(如辅助工具:TAR插件、autoit3插件、word、excel、FER等)根据辅助工具的不同,脚本的组合与调用方式也不同。uQTP方式、QTP+QC方式、QTP+辅助工具的方式测试人员专注于数据测试人员专注于数据准备、测试执行准备、测试执行脚本开发人员专注脚本开发人员专注于脚本开发于脚本开发设计人员控制其他三设计人员控制其他三层的信息交互内容层的信息交互内容数据层业务层脚本层设计层业务人员专注于业务业务人员专注于业务实现实现QTP+QCQTP+QC方式实现了业务层、脚本层的分离;方式实现了业务层、脚本
7、层的分离;QTP+QTP+其它辅助工具的方式则实现了其它辅助工具的方式则实现了数据层、业务层、脚本层三层分离,分工明确,数据层、业务层、脚本层三层分离,分工明确,各有所专,提高测试质量和效率各有所专,提高测试质量和效率uQTP+QC方式、QTP+其它辅助工具的方式u QTP+QC方式、方式、QTP+加辅助工具的方式的不同:加辅助工具的方式的不同: 脚本的编写脚本的编写:u QTP+QC方式:编写的脚本只能为录制方式的;u QTP+其它辅助工具的方式:可以是录制方式也可以为描述性编程方式。 函数调用:函数调用:u QTP+QC方式:只能调用本脚本中编写的函数,不能调用公共函数;u QTP+其它辅
8、助工具的方式:通过在资源中加载公共函数,脚本中可以直接调用。 数据配置:数据配置:u QTP+QC方式:每次运行时必须一个一个业务流或者执行流的配置数据;u QTP+其它辅助工具的方式:辅助工具可以将本次执行的脚本用的所有参数进行统一配置。uQTP+QC方式、QTP+其它辅助工具的方式u QTP+QC方式、方式、QTP+其它辅助工具的方式的不同:其它辅助工具的方式的不同: 执行目的的直观性:执行目的的直观性:u QTP+QC方式:脚本按照一定顺序组成的业务流或者执行流,不能快速直观地看到每个流的具体验证目的;u QTP+其它辅助工具的方式:辅助工具一般采用EXCEL方式,每个脚本后都有备注部分
9、,为了能够快速的了解脚本在各种流中的执行目的。 缺陷的提交方式:缺陷的提交方式:u QTP+QC方式:脚本执行时的发现的缺陷可以直接提交到QC的缺陷管理中;u QTP+其它辅助工具的方式:通过查看并且分析实际的执行结果,手动提交缺陷。uQTP方式、QTP+QC方式、QTP+其它辅助工具的方式广州南天单个action方式比多个action方式的优势: 颗粒度:颗粒度:u 单个action方式:每个脚本实现一个最基本的系统功能;u 多个action方式:每个脚本实现多个系统的基本功能,脚本分解颗粒度比较大。 复杂性:u 单个action方式:每个脚本中只实现一个基本功能,脚本简单,容易阅读;u 多
10、个action方式:每个脚本中由一个主控action控制其余几个action的运行,脚本相对比较复杂,阅读困难。 复用性复用性u 单个action方式:脚本颗粒度小,根据不同的业务流,可以随意的组合脚本,脚本组合方便; 多个action方式:脚本颗粒度大,不同的业务流,脚本组合比较繁琐,复用性相对比较低。u单个action与多个action的方式什么是自动化测试什么是自动化测试自动化测试的优势自动化测试的优势自动化测试的方法比对自动化测试的方法比对自动化测试流程自动化测试流程经验总结及分析建议经验总结及分析建议主要内容主要内容自动化测试流程设计人员脚本设计设计评审人员脚本开发人员业务测试人员案
11、例业务评审人员案例案例脚本设计脚本设计脚本评审人员脚本执行测试的计算机测试人员测试数据测试数据脚本设计脚本设计脚本脚本测试集文件测试集文件执行结果执行结果缺陷报告缺陷报告什么是自动化测试什么是自动化测试自动化测试的优势自动化测试的优势自动化测试的方法比对自动化测试的方法比对自动化测试流程自动化测试流程经验总结及分析建议经验总结及分析建议主要内容主要内容自动化测试的实施建议(即以往工作经验总结):自动化测试的实施建议(即以往工作经验总结):1 1、“灵活性灵活性” 在运行中若遇到非QTP自身的问题,程序不应以“Run err”终止,而是由我们脚本进行控制,通过“micFail”和“exittes
12、t”结束。 2 2、“便于维护性便于维护性” 脚本中尽量多用参数化,包括对象名,提示框信息等。另一方面脚本中增加尽可能多的report语句,以便于快速准确地定位缺陷的位置。 3 3、“重用性重用性” 脚本颗粒度划分越小越好。脚本颗粒度越小,脚本的重用性越强,后期脚本的维护工作量越小。4 4、“准确性准确性” 尽可能多增加检查点,保证我们信息与数据的准确性。5 5、“可依赖性可依赖性” 尽可能多的增加评审与交叉,保证我们各阶段成果的质量。经验总结及分析建议经验总结及分析建议描述性编程在自动化测试中的应用:描述性编程在自动化测试中的应用:1 1、采用描述性编程的方式,不仅可以减少后期脚本的维护工作
13、量,而且、采用描述性编程的方式,不仅可以减少后期脚本的维护工作量,而且可以通过编写公共函数,尽力减少脚本的重复性代码,代码达到简洁并且可以通过编写公共函数,尽力减少脚本的重复性代码,代码达到简洁并且容易阅读。容易阅读。2 2、实现了三层分离的方法,也就是数据层、脚本层、业务层三层分离的、实现了三层分离的方法,也就是数据层、脚本层、业务层三层分离的方法,能够发挥测试人员、业务人员、脚本编写人员的各种人员所长。方法,能够发挥测试人员、业务人员、脚本编写人员的各种人员所长。3 3、加入加入autoit3autoit3组件,使之更好的识别组件,使之更好的识别windowswindows对象。对象。 4
14、 4、使用使用comcom组件、组件、apiapi函数增强脚本,优化脚本。函数增强脚本,优化脚本。 5 5 、利用正则表达式、模拟键盘操作等技术识别对象。、利用正则表达式、模拟键盘操作等技术识别对象。经验总结及分析建议采用采用QTP+QTP+其它辅助工具的方式的过程中,建议注意以下几点其它辅助工具的方式的过程中,建议注意以下几点: :1 1、脚本采用一个脚本只包含一个、脚本采用一个脚本只包含一个actionaction(或(或functionfunction)的方式)的方式2 2、尽力做到一个脚本只实现系统的一个基本功能,也就是脚本颗粒度、尽力做到一个脚本只实现系统的一个基本功能,也就是脚本颗
15、粒度分分解要尽力的小,这样不仅可以增强脚本的复用性,而且便于脚本的组合及解要尽力的小,这样不仅可以增强脚本的复用性,而且便于脚本的组合及流程案例的实现。流程案例的实现。3 3、为了保证每个阶段成果的准确性,建议增加各阶段的交互工作或者评为了保证每个阶段成果的准确性,建议增加各阶段的交互工作或者评审过程。审过程。4 4、制定各阶段工作的文档模版,保证各阶段工作的内容全面及衔接顺畅。制定各阶段工作的文档模版,保证各阶段工作的内容全面及衔接顺畅。5 5、另外也从经验总结中提出的、另外也从经验总结中提出的 “灵活性灵活性”“”“便于维护性便于维护性”“”“重用重用性性”“”“准确性准确性”“”“可依赖性可依赖性”五个方面进行考虑。五个方面进行考虑。