质量体系:
ISO 9126
六大特性
功能性
可靠性
易用性
效率
维护性
可移植性
第一种分类方法:按照阶段分类
单元测试
模块:程序的最小单位就是模块,比如用户登录模块、购物车模块
单元测试:就是检测这个模块是否满足测试用例的要求,仅仅是测试一个单独的模块是否能
正常运行
集成测试
集成测试又称为 组装测试
在单元测试完成以后,就是表示每个单独的模块已经正常
集成测试,就是将多个模块组合起来进行测试
系统测试
在集成测试完成以后,才能进行系统测试
系统测试,将软件作为一个整体来测试,测试的依据是软件需求说明书【就是检查软件是否
达到了当初想要的样子】
验收测试
主要是检查软件是否满足客户的要求,对软件做最后的测试
验收测试分为几个小类
α
测试【
Alpha
】:阿尔法测试的软件版本内存版本,软件
bug
较多,一般不让用户直接
使用,而是公司内部交流使用。
β
测试【
Beta
】:贝塔测试就是软件的公测版本,目的就是让更多的用户通过使用软件
来发现更多的问题。
γ
测试【
Gamma
】:伽马测试就是软件的正式候选版,这个版本和用户最后使用的正式
版几乎完全一致。
第二种分类方法:按是否查看源码分
白盒测试
不去执行程序,而是去直接读取程序的代码
黑盒测试:
又称之为数据驱动测试
这种测试就是直接使用软件,完全不考虑程序内部结构和代码
例如:输入账号、密码,一点就能登录成功,就表示测试通过
灰盒测试
即要去读程序的代码
也要去执行程序
既要做黑盒的工作,也要做白盒的工作
第三种分类方法:按照是否运行程序划分
静态测试
动态测试
第四种分类方法:是否自动运行
人工测试:所有的测试工作,由测试人员手动点击完成
自动化测试:通过
python
开发自动化工具,用工具完成测试工作
第五种分类方法;其他分类
冒烟测试
测试软件基础功能是否正常
回归测试
在测试工作种,一旦发现了
bug
,需要将这个
bug
提交给开发,开发修复完成后,需要重新进
行测试
测试人员必须对哪些曾经发生过的
bug
再次进行测试
随机测试
虽然叫做随机测试,但是不是真的随机
这里的随机其实是重复测试,包括测试之前的测试用例种没有涵盖的部分
探索测试
这个测试不是必要
软件缺陷
缺陷不等于
bug
bug
仅仅是缺陷中的很小的一个部分而已
什么是缺陷:只要让测试人员感觉不爽,那么这个就是缺陷
软件缺陷判定标准
1.
软件未能达到需求规格书中的要求
2.
软件的功能超出规格书中的要求
3.
软件出现了规格书中明确指定不能出错的地方
4.
软件出现了规格书中未明确指定,但是不应该出现的错误
软件缺陷产生的原因【缺陷只能减少、不能完全避免】
1.
对于需求文档等文等文件解释、理解错误【需求说明会】
2.
设计文档本身有错误
3.
程序代码错误
4.
硬件和软件系统有错
软件缺陷的类型
1.
功能错误:软件没有达到需求文档的功能要求,或者功能异常
2.
界面错误:软件功能正常,但是界面不好看或者未达到规格说明中的要求
3.
兼容性错误:软件和系统中的其他的程序冲突,导致软件无法运行
4.
易用性错误:软件用起来不好用
5.
改进建议:改了更好,不改也没事
软件测试的方法
测试用例:
将要进行的测试工作,具体化,并且记录到一个文件中,一般情况下是一个excel【表格】
在测试用例中,明确的指定到了每一步做什么操作,希望得到什么结果。
测试工作:
等程,序员完成代码,此时就可以进行前期准备工作,就是编写测试用例,将需要测试的每一项都填写到表格中
当程序员完成代码,此时就可以开始进行测试,也就是根据表格中的内容一项一项的进行测试
测试用例的基本构成
ID | 模块 | 优先级 | 用例标题 | 预置条件 | 测试步骤 | 测试数据 | 预期结果 |
JD-登录-001 | 登录 | P1 | 输入正确账号和密码,登录成功。 | 网络正常 已注册 | 1.打开浏览器,输入商城的登录地址URL 2.光标定位到用户名输入框,输入正确的用户名 3.光标定位到密码输入框,输入正确的密码 4.点击【登录】按钮 | 用户名:tom 密码:123456 | 登录成功,直接跳转商城页面。 |
第一部分:测试用例编号:
编号必须唯一
编号的构成可以写成:项目名-模块名-编号
例如:测试网站登录模块,而且是第三条用例,编号可以这么写:
web-login-03
第二部分:模块名
第三部分:优先级
用于测试正常的功能用例,优先级要更高一些
一般是用
P1 P2 P3
来表示优先级
数字越小,优先级越高
第四部分:用例标题
在用例标题中,需要说明这条测试用例的功能以及预期出现的结果
第五部分:测试步骤
这个是指定这个条测试用例如何操作和执行
第六部分:预置条件
第七部分:测试数据
在进行测试的时候,输入什么数进行测试
这些数据既有满足条件的数据,也有不满足条件的数据
第八部分:预期结果
这条用例希望得到的结果
2.2
等价类方法
设计测试用例的方法很多
穷举测试
将所有可能的数据都测试一遍
但是实际上,这种方法不可行
等价类:
分析测试的数据,找出其中的规律,然后从规律中找出有特点的数字进行测试就可以了
通过划分等价类,可以避免进行穷举测试
等价类的种类
有效等价类:
满足条件的数据,就是属于有效等价类
例如:找
6-10
位长度自然数:
123456
无效等价类:
不满足条件的数据,就是属于无效等价类
例如:找
6-10
位长度自然数:
12345
、
12345a
用等价类方法设计测试用例步骤
第一步:分析需求
通过分析需求,判断项目需要达到什么效果
第二步:划分等价类【找到有效
/
无效的数据】
案例:找
6-10
位长度自然数
有效等价类:比较好找,
123456 1234567
无效等价类:相对复杂,可以从以下几点来思考
数据长度不符合:过长、过短
数据内容不符合
数据是否为空
数据是否重复
第三步:结合等价类设计测试用例
有几条等价类,就根据等价类设测试机用例
等价类的使用场景
搜索框
登录框
注册页面

