软件测试的核心是测试用例的编写
一、测试用例的四大金刚
穷举法===无穷无尽的测试数据 不合理 人力物力也不允许
1)等价类划分法;当测试需要数据量过大,且数据操作可以分类时进行等价类划分
2)边界值分析法;如果需求规定了取值范围或规定了取值的个数时,可以用边界值进行测试。
3)场景法
4)错误推测法(反推法);不单独使用。可以作为其他方法的补充
场景法----业务流程梳理核心业务逻辑场景
等价类和边界值----细化分析
错误推测法----对最终用例进行错误场景的补充
二、等价类划分法
等价类划分法是把所有程序的输入域划分成若干个子集合(等价类),然后从每一个子集合(等价类)中选取少数具有代表性的数据作为测试的输入数据。
输入域指的是页面上可以输入数据的输入框
框内可以随意输入数据,例如:正确的 错误的 有用的 无用的 有效的 无效的 挑选一些
子集合(等价类)指的是同类的数据放在一个集合中。在该集合中,所有的输入数据对于揭秘软件中的错误都是等效的。测试的时候就不需要测试所有数据了,从不同的集合中选取一些代表值来测试就行。
等价类划分:有效等价类(正面,不会报错—正常数据)和无效等价类(负面,抛出错误-异常数据)
如何划分子集合(等价类)
等价类划分法用例的步骤和原则
1)分析需求,先确定其有效等价类和无效等价类
2)在确立了等价类之后,建立等价类表,列出所有划分出的等价类;
3)再从划分出的等价类中选择测试用例。
设计一个新的测试用例数据,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
保证测试覆盖率的基础上,减少测试用例的数量,避免重复,提高效率。
例如:如果有效等价类有5条,最好一个测试用例一起覆盖这5条,如果一个用例无法一次覆盖5条,最多能覆盖几条覆盖几条
设计一个新的测试用例数据,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止;
为了确定是哪个因素触发错误,所以要一个一个的测试,使得每一种错误都被正确处理。
三、边界值分析法(如何选取代表数据)
边界值分析法和等价类划分法一起使用
边界值分析法的原则和步骤:确定边界,应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据。------------范围相关
有效等价类的边界 无效等价类的边界
两点法、四点法、 三点法(具体项目安排)
例子:【8-16】两点法取 8,16 ;四点法8,9,15,16;三点法8,12,16;
注意:此边界值 IP(0-255) , 时间格式(0-23),2的幂值(256,1024,65535)----常识
特殊边界值:0 负数 空值 空格 特殊字符
举例:
测试微信发红包的需求,要求红包的金额范围:0.01 -200 元,设计测试用例
1、分析需求,先确定其有效等价类和无效等价类
有效等价类:1)0.01 -200 4)数字 6)不能超过两位小数
无效等价类:2)小于0.01 3)大于200 5)非数字(中文,字符,字母)
7)超过两位小数
2、在确立了等价类之后,建立等价类表,列出所有划分出的等价类;
输入条件(需求) | 有效等价类 | 无效等价类 | 边界值 |
红包金额 | 1)0.01 - 200 | 2)小于0.01 | 0 |
3)大于200 | 200.01 | ||
4)数字 | 5)非数字(中文,字符,字母) | ||
6)不能超过两位小数 | 7)超过两位小数 | 3位数 |
3、再从划分出的等价类中编写测试用例。用例输入数据用边界值分析法取值
测试用例描述 | 用例输入数据 | 等价类的覆盖 |
输入红包金额范围是0.01-200之间的数字,不超过两位数字 | 0.01,200 | 1),4),6) |
输入红包金额范围小于0.01的数字 | 0 | 2) |
输入红包金额范围大于200的数字 | 200.01 | 3) |
输入红包金额是非数字的 | test | 5) |
输入红包金额是超过了2位小数的 | 100.123 | 7) |
输入红包金额是负数 | -1 | 特殊边界值 额外补充 |
空值 | 输入为空 必选项 | |
空格 | 输入空格 |
四、场景法
通过场景描述的业务流程(业务逻辑),也包括代码实现逻辑,设计用例来遍历场景(路径),验证软件系统功能的正确性。
1.如何使用场景法
1.1画出流程图 —产品需求文档,画好了;或者需要测试自己画 工具:wps,office -visio,在线画processon
矩形:表示步骤(操作、输入、输出结果)
菱形:判断条件 是,否
箭头:数据流向
1.2遍历场景,提取测试用例。
1)覆盖正常的路径 顺利取到线 冒烟测试
2)走每一个分支 找菱形 正常场景下没有覆盖的路径 分支
3)出错步骤重新回到主流畅,建议多走一步正确的步骤 建议
注意:场景法的重点是测试流程,因此每个流程一个用例验证即可,流程测试没有问题并不能说明系统功能没有问题了,还需要针对单步的功能进行测试, 输入项
只有单个功能点和流程测试,才算是充分的测试 +等价类、边界值 细化测试
举例:
五、错误推测法 (反推法)
基本经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
它的要素共有三点,分别为:经验、知识、直觉。 探索性测试
考虑程序可能触发错误场景 不能正常运行
可能不全,可能会漏??所以不单独使用,可以作为其他方法的补充