一、等价类
1.关于等价类
2.等价类思想设计测试用例的步骤
二、边界值
1.关于边界点
2.使用边界值分析法设计测试用例步骤
三、因果图
1.关于因果图
2.关于判定表
3.使用因果图设计测试用例的步骤
1.分析所有可能的输入和可能的输出。
2.找出输入和输出之间的对应关系
4.将因果图转化称为判定表
5.把判定表对应到每一个测试用例
四、正交排列
1.什么是正交表
2.如何通过正交表设计测试用例
五、场景设计法
1.什么是场景
2.如何通过场景设计法设计测试用例
六、错误猜测法
1.设计常见案例测试用例
(1)水杯测试用例设计(实体)
(2)微信发送朋友圈设计测试用例(软件的一个模块)
(3)完成一个登录的测试用例
2.一些测试的方法说明(面试考)
(1)Fiddler测弱网
(2)用postman进行接口测试
黑盒测试又称为功能测试,它是通过测试来检验程序的每个功能是否能正常使用。在测试中,将程序看成一个不能打开的黑盒子,在完全不考虑内部结构的情况下,在程序接口进行测试 ,检查程序是否能适当的接受输入数据从而产生正确的输出信息。
黑盒测试主要有以下测试用例设计方法:
1.等价类
2.边界值法
3.判定表法
4.正交排列法
5.场景设计法
6.错误猜测法
下面针对这几种方法进行介绍❤️❤️❤️。
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题(作用)。
等价类分为:
有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验 证程序是否实现了规格说明中所规定的功能和性能。满足用户需求的输入集合。
无效等价类:根据需求说明书,不满足需求的输入集合。
价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充。
(1)充分理解需求
(2)设计测试用例:划分有效等价类和无效等价类
(3)从有效等价类中抽取其中一个数据进行设计测试用例;从无效等价类中抽取其中一个进行测试用例设计
比如那用户名长度来举例,设计用例如下图:
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
边界值分析法中有一个很重要的概念:边界点
边界点分为:
上点:边界上的点
内点:边界内的点
离点:边界附近的一个点(闭区间:区间外距离上点最近的点,开区间:区间内距离上点最近的点)
针对边界点,通过画图来细说
闭区间上:
这里内点,是6~15中间所有的点,上图只列出一个。
开区间:
左开右闭:
左闭右开:
(1)充分理解需求
(2)找边界点(上点,内点,离点)
(3)针对边界点设计测试用例
针对用户名长度设计测试用例
因果图是一种简化逻辑图,能够只管的表明程序输入条件(原因)和输出动作(结果)之间的关系。因果图法是借助图形来设计测试用例的一种系统方法,特别使用与被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况。
因果图中,输入与输出之间主要又四种关系:恒等,与,或,非
恒等:如果原因c1为真,那么结果e1必定为真。
与:如果c1和c2都为真,那么e1肯定为真。
或:两个条件c1和c2中有一个为真,那么结果c1为真。
非:当条件c1为假时,结果e1为真。
判定表是一种表达逻辑判断
根据一个案例来说明步骤:
案例:淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则有优惠。
输入:订单已提交、金额 > 300、有红包
输出:优惠、不优惠
(1)订单已提交,金额 > 300,有红包,优惠
(2)订单已提交,金额 > 300,没有红包,优惠
(3)订单已提交,金额 < 300,有红包,优惠
(4)单已提交,金额 < 300,没有红包,不优惠
(5)订单未提交,金额 > 300,有红包,不优惠
(6)订单未提交,金额 > 300,没有红包,不优惠
(7)订单未提交,金额 < 300,有红包,不优惠
(8)订单未提交,金额 < 300,没有红包,不优惠
3.画出因果图
对应的输入和输出编号如下:
1:订单已提交
2:订单金额 > 300元
3:优惠
4:不优惠
Y代表为真,N代表为假,每一列都是一种情况
case |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
订单已提交 |
Y |
Y |
Y |
Y |
N |
N |
N |
N |
金额 >300 |
Y |
Y |
N |
N |
Y |
Y |
N |
N |
有红包 |
Y |
N |
Y |
N |
Y |
N |
Y |
N |
优惠 |
Y |
Y |
Y |
N |
N |
N |
N |
N |
不优惠 |
N |
N |
N |
Y |
Y |
Y |
Y |
Y |
正交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合
正交试验设计是一种基于正交表的、高效率、快速、经济的 试验。
根据百度百科,最简单的正交表是,含意如下:“L”代表正交表;L 下角的数字“4”表示有 4 横行,简称行,即要做四次试验;括号内的指数“3”表示有3 纵列,简称列,即最多允许安排的因素是3 个;括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2。正交表的特点是其安排的试验方法具有均衡搭配特性。
因素(Factor):在一项试验中,凡欲考察的变量称为因素(变量)
水平(位级)(Level):在试验范围内,因素被考察的值称为水平(变量的取值)
正交表的构成: 行数(Runs):正交表中的行的个数,即试验的次数,用N代表。
因素数(Factors):正交表中列的个数,用C代表。
水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或 从1到“水平数”,用T代表。
正交表的表示形式: L=行数(水平数*因素数) L=N(TC)
正交表的两条性质(重要):每一列中的数字出现的次数都一样多;任何两列中的各有序数对出现的次数都一样多。
如下图就是一个正交表:
充分理解需求 -> 确定因素,确定水平 -> 画正交表 -> 补充正交表 ->将正交表转换成测试用例
以注册用户为例子设计测试用例:
(1)充分理解需求
参考需求规格说明书说明
(2)确定因素/水平
姓名、邮箱、密码、确认密码,验证码必须全部输入才能进行注册。
因素:姓名、邮箱、密码、确认密码,验证码
水平:填写/不填写
(3)画正交表allpairs
ALLpairs是用于生成混合的正交表生成工具,一般应用于测试领域。
这里有百度网盘链接: https://pan.baidu.com/s/1M_ap5lNirkUOMPTIQOxuhQ
提取码: c3d5
下载你们就直接下一步下一步就好,注意路径修改就可以,我是直接放到d盘
下载了 allpairs工具以后,会给出一个allpairs文件,如下图:
里面的101.txt是我自己放进去的,这个文档是我 存放的刚才那个excel表中的内容,大家把这个文本文档复制进去:
然后我们通过win+r快捷键,输入cmd,打开windows命令窗口,
然后通过cmd进入到这个allpairs文件中:
路径可以和我的不一样,但是一定要是在allpairs文件中进行 。
使用下图中的allpairs.exe命令,这个101_result文本是我自己命名的,大家可以自行命名,生成的正交表就在appairs文件中的101_result.txt中
如下图101_result.txt中:
TEST CASES就是我们的正交表
PAIRING DETAILS是配对详情内容可以忽略,我们只看正交表就可以。
将正交表整理为以下的表格:
case |
姓名 |
密码 |
确认密码 |
邮箱 |
验证码 |
1 |
填写 |
填写 |
填写 |
填写 |
填写 |
2 |
填写 |
不填写 |
不填写 |
不填写 |
不填写 |
3 |
不填写 |
填写 |
不填写 |
填写 |
不填写 |
4 |
不填写 |
不填写 |
填写 |
不填写 |
填写 |
5 |
~填写 |
填写 |
填写 |
不填写 |
不填写 |
6 |
~填写 |
不填写 |
不填写 |
填写 |
填写 |
其中“~”代表,该表格中可写“填写”,也可以写“不填写”
(5)将正交表转换成测试用例
下图只是写了测试点,不是标准的测试用例,大家可以自行补充。
关于场景设计法,有以下概念:
场景:由事件触发时的情景形成。
事件流:由同一时间不同的出发顺序和处理结果形成。
场景设计法可以生动的描绘出时间触发时的情景,有利于测试设计者设计测试用例,使测试用例更容易理解和执行。
举例:
比如找女朋友流程如下:
搭讪 -> 要搭讪方式 -> 聊天 -> 请女神吃饭 -> 表白 -> 确定关系
以上就是一个找女朋友的场景
但是以上可能会出现偏差,比如搭讪可能失败,女神不搭理你拒绝你等情况,不一定按照既定的场景走,这个既定的场景我们就称其为主事件流,也叫基本流。其他偏差情况称之为备选流。
充分理解需求 -> 确定主事件流 -> 确定次时间流 -> 每一个时间流就是一个测试用例
通过ATM取款来说明:蓝色部分是主事件流,绿色部分是备选流
基本流: 插卡 -> 输入密码 -> 选择取款 -> 输入金额 -> 出钞 -> 取卡
错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针 对性地设计测试用例的方法。
这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉。
错误推测法和目前流行的“探索式测试方法”的基本思想一致,这类方法在敏捷开发模式下的投入产出比 很高,被广泛应运于测试。
这个方法的缺点是难以系统化,并且过度依赖个人能力。
就是测试人员估算一些功能可能会出现的错误,根据这些错误设计测试用例。
以下是几个常见案例的测试用例:
主要从以下几个测试点展开来写:(仅个人观点,一些没说到的点大家还能补充说明)
功能、界面、安全、性能、易用性、安全、网络、兼容性
上面测试用例提到了接口还有弱网的测试,有时候面试官会问怎么对这些测试,下面进行说明。
网上有很多网站分享Fiddler下载包,这里就不提了,主要还是以介绍使用为主。
打开弱网设置:Rules -> Performance -> Simulate Modern Speeds
然后打开测弱网设置:Rules -> Performance -> Simulate Modern Speeds
打开以后,翻到以下图片中的位置
// Delay sends by 300ms per KB uploaded.传输1kb花费时间300ms
// Delay receives by 150ms per KB downloaded.下载1kb花费时间150ms
由此可见,以上数字越大,代表数据传输月满,网络越差。
代码,工具。
http请求方式,get,post,delete
针对接口的参数进行测试(传递所有参数,传递部分参数,不传递参数,传递其他参数)
针对接口的性能进行测试。
https://blog.csdn.net/software_test010/article/details/114001033这个里面有关于使用postman测试接口的详细说明,大家可以点击看看。