测试用例的定义
为了特定的目的而设计的一组有测试输入、执行条件、预期结果的案例
用例由以下几方面构成:
用例编号:用例的唯一标识
用例标题:用例的简要描述
测试项目:用例所属项目范畴
用例级别:用例重要程度
预置条件:用例执行的前提
测试输入:测试用例数据输入
执行步骤:执行用例步骤
预期结果:应该得到的结果
用例设计模板:
用例编号 | 项目名称 | 用例名称 | 用例属性 | 重要等级 | 预置条件 | 测试数据 | 测试步骤 | 预期结果
黑盒测试用例设计方法
等价类、边界值、判定表、因果图、状态迁移图、场景法、正交试验、错误推断法
等价类:在所有测试的数据中,具有某种共同特征的数据子集。分为有效等价类和无效等价类
设计方法:1.分析需求,确定输入数据类型,2.使用规则划分有效和无效等价类,3.设计用例覆盖有效等价类(一条用例尽可能多的覆盖有效等价类),4.设计用例覆盖无效等价类(一条用例只能覆盖一个无效等价类)
边界值:选取正好等于、刚好大于或刚好小于边界值作为测试数据
[0,100]
上点:0,100 离点:-1,101 内点:0-100之间任意一个
(0,100]
上点:0,100 离点:1,101 内点:0-100之间任意一个
(0,100)
上点:0,100 离点:1,99 内点:0-100之间任意一个
设计方法:1.分析需求,确定输入数据类型,2.使用规则划分有效和无效等价类,3.确认上点、离点、内点,4.设计用例覆盖有效等价类(一条用例尽可能多的覆盖有效等价类),5.设计用例覆盖无效等价类(一条用例只能覆盖一个无效等价类)
判定表:将复杂的问题按照各种可能的情况全部列举出来
条件桩:列出所有输入条件
动作桩:根据输入条件得到的结果
条件项:对所有的条件进行全组合得到的集合
动作项:根据条件项的每一种组合得到的结果的集合
规则:贯穿条件项和动作项的一列就是一条规则,也就是一条用例(规则数:2^n,n是条件数)
设计方法:1.定义条件桩与动作桩,2.设计优化判定表(全组合),3.填写动作项,4.简化判定表,5.抽取用例(每条规则就是一个用例)
因果图:先分析再得出判定表,使得测试用例大大减少
条件与结果之间的关系:
恒等:有a1就一定有b1
非:有a1就一定不会有b1
或:a1、a2、a3...之间只要有一个满足条件,就有b1
与:a1、a2必须同时满足才有b1
条件之间的依赖关系:
互斥:a、b、c...几个条件中最多只有一个能成立
包含:a、b、c...几个条件中至少有一个成立
屏蔽:a成立时b一定不成立,a不成立时b也不一定成立
唯一:a、b、b...几个条件中有且只有一个能成立
要求:若要达到c,a出现了,b也跟着出现,有a就有b
设计方法:1.分析需求,获取条件与动作,2.分析条件与条件、条件与动作之间的关系,3.通过关系画出因果图,4.将因果图转化为判定表
状态迁移图:先找出所有状态,再分析各个状态之间的转换条件和转换路径,从其状态迁移路径覆盖的角度来设计用例。(多用于协议测试)
测试步骤:1.明确状态节点,2.绘制状态迁移图,3.绘制状态迁移树,4.抽取路径,设计用例
设计方法:1.分析需求,找到状态节点,2.画出状态迁移图,3.画出状态迁移树,4.根据状态迁移树转化为用例
场景法:软件几乎都是用事件触发来控制流程的,事件触发时的情景形成了场景,同一事件不同的触发顺序和处理结果就形成了事件流
基本流、备选流、异常流
步骤:1.分析需求,基本流和备选流,2.根据基本流和备选流生成场景,3.根据场景生成用例
设计方法:
1.如何生成场景:从开始到结束才算一个场景(可以是正常结束也可以是异常结束)
2.找全场景:所有的路径均被覆盖
正交试验法:测试多条件多输入,从大量的数据中挑选适量的,有代表性的,从而合理的安排实验
条件:因子 取值:水平
步骤:1.分析需求获取因子和水平,2.根据因子和水平选择正交表,3.替换因子水平,获取实验次数,4.细化输出测试用例
错误推断法:根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法