自动化测试与自动化测试介入时机
自动化测试与自动化测试介入时机
转自:.html
先mark下,关注:
1、各类测试理论定义,相应工具
2、现在,在阿里不管是接口测试还是UI自动化,基本上都是在与开发同步进行,我们需要将自动化的作用最大化,提高测试的效率。
所有,我最终的
自动化测试与自动化测试介入时机
转自:.html
先mark下,关注:
1、各类测试理论定义,相应工具
2、现在,在阿里不管是接口测试还是UI自动化,基本上都是在与开发同步进行,我们需要将自动化的作用最大化,提高测试的效率。
很长时间,一直都在做自动化相关的事情,包括测试框架,测试平台,以及持续集成等等。但是这些的基础还是依靠优秀的自动化测试代码,下面的内容就是自动化测试的相关知识点,相信大家可以从这些点中可以到很多的共鸣,然后扩展,方便大家更好的深入学习。
01 一些测试理论
1. 测试分类的三维模型:
- 以时间趋势为基线的分类,如系统测试,集成测试…
- 以测试方法为基线的分类,这种分类是面向质量体系的,如功能测试、性能测试、安全测试…
- 以测试目标为基线的分类,如白盒测试、黑盒测试、灰盒测试。
- 黑盒测试是验证应用程序行为准确性的测试;
- 白盒测试是验证应用程序结构准确性的测试;
- 灰盒测试介于黑盒测试和白盒测试之间;
- 黑盒测试和白盒测试,与是否需要写代码无关。
- 特点:使用机器和程序的能力
- 目标:减少资源消耗;扩大测试范围;充分发挥人和机器的能力;
- 风险优先;
- 成本优先;
- 检查风格
- 检查设计
- 发现代码缺陷
- 要被测试的代码都需要被覆盖到
02 UI自动化测试
1. UI自动化的应用:
- 一般用于测试回归;
- 覆盖越多的业务越好;
- 衡量成本和收益:人工回归与自动化方式的投入和效率对比
2. UI自动化的缺陷:
.1 基于Javascript的方案
5.1 Dom级别
6.1 Diff技术的应用
0 单元测试
1.自动化测试的哲学:
- 事先测试(TDD)与事后测试
- 针对状态的测试和针对行为的测试;
- 状态测试: 校验应用起始和结束的正确性;
- 行为测试: 校验所依赖的对象行为是否正确;
2.1 测试对象
-
桩模块: 为了让目标类正确运行而设计的支持类; -
驱动模块: 驱动目标类运行起来的类,比如junit。
- 控制点:直接输入(参数); 间接输入(控制返回值和状态);
- 检查点: 直接输出(值和状态); 间接输出(行为);
- Dummy Objects : 测试时用于填充且不做任何事情的对象。
- Test Stubs: 替换被测代码内部依赖的方法;
- Test Spies: 记录测试运行的日志,比如记录次数;
- Mock Objects : 充当Stub;和充当spies;
- Fake Objects : 生成一个专用于测试的类,实现测试中需要的方法; 应用场合: 对象所依赖的对象还未实现; 对象所依赖的对象过于复杂;
- 控制点: 被测对象依赖的某个类和方法需要实现;
- 检查点: 生成的结果依赖的某个类和方法需要实现;
- 依赖注入(Dependency Inject):将内部依赖改为外部传入(参数注入、构造注入、设置函数注入),设置缺省值;
- 依赖查(Dependency Look): 在不改动原代码的情况实现注入, 使用factory模式,使用服务定位器(service locator),使用Factory生成测试替身;
- Humble Object:在被测对象之上再封装一层,将所有被测对象的依赖全部放入封装对象里,即Humble Object,
- 测试钩子(test hood) :在被测对象中写一段利于测试的代码,如条件判断是否走生产代码还是测试代码;
- 感知: 感知某些方法调用产生的效果和影响,主要工具:fake object 和 mock object;
- 分离: 将应用其它部分分离并单独运行,解依赖技术(代码重构):参数适配、提取并重写工厂方法、封装全局应用、接口提取、实现提取;
- 测试存储过程: 使用SQLUnit、utPLSQL;
- 数据库存取测试:仅针对存和取进行测试,用Fake Object模拟数据库;
6.1 几种可行的单元测试管理方式:
- 一个生产类一个测试类;
- 一个功能一个测试类;
- 一个fixture一个测试类;
- 使用Test Suite: 分组: 基于功能分组、基于类型分组;
- 使用Annotation分组(junit4或testng);
- 测试代码和生产代码放在一起;
- 使用测试包;
- 测试依赖的数据文件:使用相对路径;
7.1 度量纬度:
- 对业务的代码行覆盖率;
- 测试执行的稳定性;
- 测试运行速度(不超过0秒);
- 缩短产品发布周期;
- 和系统测试阶段对比发现缺陷的数量;
04 接口测试
1.1 方法分类:
- 黑盒测试方法: 验证每个API的功能正确性;
- 白盒测试方法: 考虑各个API之间的关联性;
- 场景测试: 场景是应用运行的剖面; API组合方式的测试;
- 建立接口级别的测试集;
- 设立可被其它应用访问的最新版本的测试环境;
- 建立测试环境的持续集成环境;
- 对测试进行持续集成和持续构建,监控应用的变化,确定测试范围;
- 完成系统测试和集成测试后,才进行持续集成。
自动化测试是在开发阶段就介入呢,还是等手工测试结束之后,系统功能稳定后,介入?当时没时间去回答,就了以前在淘测试上看到的一篇文章发给他了。回到家之后,我在跑步机上想了下这个问题,现在我在做的自动化测试,会怎么去判断准入条件呢?
- 提供工作效率,运行自动化测试用例可以同时做其他的工作,而且测试效率有了提升,大量case可同时运行
- 提供运行的准确性和稳定性,避免外界因素的影响
- 避免重复劳动,防止大量的手工回归测试,节省成本
- 对测试人员而言,也是提高技能的一种手段
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2024-02-10 09:11:15
下一篇:ORM查询总结版
推荐阅读
留言与评论(共有 10 条评论) |
本站网友 什么的屏障 | 3分钟前 发表 |
测试时用于填充且不做任何事情的对象 | |
本站网友 浙菜 | 13分钟前 发表 |
基于类型分组; 使用Annotation分组(junit4或testng); 6.4 测试文件组织: 测试代码和生产代码放在一起; 使用测试包; 测试依赖的数据文件:使用相对路径; 7.单元测试质量: 7.1 度量纬度 | |
本站网友 收房注意事项 | 12分钟前 发表 |
0 单元测试 1.自动化测试的哲学: 事先测试(TDD)与事后测试 针对状态的测试和针对行为的测试; 状态测试: 校验应用起始和结束的正确性; 行为测试: 校验所依赖的对象行为是否正确; 2.单元测试基础知识: 2.1 测试对象 类的公有方法; 2.2 单元测试中的白盒测试和黑盒测试 参看01 一些测试理论 2. 桩模块和驱动模块 桩模块: 为了让目标类正确运行而设计的支持类; 驱动模块: 驱动目标类运行起来的类,比如junit | |
本站网友 江心洲二手房 | 26分钟前 发表 |
2.4 单元测试工具 junit | |
本站网友 reallink | 11分钟前 发表 |
fake 2.Http接口的web测试 使用WebDriver的htmlDriver | |
本站网友 山西大智慧下载 | 18分钟前 发表 |
从我现在所在的团队来看,这样的问题,我会从整个项目的周期来判断,下面是目前我们的一个做法,当然并不是很完整,我简单说一下过程 | |
本站网友 法医鉴定时间 | 15分钟前 发表 |
Mock Objects | |
本站网友 阳光半岛 | 2分钟前 发表 |
生成一个专用于测试的类,实现测试中需要的方法; 应用场合: 对象所依赖的对象还未实现; 对象所依赖的对象过于复杂; 2.7 Mock使用场合 控制点: 被测对象依赖的某个类和方法需要实现; 检查点: 生成的结果依赖的某个类和方法需要实现; .可测试性设计: 依赖注入(Dependency Inject):将内部依赖改为外部传入(参数注入 | |
本站网友 lol迅雷下载 | 7分钟前 发表 |
5. bugfix版本,自动化回归 对应一些bugfix的版本,除了验证bug之外,还得将之前的功能进行回归,这个阶段,自动化的case将节省不少的精力 |