当前位置:网站首页>Work for 5 years, test case design is bad?To look at the big case design summary
Work for 5 years, test case design is bad?To look at the big case design summary
2022-08-01 23:36:00 【Rejoice in the testing world】
01 黑盒测试方法
1.1、等价类划分法:
根据软件测试原则可以知道,要做到穷举是不可能的,事实上也是不必要的.为了减少工作量,需要对测试用例进行适当选取.等价类划分法便提供了一种选取测试用例的方法.

等价类划分法把程序的输入域划分为若干部分,然后从每个部分中选取少量具有代表性数据当作测试用例.每一类的代表性数据在测试中的作用等价于这一类中的其他值.也就是说,如果某一类的一个用例发现了错误,这一类中的其他用例也可能发现同样的错误;反之,若某一类中第一个用例没有发现错误,则这一类中的其他用例也不会查出错误.
使用这一方法设计测试用例,首先必须在分析需求规格说明书的基础上划分等价类,列出等价类表.等价类划分有两种不同的情况:有效等价类和无效等价类.
在划分等价类时,有一些规则应该遵循.
1.如果输入条件规定了取值范围或个数,则可确定一个有效等价类和两个无效等价类.例如,输入值时选课人数,在0~100之间,那么有效等价类是:0<=学生人数<=100;无效等价类是:学生人数<0;学生人数>100.
2.如果输入条件规定了输入值的集合或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类.例如,输入日期类型的数据.那么有效等价类是日期类型的数据;无效等价类是非日期类型的数据.
3.如果输入的是布尔表达式,可以分为一个有效等价类和一个无效等价类,比如要求密码非空,则有效等价类为非空密码,无效等价类为空密码.
4.如果输入条件是一组值,且程序对不同的值有不同的处理方式,则每个允许的输入值对应一个有效等价类,所有不允许的输入值的集合为一个无效等价类.例如,输入条件“职称”的值是初级、中级、高级,那么有效等价类应该有3个:初级、中级、高级.无效等价类有一个:其他任何职称.
5.如果规定了输入数据必须遵循的规则,可以划分出一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).
划分好等价类后,就可以设计测试用例了.设计测试用例的步骤可以归结为3步:
1.对每个输入和外部条件进行等价类划分,画出等价类表,并为每个等价类进行编号.
2.设计一个测试用例,使其尽可能多地覆盖有效等价类,重复这一步,直到所有的等价类被覆盖.
3.为每一个无效等价类设计一个测试用例.
1.2、边界值法:
人们长期的测试工作经验中得知,大量的错误往往发生在输入和输出范围的边界上,而不是范围的内部.因此,针对边界情况设计测试用例,能够更有效地发现错误.
通常情况下,软件测试所包含的边界条件有以下几种类型:数字、字符、位置、质量、大小、速度、方位、尺寸、空间等;对应的边界值应该在最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况.
用边界值分析法设计测试用例时应当遵循几条原则:
1.如果输入条件规定了取值范围,应以该范围的边界内及刚刚超范围的边界外的值作为测试用例.如以a和b作为输入条件,测试用例应当包括a和b及略大于a和略小于b的值.
2.若规定了值的个数,应分别以最大、最小个数和稍小于最小和大于最大个数作为测试用例.
3.针对每个输出条件,也使用上面的两条原则.
4.如果需求规格说明书中提到的输入或输出范围是有序的集合,如顺序文件、表格等,应注意选取有序集的第一个和最后一个元素作为测试用例.
5.分析需求规格说明书,找出其他可能的边界条件.
1.3、判定表(决策表):
多个条件、每个条件都有多个取值、组合
在一些数据处理问题中,某些操作是否实施依赖于多个逻辑条件的取值.在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操作.处理这类问题的一个非常有力的工具就是决策表.
决策表通常由4个部分组成:
1.条件桩.列出问题的所有条件.
2.条件项.列出所列条件下的取值,在所有可能的情况下的真假值.
3.动作桩.列出问题规定可能采取的动作.
4.动作项.列出在条件项的各种取值情况下应采取的动作.
示例:(自动饮料售货机)

