1.测试用例是什么
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求
2.测试用例的作用
以前一直觉得写测试用例是一种特别费时且没有意义的工作,一直很排斥,后来经过同事的指点以及百人计划的分享,才发现测试用例非常重要,很有必要好好学写。主要的作用如下:
a.测试用例可以让测试新人快速了解整个项目的业务
b.执行测试,发现缺陷,让测试更加方便的执行
c.防止漏测,只需要根据用例一条一条执行即可
d.对执行者的要求不高,人员紧缺的情况下没有任何经验的人都可以参与进来测试
e.可以作为评估测试人员进度,工作量以及跟踪/管理测试工作人员的工作效率的主要因素,从而更加合理的做出测试安排或调整。
3.测试用例设计的基本准则
a.测试用例的代表性:能够代表并覆盖各种合理的和不合理,合法的和不合法的,边界和越界的,以及极限的输入数据,操作和环境设置等
b.测试结果的可判定性:即执行测试结果的正确性是可判定的,每一个测试用例都应该有相应的期望结果
c.测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的
4.黑盒测试用例设计方法
等价类划分法
在规定了输入条件必须遵守的规则的情况下(取值范围/值个数/值集合/布尔值)可确立一个有效的等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
如:姓名文本框允许输入10个vachar,则应分别测试输入10个英文字符(区分大小写),10个中文字符,10个全数字字符,10个混合字符等
边值分析法
对输入或输出的边界值进行测试,若边界附近的取值不会导致程序出错,那么其他的取值导致程序错误的可能性也很小
如:姓名文本框允许输入10个vachar,则应分别测试输入10个英文字符,0个英文字符,1个英文字符,11个英文字符
一般来说,边值分析法时等价类划分的补充
正交试验法
从大量的试验点中挑选出适量的,有代表性的点,应用依据迦罗瓦理论导出的“正交表”,合理的安排试验的一种科学的试验设计方法
如:某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询:根据“性别”=“男,女”进行查询;根据“班级”=“1班,2班”查询;根据“成绩”=“及格,不及格”查询
步骤:
a.提取功能说明,构造因子-状态表
共3个因子,每个因子有两个状态,因此,全部测试用例数为2*2*2=8个
b.计算各因子和状态的权值,删去一部分权值较小(重要性较小的因子或状态),使最后生成的测试用例集缩减到允许范围内
套用三因素两水平的刚好有L4(2^3)的正交表,得到的测试用例个数是n=3*(2-1)+1=4
c.利用正交表的每行数据构造测试用例
流程分析法
主要针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计
如:用户进入一个在线购物网站进行购物:
1)该网站必须使用注册帐号购买商品;
2)选择物品后,进行在线购买,若帐号已登录,则直接生成订单;
3)若帐号未登录,则必须先登录帐号,再生成订单;
4)帐号登录成功后,生成订单,可进行付钱交易,付款成功后,完成整个购物过程;
5)登录帐号时,若帐号错误,则提示“帐户不存在”;若密码错误,则提示“密码错误”;帐号或密码错误均需重新输入帐号和密码;
6)付款时,若帐号余额不足,则提示“帐户余额不足”。
步骤
a.画出业务流程图
b.定义状态节点和条件分支
c.确定测试路径
1)正常流程,购买成功(基本流程):对应一次性购买并付款成功;
2)异常流程,购买失败(分支流程):对应取款失败,包括退卡、吞卡;
3)异常流程,购买成功(循环流程):对应中间出现意外,比如密码输入错误,账号输入错误,付款时余额不足,但是最终成功付款的情况。
d.选取测试数据,构造测试用例
根据上一步确定的测试路径,编写详细的测试用例
判定表法
判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确
因果图法
把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出
步骤:
a.把大的系统规格划分解成可以测试的规格片段
b.分析分解后待测的系统规格,找出哪些是原因,哪些是结果
c.画出因果图
d.把因果图转换成判定表
e.简化判定表
f.用判定表中的每一项生成测试用例
状态迁移图法
许多需求用状态机的方式来描述,状态机的测试主要关注在测试状态转移的正确性上面。对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态,可能不可能产生非法的状态转移等。用这种方法可以设计逆向的测试用例,如状态和事件的非法组合
如下图
输出域覆盖法
分析各输出的等价类, 通过选择那些会导致各个输出的等价类被达到的输入点来执行测试,期望达到输出域等价类覆盖
异常分析法
系统异常分析法就是针对系统有可能存在的异常操作、软硬件缺陷引起的故障进行分析,依此设计测试用例。主要针对系统的容错能力、故障恢复能力进行测试
错误猜测法
错误猜测法就是根据经验猜想可能有什么问题并依此设计测试用例
在使用时要针对开发项目的特点对方法加以适当的选择要采用的用例设计方法
5.白盒测试用例设计方法
语句覆盖法
分支覆盖法
条件覆盖法
分支条件覆盖法
路径覆盖法
基本路径覆盖法