(4)软件测试分类
按方向:功能测试、性能测试、安全测试
功能测试和单元测试的区别:对象不一样,功能测试的对象是一个完整的业务功能。单元测试的对象是一个代码片段,比如类 、几口。
性能测试:压力测试、负载测试、并发测试
负载测试主要关心用户规则和需求,压力测试关心的是系统本省
并发测试单独提出来,是因为并发测试往往涉及服务器的并发容量,以及多进程/多线程协调同步可能带来的问题
基准测试,当软件系统增加一个新的模块的时候,就要做基准测试,以判断新模块对整个软件系统的性能影响。按照基准测试方法,需要打开/关闭新模块至少一次
稳定性测试,测试系统在一定负载下运行长时间是否会发生问题
按方法:黑河测试、灰盒测试、白盒测试
按状态:静态测试、动态测试
按阶段:单元测试、集成测试、确认测试、系统测试、验收测试
新型开发模式:测试驱动开发
单元测试目的:检测程序模块中有没有故障
单元测试对象:软件设计中的最小单位
什么是单元:一个函数:类或者类内的成员函数;几个函数的集合
单元测试步骤:人工静态检查;动态执行跟踪
集成测试目的:检查接口之间的问题
集成测试的对象:单元之间的接口
集成测试前提:单元测试已经通过
集成测试方法:非渐增式集成测试;渐增式集成测试方法;三明治集成测试方法
A、非渐增式集成测试法,别称大爆炸集成测试法,一次性集成测试法
净式软件工程:开发出接近零缺陷的软件
B,渐增式集成测试法:自顶向下;自底向上(常用)
C,三明治集成测试法:混合增量式集成方法,混合 了自顶向下和自底向上的优点。
把系统划分成三层,中间一层叫做目标层,目标层上面是自定向下,目标层下面是自底向上
集成测试的分类:对于传统软件,按集成粒度不同:模块间集成测试;子系统内集成测试;子系统间集成测试
单元测试和集成测试的区别:测试对象不同、测试方法不同、测试时间不同:单元测试最早吃;测试内容不同:单元测试程序的逻辑、集成测试各个模块的连接。
系统测试:在使用环境下对整个系统进行测试。
系统测试目的:对系统中各个组成部分进行的综合性检验,证明系统性能。
系统测试与功能测试的区别:系统测试还要包括压力测试、容量测试、性能测试等等。
系统测试包含:业务流程测试(功能测试)、UI测试、兼容性测试(浏览器和手机)、稳定性测试、(能运行7*24小时),健壮性测试(容错测试)、争用测试(两个同类型产品运行不冲突)、压力测试(强度测试)、负载测试、并发测试、弱网测试、文档测试、场景交互测试、恢复测试(克服硬件问题)、安全性测试、性能测试、可靠性测试、安装测试、容量测试、
系统安全设计的准则:非法入侵的代价超过了被保护信息的价值
容量测试:测试某个指标的极限值,测试在此极限值下能维持多久
验收测试(交付测试):在产品发布前的测试。根据产品规格说明书,严格的检查产品,查看产品是否符合说明书规定的功能。有用户参与进行测试。
按对象:APP测试、web测试、小程序测试、嵌入式测试等等
其他:人工测试、自动化测试;冒烟测试;回归测试;alpha测试,beta测试
人工测试:人为测试和手动测试;人为测试:桌前审查、代码检查、走查;手动测试:按测试计划手动执行程序
自动化测试:用测试工具进行测试,并分析
冒烟测试:测试前的测试,在测试前的可测试性测试,比如app不可安装
回归测试:修改代码后重新进行测试,存在整个软件的生命周期中,反复进行、
alpha测试:非正式验收测试,内测,内部用户进行测试
beta测试:公测,实际用户参与使用
(5)软件测试方法
A、等价类划分法(黑盒测试):根据说明书对输入数据进行划分,划分成互不相交的子集,在这些子集中取若干个测试用例进行软件的测试。
步骤:1. 分类 2.取样
有效等价类和无效等价类数据
a,输入数据是布尔值
b,输入条件已经规定了取值范围或者个数。有效等价了一个,无效等价类两个
c,输入条件已经规定了输入值的集合,无效等价类一个,集合外
d,输入条件已经规定了多个输入值,并且每个输入值都有对应的处理结果
e,输入条件规定了几个规则,多个有效等价类和多个无效等价类
B,边界值分析法
边界条件/次边界条件(内部边界条件)
对于一个有n个变量的程序,通过边界值分析法会产生4n+1个测试用例
健壮性测试:会产生6n+1个测试用例。有两个超出边界的值。
实际运用
加法计算,计算两个整数之间的和,取值范围:1-100
C,决策表法(判定表法)
利用决策表法能够把测试用例一一列出,不容易遗漏
条件——活动 决策表一列=一条规则=一个测试用例
a,条件桩:列出问题的所有条件
b,动作桩:列出问题规定的可以采取的动作
c,条件项:列出针对条件桩的取值
d,动作项:列出在条件项的各种取值情况下可以采取的动作
步骤:1、列出所有的条件桩和动作桩
2、确定规则个数
3、填入条件项
4、填入动作项
5、简化(合并)
简化:合并相似规则。
实际运用
题目:输入年月日,输出后一天日期
取值范围:2020<=year<=2050,1<=month<=12 1<=day<=31 是整数
1、列出所有的条件桩和动作桩
Y1:是闰年
Y2:不是闰年
M1:30天
M2:31天,12月
M3:12月
M4:2月
D1: 1<=day<=27
D2:day=28
D3:day=29
D4: day=30
D5: day=31
条件桩:
C1:月份在M1,M2,M3,M4之间任意一个
C2:日期在D1,D2,D3,D4,D5,之间任意一个
C3:年在Y1和Y2之间任意一个
动作桩:
A1:是不可能
A2:日期加一
A3:日期重新变成1
A4:月份加一
A5:月份重新变成1
A6:年加一
D,因果图法
因——输入条件;果——输出结果
利用图解法分析软件的输入条件和输出条件之间的关系
关系:输入与输出之间的关系
输入与输入之间的关系、
约束:输入条件约束:输出条件约束
步骤: 分析——关联——转换——输出
实际运用:自动贩售机里面只有可乐和奶茶,只能现金支付,一次只能投入一张纸币,金额只能是5元和10元。可乐5元一瓶,奶茶10元一瓶。
第一步:分析:输入条件,它们之间的制约关系
输入条件:1投入5元纸币;2投入10元纸币;3按可乐按钮;4、按奶茶按钮
输出结果:a.出来可乐;b,出来奶茶;c,错误提示 d。找零(退还)
制约关系:1和2 互斥(E),3和4互斥(E),
因果图
第二步:关联
第三步:转换
E、功能图法
定义:描述程序的状态变化过程
功能图模型:状态迁移图、逻辑功能模型
F 错误推测法(猜错法)
定义:尽可能的列出程序中会出现的错误
G 正交实验设计法(百度百科)
多因素多水平(多输入条件的不同取值)
实例:
因素:操作系统;浏览器
水平(取值):操作系统:Windows系统;Linux系统;Mac系统
浏览器:IE浏览器;谷歌浏览器;火狐浏览器
H 场景法
用于测试业务流程
业务流程:基本流、备选流、异常流程
不能测试单点的流程
I 路径覆盖法
定义、步骤、小例子、优缺点(学习流程)