本文转自测试人社区,霍格沃兹测试开发学社学员笔记
原文链接:https://ceshiren.com/t/topic/29430
一、等价类
1.1 定义
- 等价类划分是一种重要的、常用的黑盒测试方法;
- 不需要考虑程序的内部结构,只需要考虑程序的输入规格即可;
- 它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性;
- 用户所有可能输入的数据,划分成了若干个子集,然后从没一个子集当中选取少数具有代表性的数据作为测试用例;
- 在测试资源有限的情况下,用少量有代表性的数据得到比较好的测试效果。
1.2 划分
有效等价类:指符合《需求文档》,输入合理的数据集合;
无效等价类:指不符合《需求文档》,输入不合理的数据集合。
1.3 划分原则
- 规定输入的取值范围或个数时,则划分一个有效和两个无效;
- 规定输入的集合或规则必需要遵循的条件,则划分一个有效和一个无效;
- 输入条件是一个布尔值,则划分一个有效和一个无效;
- 输入条件是一组数据,且每个输入的值做不同的处理,则划分若干个有效和一个无效;
- 输入条件规定了必须要遵循的某些规则下,则划分一个有效和若干个无效;
- 不是所有的等价类都有无效等价类。
1.4 设计步骤
- 先划分等价类:找出所有可能的分类;
- 确定有效等价类:需求中的条件;
- 确定无效等价类:与条件相反的情况,再找到特殊情况;
- 从各个分类中挑选测试用例数据。
二、边界值
2.1 定义
- 大量的软件测试实践表明,故障往往出现在定义域或值域的边界上,而不是在其内部;
- 为检测边界附近的处理,专门设计测试用例,通常都会取得很好的测试效果;
- 边界值分析法是一种很实用的黑盒测试用例方法,它具有很强的发现故障的能力;
- 边界值分析法是作为对等价类划分法的补充,测试用例来自等价类的边界。
2.2 确定方法
- 上点:边界上的点;
- 离点:离上点最近的点;
- 内点:在输入域内任意一个点;
- 选取正好等于、刚好大于或刚好小于边界值作为测试数据。
2.3 划分规则
场景 | 取值 |
---|---|
如果规定了输入域的取值范围 | 选取刚好在范围边界的点、刚好超过边界的点 |
如果规定了输入值的个数 | 选取最大个数、最小个数、比最小个数少1、比最大个数多1 |
如果规定了输入是一个有序的集合 | 选取集合的第一个元素、最后一个元素 |
三、因果图
3.1 定义
- 因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法;
- 它适合于检查程序输入条件的各种组合情况:
- “因”——输入条件
- “果”——输出结果
3.2 使用场景
- 描述多种条件的组合;
- 产生多个动作。
3.3 基本符号
符号 | 描述 |
---|---|
恒等 | 若原因出现,则结果出现;若原因不出现,则结果也不出现 |
非 | 若原因出现,则结果不出现;若原因不出现,则结果出现 |
或 | 有多个原因。若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现 |
与 | 有多个原因。若几个原因都出现,则结果才出现;若其中一个原因不出现,则结果不出现 |
3.4 互斥条件
条件 | 描述 |
---|---|
互斥(E) | a、b、c只能有一个成立,但是可以都不成立 |
包含(I) | a、b、c中至少有一个成立 |
唯一(O) | a、b、c有且仅有一个成立 |
要求(R) | 如果a成立,则要求b必须也成立,其他的不约束 |
屏蔽(M) | 如果a成立的时候,强制b不成立,其他的不约束 |
3.5 基本步骤
- 找出所有的输入条件(因);
- 找出所有的输出条件(果);
- 明确所有输入条件之间的制约关系以及组合关系;
- 明确所有输出条件之间的制约关系已经组合关系;
- 找出什么样的输入条件组合会产生哪种输出结果;
- 把因果图转换成判定表;
- 为判定表中的每一列表示的情况设计测试用例。
推荐
Python全栈开发与自动化测试开发班
由浅入深实战进阶,从小白到高手
以Python全栈开发为基础,深入教授自动化测试技能,为学员打造全面的技术能力。通过系统学习和实际项目实战,学员将具备在职场中脱颖而出的竞争力。不仅能够灵活运用Python进行开发,还能够保障项目质量通过自动化测试手段。这是一个全面提升职业竞争力的机会。
课程详情
Python开发必备基础技能与项目实战
Pvthon 编程语言/算法和数据结构/面向对象编程Web后端开发/前端开发/测试管理平台项目实战
人工智能ChatGPT实战
人工智能辅助学习各种开发和测试技能/Pytorch深度学框架/平台开发实战
数据分析与自动化办公
数据采集/Pandas与数据处理技术/ECharts与数据可视化技术/爬虫实战/自动化办公/批量文件处理
UI自动化测试与高级项目实战
Web自动化测试/App自动化测试/ PageObject设计模式
接口自动化测试
接口协议分析/Mock实战/服务端接口测试
性能测试
性能测试流程与方法/JMeter 脚本参数化/Grafana监控系统搭建
简历指导与模拟面试
1V1简历指导/模拟真实面试/测试开发岗面试全攻略名企私教服务 名企专家1v1辅导/行业专家技术指导/针对性解决工作难题/绩效提升辅导与晋升复盘
课程亮点
名企私教服务 先学习后付费 高额奖学金
专属社群+晚自习在线答疑
5V1全方位辅导作业+考试强化学习效果
简历修改 模拟面试 就业内推 面试复盘
福利一: 测试开发精品课免费学
福利二:免费领取技能图谱&大厂面试题合集
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。