案例
2
:登录
qq
邮箱
要求用户输入账号和密码
邮箱的名字:
6-20
位字符,支持数字、字母、下划线,但是名字不能都是下划线
邮箱的密码:
6-10
位,

2.3 边界值方法
两位数加法器:
计算的范围:
-99 ~ 99
计算的方法:加法
在日常的测试工作,经常发现,在数据的
临界值位置
是经常出现
bug
的,因此这种位置就应该作为我们
重点的测试对象
边界值:
有效等价类和无效等价类的边界
这也是一种黑盒测试方法
边界值的三个概念:
上点:边界值上面的这个点,就是上点
内点:有效等价类中的任意一个点
离点:边界值相邻的两个点

数学表示方法
[
大于等于
]
小于等于
(
大于
用数学表达是表示
数学表示
上点
内点
离点
大于等于
6
,小于等于
12
[6 , 12]
6
,
12
8
5 7 11 13
)
小于
边界值的使用场景
项目中出现了
> < =
之类的符号
项目中出现了大于、等于、小于之类的描述
案例
1
:判断
qq
是否在合理的范围【
6-12
位】,结合边界值设计测试用例

边界值的优化
必须保留的点 上点 离点中的无效等价类中的点 内点 一共是5个点
优化后结果如下


2.4判定表方法
判定表:
以表格的形式来组合多个条件
通过判定表可以综合考虑多个条件的输入和输出结果之间的关系
案例:手机通话
条件:
是否欠费:欠费、不欠费
是否开机:开机、不开机
条件组合
条件一:是否欠费 条件二:是否开机 结果
欠费 关机 不能通话
欠费 开机 不能通话
不欠费 关机 不能通话
不欠费 开机 能通话
转为表格形式
概念:
条件桩:所有可能出现的条件,例如上例中,有两个条件:是否欠费、是否开机
动作桩:所有可能出现的值、例如上例中,有四个值:欠费、不欠费、开机、关机
条件项:这是条件桩中的一个或者多个值
动作项:这是动作桩中的一个或者多个值
等价类:
有效
无效
等价类:在判定表中,表示有效和无效有两种表示方式
方式一:用字母表示
有效等价类:Y
无效等价类:N
方式二:用数字表示
有效等价类:1
无效等价类:0
基于判定表的方式设计测试用例的步骤
第一步:首先确定条件桩
第二步:确定动作桩
第三步:对条件桩进行组合
第四步:确定条件组合的结果
第五步:根据结果写测试用例
案例:手机通话
条件:
是否欠费:欠费、不欠费
是否开机:开机、关机
第一步:首先确定条件桩
是否欠费
是否开机
这里是有两个条件,那么就是在表格中写入两行内容,每行代表一个条件
第二步:确定动作桩
一共有四种动作,每个条件桩中有2个,一共有四个动作
欠费、不欠费
开机、关机
第三步:对条件桩进行组合
将每个条件的每个值和另外一个条件的每个值进行组合
第四步:确定条件组合的结果

