一、软件测试的分类
1、按测试原理分为:黑盒测试、白盒测试、灰盒测试
2、按测试方法分为:手工测试和自动化测试、静态测试和动态测试
3、按测试阶段分为:单元测试、集成测试、系统测试、验收测试、回归测试
4、按测试类型分为:功能性测试、性能测试、安全测试
二、测试用例设计方法
1、等价类划分法
把全部可能的输入数据合理的划分成若干子集合,而这些子集合对于揭露软件错误都是等效的,我们把这些子集合叫做等价类。测试时,在每个等价类中选取部分代表性的数据,作为测试的输入条件进行测试
- 有效等价类--对于程序规格说明来说是合理的,有意义的输入。用来验证程序是否实现了规格说明中的功能和性能
- 无效等价类--超出规格说明以外的输入。
等价类划分的原则
在输入条件规定了取值范围或取值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。
在输入条件是一个布尔量的情况下,可以确立一个有效等价类和一个无效等价类。
在规定了输入数据的一组值(假设N个),并且程序要对每一个输入值进行处理的情况下,可以确立N个有效等价类和一个无效等价类。
例:输入条件说明输入字符为:中文、英文、阿拉伯文三种之一,则分别取这三种这三个值作为三个有效等价类,另外把三种字符之外的任何字符作为无效等价类。
在规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价类(符合条件)和若干无效等价类(从各个角度违反规则)。
在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类划分为更小的等价类。
2、边界值分析法
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
3、错误推断法
基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。
4、因果图法
等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
以1表述某种状态出现,0表述某种状态不出现
(a)恒等:若c1为1,e1为1,否则为0
(b)非:若c1为1,e1为0,否则为1
(c)或:若c1或c2或c3为1,则e1为1,否则为0
(d)与:若c1和c2同时为1,则e1为1,否则为0
有时候输入条件之间还存在某些依赖关系,我们称之为“约束”,约束关系图如下:
对输入条件进行约束:
(a)E:最多只有1个条件为1
(b)I:至少有1个条件为1
(c)O:有一个且只有一个条件为1
(d)R:如果a为1,则b必须为1
对输出条件进行约束:
(e)M:如果a为1,则b强制为0
5. 判定表驱动法
判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。
(1) 判定表的优点
能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。
在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。
6、正交实验法
还没有怎么搞懂这个方法
7、场景法
8、功能图法
还没有开始学习这个方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?