测试用例
一、用例的作用
1.交付给客户的一部分,提高可信度
2.内部使用,测试效率是目的
二、用例设计方法
1.等价类划分法:
(1)适用于:一般有数据输入的地方就可以使用
(2)优——简单易用,避免盲目或随机选取的不完整和覆盖的不稳定性
(3)缺——没有对输入的组合情况充分考虑
(4)用例优化:对于不同控件的有效等价类或有效边界值可以尽可能的在一条用例中测试
对于不同控件的无效等价类或无效边界值在开始时一条用例测一个,最后可以适当考虑无效等价类的组合情况:
①考虑时间成本
②从简单到复杂
③针对使用的更频繁的组合,可重点测试
④最后可以考虑最糟糕的情况
2. 边界值分析法:
(1)适用于:对输入数据有范围约束
(2)优缺点同等价类划分法
3.等价类+边界值
4.基本路径分析法(也可用于黑盒):让程序体现所有可能逻辑
(1) 缺:对于一些存在循环的流程没有考虑
5.因果图法:
(1)适用于:一个界面中,有多个控件,控件之间存在组合关系,而且不同的输入组合会产生不同的输出结果的组合(控件组合),用因果图的控件一般包括:按钮、单选按钮、复选按钮、只有2-3项选择的列表框。
因——原因,输入动作
果——结果,输出结果
(2)优——清楚输入条件之间、输入与输出之间的关系
(3)缺——对复杂的输入输出需花费大量时间进行设计
(4)基本符号——与、或、非
(5)约束符号——约束的永远都是同一类型:要么同时限制几个输入间的关系,要么同事限制几个输出间的关系
①互斥(E)——表示几个原因中之多只有一个1(程序启动后没有默认值)
②包含(I)——表示几个原因中至少有一个1(例如投票必须选一个)
③唯一(O)——表示几个原因中有且仅有一个1(程序启动后有默认值)
④要求(R)——只要原因a出现,则原因b要出现(例如勾选自动登录功能对记住密码功能有要求)
⑤屏蔽(M)——如果原因a出现,则原因b要出现(一般在输出中常用)
6.判定表法:因果图法的一种简化
(1)步骤:
①列出所有条件桩和动作桩(结果或相应错误提示)
②填入条件项
③填入动作项,制定初始判定表
④简化、合并想死规则或相同动作
7.场景设计法:覆盖系统用例中的主成功场景和扩展场景,并适当补充各种正反面的测试用例和考虑异常情况
(1)适用于:没有太多填写项,所有操作都是通过鼠标的点击、双击、拖拽完成
①模拟用户完成正常功能、核心业务逻辑的动作——验证功能的正确性
②模拟用户操作中出现的主要错误——验证程序的异常处理能力
(2)分析步骤:①分析需求,找出基本流(正确操作)和备选流(可能出现的错误)
②根据基本流、备选流列出场景
③根据场景,编写用例(场景和用例不一定是一对一关系)
8.错误猜测法:基于经验和直觉
9.正交表:
(1)适用于:有很多控件,每个控件有多个取值,要考虑不同控件不同取值之间的组合,组合数量较大,且没有必要为每一种组合编写用例。LN(m的k次方)
N——行数:需测试组合的次数
K——列数:表示控件个数(因数个数)
M——因数的水平数:每个控件包含的取值个数
【正交表选择原则:如果因数的水平数不同,采用相同个数多的那个水平数】
(2)优——有效减少测试用例
(3)步骤:①确认有哪些因素(输入条件,如性别)
②每个因素有哪几个水平(输入条件的参数,如男/女)
③选择合适的正交表L测试用例个数(水平数∧因素数)
【水平数:输入条件参数个数;因素数;输入条件个数】
④把变量值映射到表
⑤每一行为一组测试用例
10.组合覆盖:根据覆盖程度分为单因素覆盖、成对组合覆盖、三三组合覆盖,成对组合覆盖要求任两个因素的所有水平组合至少被覆盖一次
(可使用工具PICT:http://msdn.microsoft.com/en-us/testing/bb980925.aspx)
PICT接受一个纯文本文件作为输入,然后输出测试用例集合,文件格式:
输入条件1:参数1,参数2,……,参数n
输入条件2:参数1,参数2,……,参数n
……
11.分类树(适用于功能测试)
(1)步骤:
①识别测试对象并分析输入空间
②对输入空间进行分类
③画出分类树、组合成测试用例
(2)优——易于把握、理解、文档化
(可使用TestONA构建分类树:http://www.testona.net/cms/upload/3_Raw/testonaLightSetup_4.1.1.exe)
三、选择:
第一次执行测试:先执行基本在执行复杂;先执行优先级高
回归测试;选择复杂一点的
自动化测试:1.用例按复杂度分组(根据操作步骤、检查点个数)
2.按一定比例从每组中抽取用例(多选一些简单的,少选一些复杂的)