第五步:根据测试结果写测试用例
思考:条件数量,和测试用例的数量是什么关系
条件越多,得到的测试用例的数量越多
有两个条件的话,得到的测试用例数 2**2 = 4
有三个条件的话,得到的测试用例数 2**3 = 8
有四个条件的话,得到的测试用例数
2**4 = 16
2.5因果图方法
作为了解部分
以图形的方式来表示多个不同条件/输入以及对应的最终结果的关系
也是一种黑盒测试方法
试用场景:
有多个输入条件的情况下
概念:
因:条件
果:结果
符号:
-
恒等,表示当条件成立的时候,结果成立
;
当条件不成立的时候,结果不成立
~
相当于
NOT
,也就是逻辑非,表示当条件成立的时候,结果不成立
;
当条件不成立的时候,结果成立
v
相当于
OR
,也就是逻辑或,表示当多个条件中,有至少一个条件成立的时候,结果成立
;
当全部条件都不
成立的时候,结果不成立
^
相当于
AND
,也就是逻辑与,表示多个条必须都成立,结果成立
;
当有任意一个条件不成立的时候,结果不
成立
结合因果图设计测试用例的步骤:
第一步:分析需求
第二步:画因果图
第三步:将因果图转换为判定表
第四步:结合判定表写测试用例
案例:让用户输入内容,要求输入的第一个字符是5或7,第二个字符是是字母
如果第一个字符不正确,输出结果
L
如果第二个字符不正确,输出结果
M
如果都正确,输出
Q
绘制因果图

将因果图转换为判定表

2.6正交方法
这个方法同样是在多个输入和多个输出的情况
正交发:
本质上是用数学中的数据统计【统计学】中的方法进行测试
通过正交法可以用少量测试用例来覆盖大多数的测试情况
概念:
因素【k】:表示的是输入的条件,每列是一个因素
水平【
m
】:表示的是输入的条件所得到的结果,表格中的每个小格是一个结果
成立n
:测试用例数
表示正交表的:
k
因素
m
水平,例如
5
因素
3
水平
基于正交表法设计测试用例的步骤
第一步:需求分析
第二部:确定因素和水平【其实就是找有几个输入和几个结果】
第三步:根据因素和水平数量、确定选哪个正交表
第四步:将具体的值替换掉正交表中的内容
第五步:根据正交表写测试用例
案例1:设置字体属性
字体:仿宋、楷体、微软雅黑
字符样式:粗体、斜体、下划线
颜色:红色、黑色、蓝色
字号:
20
号、
30
号、
40
号
第一步:需求分析
要测试4个内容,也就是有4个输入·
第二步:确定因素和水平【其实就是找有几个输入和几个结果】
有
4
个输入,就是有
4
个条件,也就是有
4
个因素
每个因素都有三种结果,那么就是
3
水平
结论:
4
因素
3
水平
第三步:根据因素和水平的数量,确定选择哪个正交表
第四步:将具体的值替换掉正交表的内容
字体:
仿宋
(1)
、
楷体
(2)
、
微软雅黑
(3)
字符样式:粗体
(1)
、
斜体
(2)
、
下划线
(3)
颜色:
红色
(1)
、
黑色
(2)
、
蓝色
(3)
字号:
20
号
(1)
、
30
号
(2)
、
40
号
(3)
第五步:根据正交表写测试用例
正交表中的每一行,都是一个测试用例
略
用工具生成正交表
2.7
场景法
又称为流程图法,用图形的方式来表示测试的条件和输出的结果
概念:模拟用户对软件进行操作的场景
这种方法更合适测试多个模块
适合用在测试过程中的哪个阶段?
集成测试
系统测试
验收测试
基于场景法设计测试用例的步骤
1.
第一步:分析需求
2.
第二步:绘制流程图
3.
第三步:根据流程图写测试用例
流程图中的符号
绘图软件:
visio
亿图
案例:电商平台购物流程
购物过程包括
1.
注册
2.
登陆
3.
商品列表
4.
购物车
5.
付款
6.
订单管理
流图图如下

设计测试用例
流程图中的一条先就是一个测试用例
1 - 2 - 3 - 4 - 5 - 5.1 - 6
1 - 2 - 3 - 4 - 5 - 5.2 - 6
1 - 2 - 3 - 4 - 5 - 5.3 - 6
1 - 2 - 2 - 2
1 -2 - 2 - 3 - 4 - 5 - 5.1 - 6
1 -2 - 2 - 2 - 3 - 4 - 5 - 5.1 - 6
2.8
错误推断法
凭借经验来做的
原理就是根据同类型的软件的具有的
bug
,判定这个目标软件也有这个
bug
使用场景:
时间、资源不充足情况才会是使用
使用这种方法,通常都是做初测
2.9
总结
等价类:测试的内容有输入功能,而且输入的内容之间没有关系
边界值:输入的内容有边界,有类型、大小、长度的要求
判定表
/
因果图:有多种输入的内容,而且有多种输出结果
正交法:测试的数据和条件特别多
场景法:整合测试多个功能,需要使用场景法
错误推断法:时间、资源补充足;仅仅需要做初测