![3be0321c-e53c-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/3be0321c-e53c-eb11-8da9-e4434bdf6706.png)
作为软件测试人员,用例设计是测试的必备的技能
我们在设计用例的时候总会用到的方法
今天就给大家总结下,工作中用到用例方法
- 等价类划分
- 边界值分析
- 因果图分析
- 错误猜测
接下来一一跟大家分析每种方法
- 等价类划分
等价类划分法将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。利用这一方法设计测试用例可以不考虑程序的内部结构,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。等价类划分法是一种系统性的确定要输入的测试条件的方法。
有效等价类与无效等价类:有效等价类代表对程序的有效输入,而无效等价类代表的是其他任何可能的输入条件。
确定了等价类是选取每一个输入条件,将其划分对个图,进行分析,比如:
![3de0321c-e53c-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/3de0321c-e53c-eb11-8da9-e4434bdf6706.png)
我们拿一个案例:
要求-99—99之间的整数,不能为空(必填)
有效等价类:
-99—99之间的整数
无效等价类:
<-99的整数
>99的整数
非整数(需要细化)
为空(不填)
![3fe0321c-e53c-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/3fe0321c-e53c-eb11-8da9-e4434bdf6706.png)
案例结论:
- 在测试有效等价类时,当测试对象为多个控件时,会出现测试用例冗余(重复)的问题--优化用例可以解决
- 当测试无效等价类时,没有考虑多个控件都为无效的情况--强化用例解决
2.边界值分析
所谓边界条件,是指输入和输出的可能情况中那些恰好处于边界、超过边界、在边界以下的情况。这与等价类是有点相似,不同点在于:
- 等价类没那么关注刚好处于边界值的情况。
- 等价类没那么关注输出的边界情况。
- 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超过这个范围边界的值做诶测试输入数据
- 如果输入条件规定了值的个数,则用最大个数,最小个数,比最大个数多一,比最小少一的数作为测试数据
- 将规则1和2应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值
- 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
- 如果程序中实用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例
- 分析规格说明,找出其他可能的边界条件
案例:直角三角形问题输入域健壮性边界值分析
![40e0321c-e53c-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/40e0321c-e53c-eb11-8da9-e4434bdf6706.png)
直角三角形问题输出域边界值分析
![41e0321c-e53c-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/41e0321c-e53c-eb11-8da9-e4434bdf6706.png)
综合考虑输入域和输出域的边界值
![42e0321c-e53c-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/42e0321c-e53c-eb11-8da9-e4434bdf6706.png)
3.因果图分析
前面的等价类划分和边界值分析只关注与软件的输入和输出规格,对于更多的规格说明,可以对应整理出因果图进行进一步的逻辑分析,从一个不同的视角,或者说更系统性的视角来设计测试用例。其分析设计过程如下:
将规格说明分解为可执行的片段。
确定规格说明中的因果关系。
分析规格说明的语义内容,将其转换为连接因果关系的布尔图。
给图加上输出输出的约束关系说明等注解符号。
跟踪因果图的状态变化,转换为一个判定表。
将判定表中的列转换为测试用例。
![43e0321c-e53c-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/43e0321c-e53c-eb11-8da9-e4434bdf6706.png)
学会看到上面那个关系
案例:测试中数据第10个是故意写错的,软测作业,写的比较简单。
有一个处理单价为5角钱饮料的自动售货机,相应规格说明如下:
(1)若投入5角或1元钱的硬币,按下“橙汁”或 “啤酒”的按钮,则相应的饮料就送出(每次只投入一个硬币,只按下一种饮料的按钮)。
(2)如投入5角的硬币,按下按钮总有饮料送出。
(3)若售货机没有零钱,则显示“零钱找完”的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。
(4)若有零钱,则“零钱找完”的红灯不会亮,若投入1元硬币并按饮料按钮后,则送出饮料同时找回5角硬币。
好好分析这道经典的题目 分析图
![44e0321c-e53c-eb11-8da9-e4434bdf6706.png](http://p05.5ceimg.com/content/44e0321c-e53c-eb11-8da9-e4434bdf6706.png)
然后将分析图转化为判定表:
![45e0321c-e53c-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/45e0321c-e53c-eb11-8da9-e4434bdf6706.png)
4.错误猜测
错误猜测不算是什么测试用例设计的策略。其实就是设计人员的潜意识和直觉。不过也是有其特点:
- 根据经验列出可能犯的错误和容易犯错误的地方,然后针对设计用例。
- 针对规格说明书中未明确说明,程序员认为显而易见的或包含程序员“假设”的地方进行用例设计。
既然是用错误猜测法,那么我们首先列出可能导致搜索结果出错的情况:
例如,输入数据和输出数据为0的情况;输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例
工作上用的最多就是这几种,很多时候都是凭靠自己直觉经验去测试的,用例只是我们协助我们测试一种凭证
![46e0321c-e53c-eb11-8da9-e4434bdf6706.png](http://p01.5ceimg.com/content/46e0321c-e53c-eb11-8da9-e4434bdf6706.png)