分层自动化测试v0.9(isqb)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UI自动测试实践---流程分析
• 测试设计——设计测试用例
• 现在要针对银行付款业务设计一个测试用例,进行功能的覆盖 • 1 划分业务功能、画出业务流程图
1 新增 2复核
4 修改
3 取消复核
5 删除
UI层自动化测试实践---流程分析
2 确定业务功能或业务组件,编写测试脚本
在流程图中,可以得出,本业务可以划分成以下业务功能: 新增、复核、取消复核、修改、删除
suite.addTestSuite(CalculatorTest.class); suite.addTestSuite(LargestTest.class); return suite; }
}
返回suite,TestSuite 实现了Test接口
单元测试---最佳实践
• 测试案例与被测试的类放在不同的java包,测试案例的包名为:test.测试类所在的 包名
UI层的JS自动化测试实践
UI层JS自动化测试的最佳实践
重点关注能主要业务场景或功能
不宜全面展开和过度关注异常情况
可以重点关注浏览器兼容性测试 扩展自动化测试到手工测试难以的领域
UI层的action测试---例子
目录
A B
基于UI的自动化测试实践 1. 2. 3. 4. 接口测试原理 各种接口测试实施方案 自动化测试组织方式 简单的演示
测试类应该只包含一个程序单元(相类似的几个程序单元)的测试案例,即当一个
百度文库
java类实现了多个程序逻辑时,可以用多个测试类来完成测试工作
• 可以用TestSuite来确保某些案例的测试顺序;比如可以顺序执行:create,query, update,delete的测试案例
•
测试类应保持相对稳定,以防止因测试类本身的问题而导致测试失败
客户端协议模拟---场景配置
账户信息 初始化函数
恢复函数
协议信息参数化
用例后台执行过程
基础信令模板 SIPC执行引擎 HTTP执行引擎 测试用例 协议解析 路 由 选 择 …… WAP接口引擎 SDK接口引擎 协议场景 协 议 验 证
接口层的自动化测试实践—演示
从TD读取测试用例 配置信令场景
分层自动化测试构想
北京新媒传信科技有限公司 薛亚斌
目录
A B
基于UI的自动化测试实践
怎么样才能做好自动化
1. 为什么要进行自动化 测试 2. 自动测试思考 3. 测试金字塔测试策略
C
服务接口自动化测试实践
D
单元测试的一些尝试
为什么要进行自动化测试
高质量的产品
自动化测试的思考
• 为什么要分层测试?
UI层的JS测试工具---QUnit
QUnit是jQuery团队开发的JavaScript测试工具,使用方便, 界面美观 使用QUnit 时,只需添加 qunit.js和qunit.css 引用
测试过程:
function CalculateAPlusB(a,b) { return a+b; }
test("basic calculation", function() { equals(CalculateAPlusB(1,5),6,"1+5=6"); equals(CalculateAPlusB(1.2,5.5),6.7,"1.2+5.5=6.7"); equals(CalculateAPlusB(-1,10),9,"-1+10=9"); });
单元测试---关于单元测试
根据项目制定覆盖策略
高层引导,自发进行 完善制度保障体系
讨论提问
讨论!
5 测试用例、测试脚本导入QC
UI层自动化测试实践---流程分析
• 将传入参数和数据写入到一个Excel表格中,并保存;执行时将数据 导入脚本对应的sheet中 • 同时,填写《设计参数说明》,将Action的名称和传入参数的字段记 录存档。
UI层自动化实践(2)---电信行业实践
分析被测试业务 流程
3 确定业务数据,参数化脚本数据
由于只要进行流程的覆盖,所以暂时可以把业务数据作的简单一点。
4 根据流程图,写出测试场景
银行付款有一个起始点,两个结束点,按照功能覆盖的思想,选择两条路 径即可。如果要考量到动作之间的关联性,路径就比较多了。 基于以往的经验,取消复核、二次复核比较容易出现问题,因此两条路径 分别为: 路径一:新增-复核-取消复核-修改-复核 路径二:新增-复核-取消复核-删除
配置信令参数数据
关联信令业务场景 自动生成测试脚本 制定执行计划
测试执行结果
接口测试的最佳实践
重点关注接口设计、依赖关系、输入输出
关注主要业务场景及功能
测试代码》测试工具》自动化测试
目录
A B
基于UI的自动化测试实践
1. 2. 3. 4. 常用单元测试工具 Junit测试框架介绍 Junit最佳实践 关于单元测试“度”
16
UI层自动化测试的最佳实践
重点关注能被重复多次运行用例或功能 仅保持UI测试在小规模上 扩展自动化测试到手工测试难以的领域
有效结合自动化测试和手工测试
引入覆盖衡量和不断优化自动化测试
为什么做JS层的自动化测试
UI层的JS自动化测试原理
UI界面
JS模拟 UI操作
Action层
Server
Dao
UI层自动化测试---开源工具测试框架
Excel+Watir
Suite/case对象 Excel xml
• 业务 • 数据
Watir
Run
UI层自动化测试---业务组织
UI层自动化测试---数据管理
UI层自动化测试---对象管理
<?xml version="1.0" encoding="UTF-8"?> <pageroot> <page name=“index” reg=“” title=“xxx网站登录"> <element name=“loginusername" disc="" type="text"> <xpath>username</xpath> </element> <element name="loginpassword" disc="" type="password"> <xpath>password</xpath> </element> <element name="SUBMIT" disc="" type="submit"> <xpath>Submit</xpath> </element> </page> </pageroot>
怎么样才能做好自动化
C
服务接口自动化测试实践
D
单元测试的一些尝试
单元测试工具
• 目前的最流行的单元测试工具是xUnit系列 框架,常用的根据语言不同分为
JUnit(java) CppUnit(C ) DUnit (Delphi ) NUnit(.net) PhpUnit(Php )等等。
单元测试---Junit生成测试框架
怎么样才能做好自动化
C
服务接口自动化测试实践
D
单元测试的一些尝试
服务接口层的自动化测试实践—原理
展示层 调用接口 模拟 调用接口
服务接口类
服务接口实现类
Dao
客户端模拟
Server端
Blackberry MTK Iphone Java …… Symbian MAP Windows Mobile Windows Phone Android PB
Unit
• CodeReview
目录
A B
基于UI的自动化测试实践
1. 2. 3. 4. UI层实践-商用工具 UI层实践-开源工具 UI层JS测试实践 UI层action测试思路
怎么样才能做好自动化
C
服务接口自动化测试实践
D
单元测试的一些尝试
自动化测试工具
Watir
UI自动测试实践---组织方式及流程
public void login (String username, String password) { function.open("/"); function.waitForPageToLoad("30000"); function.type(“index: loginusername ", username); function.type("index: loginpassword ", password); function.click("index:SUBMIT"); //自定义的action方法 action.selfDefMethod(); //验证页面出现对应的字符串 check.verifyTextPresent("hi," + username); }
MCP
客户端
集群项目的测试模拟
模拟测试系统发送请求
被测系统
前置条件
被测系统发送请求
返回请求
模拟系统
下发请求通知
(根据请求内容下发通知)
外部接口测试
接口测试工具:测试人
员只需按照协议规范设置自 己需要测试的参数即可完成 请求的组织过程。使用非常 方便快捷
接口自动化测试:通过
对接口输入和输出标准化定 义,实现接口自动化测试, 其前置条件可以配置或者根 据协议自动化平台设置
内部接口测试(SDK)
SDK:“软件开发工具
包”。广义上指辅助开发某一 类软件的相关文档、范例和工 具的集合,也可以简单的为某 个程序语言提供应用程序接口 API的一些文件。
测试工具与自动化测试:
相对于接口自动化测试工具更 为简单快捷、易于开展测试。 但对于接口众多的系统来说进 行自动化测试非常必要,但需 要跟多的考虑前置条件和初始 化及系统恢复
•
测试类的类名为:Test+被测试类的类名;如果测试类只涉及了被测试类的部分逻
辑,则测试类的类名应为: Test+被测试类的类名+被测试的程序逻辑描述
•
测试类应包含一个程序单元的正向案例和反向案例逻辑。
•
对程序bug,可以用一个单独的测试类来实现;
的类名+Bug编号
其类名可为: Test+被测试类
•
新建测试代码
单元测试---Junit测试多个类
public class TestAll extends TestCase{
必须是 static 返回一个Test类型 方法名必须 是suite 生成一个 TestSuite 测试类对应的 class对象,还可 增加TestSuite的 对象
public static Test suite() { TestSuite suite = new TestSuite();
• 项目实例:QTP+QC自动化测试(HP方案)
业务流程测试
根据业务流程图,分解 创建创建测试过程中需 要的业务组件 根据业务流程,组合不 同的业务组件实现业务 流程测试
QTP专家在QTP环境中 开发测试脚本,并且将 脚本上传至MQC 通过QC调试整个业务流 程测试组件
将业务流程添加到QC的 测试集中,运行流程测 试 生成测试缺陷,分析 测试缺陷并且上传至 QC中
– 分层才能保证快速反馈,而不是都等到最后才反馈 – 恰当的分层测试可以降低总测试成本
测试金字塔与自动化测试策略
• UI自动化测试
• JS自动化测试
1. UI界面层
UI
• Action自动测试
• 客户端模拟测试
2. 业务逻辑层
Server 3. 数据处理层
• 对外接口测试 • SDK接口测试
• 单元测试
生成被测试功能 的GUI文件
生成测试脚本
根据业务流程 抽取、实现业 务函数 根据业务流程 抽取、实现检 查点函数 根据被测试系统 的特点实现适用 整个被测试系统 的公用函数 根据业务流程 配置、调用业 务函数,组合 出测试case 调试组合的代 码
运行自动测试
分析测试结果,记 录缺陷到缺陷跟 踪系统