1.4、正交表(正交实验法):
参考资料:
https://blog.csdn.net/ygyoe/article/details/80183547
在将因果图转换为决策表来生成测试用例时,若要进行全面测试,其得到的测试用例数目多的惊人.正交实验法是从大量的实验数据中挑选适量的、具有代表性的点,合理安排测试的设计方法.
日本著名的统计学家田口玄一将正交实验选择的水平组合列成表格,称为正交表.
正交表的形式为:L行数:
其中行数表示正交表中行的个数,即实验次数,也是通过正交实验法设计的测试用例个数.
因素数是正交表中列的个数,即要测试的功能点.
水平数是任何单个因素能够取得的值的最大个数.
正交表具有以下两项性质:
1.每一列中,不同的数字出现的次数相等.
2.任意两列中数字的排列方式齐全相等.
每个因素的每个水平于另一个因素的每个水平各碰一次,这就是正交性.
1.5、场景法:
现在软件很多都是用事件触发来控制流程,事件触发时的情形变形成场景,而同一事件不同的触发顺序和处理结果就形成了事件流.
用例场景是通过描述流经用例的路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有的基本流和备选流.
1.基本流.采用黑直线表示,是经过用例的最简单路径,表示无任何差错,程序从开始执行到结束.
2.备选流.采用不同颜色表示,一个备选流可以从基本流开始,在某个特定的条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不再加入到基本流中.
示例:(ATM机)
1.6、错误推断法:
根据经验或直觉推测程序中可能存在的各种错误.

02 黑盒测试方法选择
黑盒测试的每种测试方法都有各自的优点、缺点,需要测试人员根据实际项目特点和需要选择合适的方法设计测试用例.以下是选择方法的4条经验:
1.在任何情况下都必须选择边界值分析方法.经验表明,用这种方法设计出的测试用例发现程序错误的能力最强.
2.必要时用等价类划分法补充一些测试用例.
3.根据经验或直觉推测程序种可能存在的各种错误,用错误推测法再追加一些测试用例.
4.如果程序的功能说明中含有输入条件的组合情况,则可选用因果图法和决策表法.
选择合适的测试方法能够极大地提高黑盒测试的效率.除了上述的4条经验外,还需要测试人员积累实际的测试经验,做出合适的选择.
03 黑盒测试方法与白盒测试方法的比较
白盒测试和黑盒测试是两类软件测试方法,传统的软件测试活动基本上都可以划分到这两类测试方法中.看图

白盒测试和黑盒测试各有侧重点,不能相互取代,在实际测试活动中,这两种测试方法不是截然分开的.
最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】.以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等.
现在我邀请你进入我们的软件测试学习交流群:【746506216】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路.
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
软件测试工程师自学教程:
这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】
软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.
美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看
软件测试必会_Jmeter大厂实战 — 仅6步可实现接口自动化测试

边栏推荐
- How to better understand and do a good job?
- Calculate the angle of a line defined by two points
- ELK log collection
- Dynamic Scene Deblurring with Parameter Selective Sharing and Nested Skip Connections
- numpy.isclose
- qt-faststart installation and use
- 计算两点之间的中点
- 切面打印调取的方法
- 在CDH的hue上的oozie出现,提交 Coordinator My Schedule 时出错
- Flink学习第三天——一文带你了解什么是Flink流?
猜你喜欢

cmd指令

Data Organization --- Chapter 5 Trees and Binary Trees --- The Concept of Binary Trees --- Application Questions

C language - branch statement and loop statement

sys_kill系统调用

sys_kill system call

cdh的hue上oozie启动报错,Cannot allocate containers as requested resource is greater than maximum allowed

UML diagram of soft skills
[email protected]与YOLO等目标检测模型的非极大值抑制NMS和评价指标(Acc, Precision, Recall, AP, mAP, RoI)、YOLOv5中[email protected]与

企业防护墙管理,有什么防火墙管理工具?

Flink学习第三天——一文带你了解什么是Flink流?
随机推荐
6133. 分组的最大数量
用virtualenv和Virtualenvwrapper虚拟环境管理工具创建虚拟环境
Chapter 19 Tips and Traps: Common Goofs for Novices
2022/7/31
LocalDateTime转为Date类型
Sql之各种Join
[Camp Experience Post] 2022 Cybersecurity Summer Camp
怎样做才能让这条SQL变成一条危险的SQL?
数据机构---第五章树与二叉树---二叉树的概念---应用题
请问什么是 CICD
numpy.hstack
Flink学习第三天——一文带你了解什么是Flink流?
软技能之UML图
qt-faststart installation and use
When using DocumentFragments add a large number of elements
IDEA常用插件
中职网络安全竞赛B7比赛部署流程
Chapter 12 End-User Task As Shell Scripts
numpy.around
研发团队数字化转型实践
