开门见山,参考一些网上的资料,首先从概念谈起,回答如下4个问题:
● 什么是自动化测试
● 自动化测试生存周期
● 什么是自动化测试框架
● 测试内容的选取
◆什么是自动化测试
一种是先确定自动化测试工具再选取合适的测试内容,另一种是先确定测试内容再选取合适的工具(此工具可以不是自动化测试工具)。故产生了两种定义:
○ 使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试和功能测试中用得较多。
○ 使用软件来控制测试的执行,实际输出和预期输出的对比,测试前提条件的构建,以及其他测试控制条件和测试报告功能。
◆自动化测试生存周期
◆什么是自动化测试框架
实例:Automation center体系架构图
展现层:
给终端用户提供基于Web页面的四大功能模块
· 测试任务
发起安装/测试任务,并对任务状态进行实时监控
· 测试结果
展现测试结果,生成测试报告,邮件通知,提交bug全程自动化
· 日志分析
SMB协议访问日志服务器,轻松获得automation执行时的日志和抓图
· AC管理
* 脚本管理策略
* 测试组件策略
* 测试实例生成
* Agent资源管理,添加/删除
* Server资源管理,添加/删除
* AC核心设置
控制层:
controller是AC核心,负责如下工作
· 接收并处理用户发送的任务请求
· 管理和控制安装/测试Agent
· 分析和整理测试结果
· 内嵌测试报表/邮件逻辑
· 连接数据库,日志服务器和脚本服务器
Agent层:
Agent安装在任务机上,负责:
· 执行安装任务
· 执行测试任务
· 生成log/抓图数据,供后续分析
◆测试内容的选取
实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件:
1)软件需求变动不频繁。
测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。
项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。
2)项目周期足够长。
由于自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成。这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。
3)自动化测试脚本可重复使用。
如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。
另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量输入测试等。