关键词:
测试用例编写是软件测试的基本技能;也有很多人认为测试用例是软件测试的核心;软件测试中最重要的是设计和生成有效的测试用例;测试用例是测试工作的指导,是软件测试的必须遵守的准则。
在这里我们不讨论以上的各种观点,但是综上所述,大家可以看出,测试用例编写这项软技能非常重要且是测试人的必备技能,相信很多人没有质疑。
下面我们介绍下测试用例编写。
我们将用例编写分为黑盒用例编写和白盒用例编写两大类。
标题总体编写思路:
黑盒测试用例(优先)+白盒测试用例(补充)=完整测试用例
总体编写策略:
对于测试用例编写来说,常用的四种方法基本就够用了,等价类、边界值、正交实验法、错误推断法,辅以场景测试法、需求/设计转换法、探索式测试思想,可以应付绝大多数产品的测试。个别的产品还需要在某一点细化和扩充,需要就事论事。
使用各种编写方法的综合设计策略;
1)在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。
2)必要时用等价类划分方法补充一些测试用例,尤其注意无效等价类情况。
3)如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法(或判定表法、正交试验法)。
4)用错误推测法再追加一些测试用例,主要是利用测试经验。
5)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例;参照白盒用例编写。
6)对程序的应用场景进行研究和思考,增加不同场景下的测试用例;用户场景测试必须重视,很大一部分程序错误就是因为测试场景与用户真实场景的差异性带来的。
7)对业务和程序有更深的理解之后,可以充分发挥发散思维和探索式想法;大家不要误解探索式测试就是漫无目的的测试,其实探索式测试有非常详细的测试指导思路。
第一部分:黑盒用例编写
常见的方法如下:
(1)等价类
(2)边界值
(3)因果图
(4)判定表驱动法
(5)正交实验法
(6)功能图法
(7)场景实验法
(8)错误推断法
(9)需求转化
(10)设计文档
(11)探索式测试
1、黑盒-等价类
等价类:选取少数有代表性的数据,这一类数据等价于这一类的其它值;找出最小的子集,可以发现最多的错误;
两大特性:必须设计的用例;涵盖了大部分情况;
两类情况:有效等价类;无效等价类;
转化为测试用例
1、按照输入条件、有效等价类、无效等价类建立等价类列表,列出所有的等价类;
2、为每一个等价类固定一个编号;
3、设计一个测试用例,使其覆盖一个或多个有效的等价类;
4、设计一个或更多的测试用例以覆盖剩余的有效等价类;
使用场景:输入条件(取值范围/值个数;必须值集合;布尔值;一组处理值;必须遵守的规则;再细分更小等价类;)
等价类举例:
以三角形测试为例:输入3个整数做为三角形的三个边,通过程序判定三角形的类型。
2、黑盒-边界值
边界值:所谓边界条件,是指输入和输出等价类中那些恰好处于边界、超过边界、或在边界以下的状态 ;
两个特征:选择一个或多个元素,以便等价类的每一个边界都经过了测试;与仅仅关注输入条件不同,还需要考虑结果空间(输出等价类)设计测试用例;
边界条件可能非常微妙,因此把他们确定下来煞费心思;
使用场景:输入+输出都需要考虑(值的范围;值个数;有序集合;内部数据结构;分析规格说明;)
边界值举例:
以三角形测试为例:输入3个整数做为三角形的三个边,1<a、b、c<10,通过程序判定三角形的类型;
3、黑盒-因果图
因果图:输入条件的组合进行分析。用一个系统的方法选择出高效的测试用例集;
分析思路:
1、分析规格说明描述,确定原因和结果,并赋予标识符;
2、分析规格说明语义,找出原因与原因之间,原因与结果之间关系,画出因果图;
3、有些原因与原因之间,原因与结果之间组合不会出现,用记号表明约束或限制条件;
4、因果图转换为判定表;
5、判定表的每一列作为依据,设计测试用例;
使用场景:必须考虑输入条件的各种组合(一种适合于描述多种条件的组合、相应产生多个动作的形式来进行设计);
4、黑盒-判定表
判定表:分析和表达多逻辑条件下执行不同操作的情况的工具 ;略过因果图的绘制,直接列出所有组合进行筛选;
分析思路:判定表通常有四个部分组成:条件桩、动作桩、条件项、动作项;
判定表的建立步骤:(根据软件规格说明)
确定规则个数;列出所有条件桩和动作桩;填入条件项;填入动作项,得到初始判定表;简化合并相似规则;
==使用场景:控制类和游戏。优点是能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。缺点是不能表达重复执行的动作,例如循环结构。
5、黑盒-正交试验法
正交实验法:利用因果图来设计测试用例时, 输入原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到;往往因果关系非常庞大,以至于测试用例数目巨大,为了有效地、合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。
分析思路:
(1)提取功能说明,构造因子–状态表 ;
(2)加权筛选,生成因素分析表 ;
(3)利用正交表构造测试数据集 ;
使用场景:必须考虑输入条件的各种组合(从大量的数据中挑取适量、有代表性的点,合理有效的测试);
6、黑盒-场景实验法
场景实验法:软件几乎都是由事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果形成事件流;生动的描绘出事件触发时的情景,有利于设计用例,同时测试用例也更容易的得到理解和执行。
分析思路:
每条路径都反映了基本流和备选流;基本流是最简单的路径;备选流自基本流开始,会有特定条件下加入并执行,可能有多种情况;
使用场景(0代表基本流):0;0+1;0+1+2;0+3;0+3+1;0+3+1+2;0+4;0+3+4;…
7、错误推断法
错误推断法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法;更多的与用户的使用习惯及测试程序中的常见问题为主。
分析思路:
(1)列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据这些情况选择测试用例;
(2)注意积累与分享;
使用场景:任何测试、任何情景下都会用到的方法。
有常用的测试用例集,可以参照。
举例:数字输入验证,分别输入数字(正数、负数、零值、单精度、双精度)、字符串、空白值、空值、临界数值;不合法的输入,系统给出必要的判断提示信息;
8、黑盒-需求转换法
需求转换法:根据需求,执行需求分析,并编写测试用例。
分析思路:
(1)将需求转换为思维导图;
(2)仔细推敲每一个字的含义;
(3)与用户的使用场景和目的结合;
(4)严格设计每一个用例;
(5)可以建立一种模型,进行需求转换;
使用场景:任何测试、任何情景下都会用到的方法。
注意:需求的变更带来的影响;需求理解偏差带来的影响;需求含糊不清带来的影响等;
9、黑盒-设计文档
设计文档:参照设计文档,可以理解软件系统内部设计流程及处理机制,对比写好的测试用例,可以在对应功能及模块处新增;
分析思路:
(1)仔细阅读设计文档;
(2)与相关人员沟通实现机制;
(3)结合测试用例编写方法,对比之前写好的用例;
使用场景:任何测试、任何情景下都会用到的方法。
注意:设计文档的编写正确性;设计文档的理解偏差;
10、黑盒-探索式测试法
探索式测试法:无限创意的测试点,永无止境的探索测试;我们要在测试的最前沿发挥洞察力、技术及应变措施,找出产品的缺陷;
分析思路:
局部探索式测试;全局探索式测试;混合探索式测试;
使用场景:任何测试、任何情景下都会用到的方法。像漫游一样,自由地寻找软件中的缺陷,软件测试的未来必然有探索式测试。
第二部分:白盒用例编写
基本思路:
第一步需要绘制流程图;
第二步根据路径分析法确定测试用例;
第三步使用等价类/边界值的方法确定测试用例的数据
第四步根据实际情况补充(如默认流程、特殊流程等)
基本策略:
1、语句覆盖准则基本上没啥用,比较强的逻辑覆盖准则是判定覆盖或者条件覆盖;通常判定覆盖可以满足语句覆盖;语句覆盖<判定覆盖<条件覆盖;
2、循环覆盖来说,完全的路径测试并不符合实际;
最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..
关注我的微信公众号:【程序员小濠】就可以免费获取了~
我的软件测试交流群:175317069欢迎大家一起讨论交流,里面也有各种软件测试资料和技术交流
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
面字节跳动python软件测试用例编写面试建议收藏
黑盒-判定表 判定表:分析和表达多逻辑条件下执行不同操作的情况的工具;略过因果图的绘制,直接列出所有组合进行筛选; 分析思路:判定表通常有四个部分组成:条件桩、动作桩、条... 查看详情
面字节跳动python软件测试用例编写面试建议收藏
黑盒-判定表 判定表:分析和表达多逻辑条件下执行不同操作的情况的工具;略过因果图的绘制,直接列出所有组合进行筛选; 分析思路:判定表通常有四个部分组成:条件桩、动作桩、条... 查看详情
面字节跳动python软件测试用例编写面试建议收藏
黑盒-判定表 判定表:分析和表达多逻辑条件下执行不同操作的情况的工具;略过因果图的绘制,直接列出所有组合进行筛选; 分析思路:判定表通常有四个部分组成:条件桩、动作桩、条... 查看详情
40k刚面完java岗,这些技术必须掌握
学习是一份苦差事,这句话真的不是说说而已,真的是你认真学习过,才会懂得,学习是多么的辛苦,这点我深有体会,但是我还是想说,没办法,想要更好的生活,你就要不断地努力学习。所幸的是,程序员这个行业,学习和回报率是要高于... 查看详情
刚面完阿里java高级岗40k的offer,这些技术你必须要掌握!
学习是一份苦差事,这句话真的不是说说而已,真的是你认真学习过,才会懂得,学习是多么的辛苦,这点我深有体会,但是我还是想说,没办法,想要更好的生活,你就要不断地努力学习。所幸的是,程序员这个行业,学习和回报率是要高于... 查看详情
面试字节跳动后,整理了这20道面试题....(代码片段)
目录1、软件测试流程介绍2、SQL硬删除、软删除3、SQL创建表的方法4、SQL增删改查语法5、索引有哪些,索引的优缺点6、索引的原理7、商品价格9.9,购买2件,提交订单,付款19.78,是什么原因8、微信发红包设计... 查看详情
字节跳动的25个软件测试经典面试题,你招架得住吗?
大家好,我是二黑,字节跳动的25个软件测试经典面试题,你招架得住吗?下面赠送一套软件测试相关资源:软件测试相关工具软件测试练习集深入自动化测试Python学习手册Python编码规范大厂面试题和简历模板... 查看详情
软件测试字节跳动一面,被面试官吊打!幸得华为内推,三面拿到offer
...;grep)4、为什么选择使用python做测试5、为什么考虑做软件测试、如何学习测试6、selenium的工作原理、webDriver的原理、协议7、隐式等待和显式等待的区别8、常用的定位方式,如果一个元素没有id、class等属性,如何定... 查看详情
字节跳动(抖音),软件测试四面,面试题总结!走过路过不要错过
面试一1、简单做一下自我介绍2、简要介绍一下项目/你负责的模块/选一个模块说一下你设计的用例3、get请求和post请求的区别4、如何判断前后端bug/3xx是什么意思5、说一下XXX项目中你做的接口测试/做了多少次6、http和https的区别7... 查看详情
字节跳动(抖音)软件测试月薪23k岗技术总监三面面试题最新出炉
1、设计测试用例时应该考虑哪些方面,即不同的测试用例针对那些方面进行测试?设计测试用例时需要注意的是,除了对整体流程及功能注意外,还要注意强度测试、性能测试、压力测试、边界值测试、稳定性测... 查看详情
从月薪8.5k再到拿到字节跳动20k*13薪那天,我泪目了,没人知道我付出了多少
...力的占比。2020年7月,我有幸成为了字节跳动的一名软件测试员,正如标题所说,我从外包辞职了,10000小时后,走进字节跳动拿下了offer。相信同行都清楚,从外包进大厂有多难,运气之余,也离... 查看详情
软件测试字节跳动一面,被面试官吊打!幸得华为内推,三面拿到offer
...;grep)4、为什么选择使用python做测试5、为什么考虑做软件测试、如何学习测试6、selenium的工作原理、webDriver的 查看详情
看了字节跳动月薪20k+测试岗面试题,让我这个工作3年的测试工程师,冷汗直流....
...,设计测试用例7.黑盒测试的方法8.白盒测试的方法9.软件测试的流程10.登录功能怎么设计测试用例?11.网上银行转账是怎么测的,设计一下测试用例。12.给你一个网站,你应该如何测试?13.一个有广告的纸杯... 查看详情
字节跳动头条研发---测试开发一面面经(附答案)
...里有不少刚入门测试的同学,这两天抽空整理了一份字节测开实习的面试题答案,说实话这个题目真挺简单的,如果你面大厂碰到此类面试题,也算是运气很好啦。大家也可以先自测一下,看看自己 查看详情
字节跳动测试岗薪酬体系曝光,我承认真的酸了
...;随着智能手机的普及,移动互联网开始飞速崛起。而字节跳动抓住了这波机遇,2015年,字节跳动全面加码短视频,从那以后,抖音成为了字节跳动用户、收入和估值的最大增长引擎。自从字节逐步壮大之后... 查看详情
一文揭密字节跳动薪资职级,资深测试开发居然能拿......
...;随着智能手机的普及,移动互联网开始飞速崛起。而字节跳动抓住了这波机遇,2015年,字节跳动全面加码短视频,从那以后,抖音成为了字节跳动用户、收入和估值的最大增长引擎。自从字节逐步壮大之后... 查看详情
字节测试总监,让我们用这份《测试用例规范》,再也没加班过
...;1、为什么要写测试用例?是测试工作的指导,是软件测试质量稳定的根本保障,评估测试结果的基准。有一份用例来指导测试执行,可以在测试人员疲累的时候起到一个牵引作用。编写用例的过程中,通过熟... 查看详情
含泪写下这篇面经:拒绝头条,放弃华为,6面字节跳动终拿offer!年薪70w+!
...考研全力备战字节面试,准备了一个月,10.13面试,三轮面完,10.19收到offercall秋招结束,在此期间拿到360和keep的offer,但是我都拒绝了,因为我的目标很明确!字节跳动,不面试上不罢休,其实腾讯,头条待遇都不错,但是年... 查看详情