基础知识总结——测试知识【二】
1、软件测试的生命周期:
- 单元测试
- 对具有独立功能的代码块进行测试
- 冒烟测试
- 大概的功能测试是否正确
- 集成测试
- 将代码块集成,主要检查模块之间的接口是否正确
- 系统测试
- 整个功能性能是否都满足需求设计
- 验收测试
- 保证软件准备就绪,满足用户线需求
2、黑盒测试:
- 测试用例设计
- 等价类
- 边界值
- 因果图
- 测试方法:
- 功能测试
- 性能测试
- 安全性测试
- 易用性测试
- 可靠性测试
- 自动化测试
- web自动化测试(UI自动化)
- 接口自动化测试
3、白盒测试
- 静态分析法:
- 控制流分析
- 数据流分析
- 信息流分析
- 动态分析方法
- 判定-分支覆盖
- 判定-条件
- 条件覆盖
- 条件组合
- 路径覆盖
4、测试过程
- 需求分析
- 设计测试方案
- 设计测试用例
- 功能测试用例、接口测试用例
- 搭建测试环境
- 执行测试
- 单元测试、接口测试、功能测试、验证BUG、回归测试、兼容性测试
- 测试报告
5、禅道缺陷管理
6、通用测试用例
7、测试用例设计方法
8、性能测试
性能分类:
-
负载测试:
- 通过逐步加压的方法,达到既定性能阈值的目标;
- 阈值的设定值应该小于某一个值,比如:cpu使用率小于80%
-
压力测试:
- 通过逐步加压的方法,使得系统的某些资源达到饱和,甚至失效的状态
- 什么条件下能把系统压崩溃
-
并发测试:
- 同一时间内,多个虚拟用户同时访问同一个模块、同一个功能
- 测试方法:设置集合点
-
容量测试:
- 在数据库层面,获取数据库的最佳容量的能力,也叫:容量预估
- 测试方法:在相同的并发用户,不同的基础数据量下,观察数据库的处理能力
- 获取数据库各项性能指标
- 在所有性能测试做完之后,未来业务可能飞速发展,同样一百个用户,一个表中有100条数据和1000条数据,数据库的性能会有所不同;
-
可靠性测试:
- 稳定性测试,疲劳测试
- 系统在高压环境下,长时间的运行系统是否稳定;
- CPU使用率在80%以上,7*24小时运行,系统是否稳定
- 比如:内存泄漏问题,运行的时间过长可能出现问题
-
异常测试:
- 系统架构方面的测试
- 在负载均衡架构中,测试宕机,节点挂掉等
性能指标:
- 事务、TPS、请求响应时间、事务响应时间、并发、吞吐量、点击率
-
事务:
- 从客户端发起的一个或多个请求,到客户端接收到从服务器返回的响应
- (这些请求组成一个完整的操作)
- 银行转账:农行200转到邮政,农行减少200邮政增加200,一个事务包含多个请求
-
TPS(transaction per s)
- 每秒钟系统能处理的事务数
-
请求响应时间:
- 从客户端发起一个请求开始,到客户端接收到从服务器返回的响应。整个过程所耗费的时间。
-
事务响应时间:
- 事务响应时间主要针对用户角度而言,
- 如:转账成功,一共多久时间
-
并发定义:
- 并发总有时间差,1毫秒1微妙也会存在
- 并发是一个时间范围:1秒内发起多少个用户
- 并发举例:
- 多用户在一个系统上同一个操作:大家对同一个商品秒杀
- 多用户在系统上进行不同操作:大家针对不同商品进行秒杀,商品浏览
- 并发用户数:
- 同一单位时间内:对系统发起请求的用户数量
-
吞吐量:
- 一次性能测试的过程中网络上传输的数据量的总和,网络占满
-
吞吐率:
- 单位时间内网络上传输的数据量
- 吞吐率 = 吞吐量/传输时间
-
点击率:
- 每秒钟用户向服务器提交的请求数
- web端特有的一个指标,每秒中用户总共在页面上进行多少次点击
- 特例:一次点击鼠标的操作后,客户端有可能向服务器发送多次请求;
-
资源使用率:
- 针对硬件:对不同系统资源的使用情况:cpu、内存,IO
9、移动端测试
10、web端测试
11、web和APP的区别
- 1.系统架构方面:
web项目,一般都是b/s架构,基于浏览器的
app项目,则是c/s的,必须要有客户端,用户需要安装客户端。
web测试只要更新了服务器端,客户端就会同步会更新。App项目则需要客户端和服务器都更新。
- 2.性能方面:
web页面主要会关注响应时间
而app则还需要关心流量、电量、CPU、GPU、Memory这些。
它们服务端的性能没区别,都是一台服务器。
- 3.兼容方面:
web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容 ,所以web测试不必考虑安装卸载
app测试是基于客户端的,则要看分辨率,屏幕尺寸,还要看设备系统。
所以app测试则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件
此外APP还有一些专项测试:如网络、适配性。。。
APP测试特点
(除了按需求说明书外的 功能测试 之外还需要进行如下测试)
1: 适配性测试(也叫兼容性测试,不同的安卓版本,不同厂商,不同手机品牌)
2: 不同网络测试 (2G网络/3G网络/4G网络/WIFI网络)
3; 在线升级测试
4: 中断测试(电话、短中消息打扰)
5: 耗电量测试
6: 弱网测试(信号差,信号屏蔽实验室)
7: 安装卸载 (C/S)
8: 流量测试
12、接口测试
13、接口自动化的目的
13.1 为什么要做接口测试
- 更容易实现持续集成
- 什么是持续集成?
- 多个开发的模块之间集成起来、测试各个模块能否通过验证,再集成
- 什么是持续集成?
- 自动化测试落地性价比更高,比UI更稳定
- 大型系统更加复杂,系统间模块越来越多
- BUG更容易定位,降低研发成本,提高效率