测试用例编写是软件测试的基本技能;也有不少人认为测试用例是软件测试的核心;软件测试中最重要的是设计和生成有效的测试用例;测试用例是测试工做的指导,是软件测试的必须遵照的准则。数据结构
在这里咱们不讨论以上的各类观点,可是综上所述,你们能够看出,测试用例编写这项软技能很是重要且是测试人的必备技能,相信不少人没有质疑。工具
下面咱们介绍下测试用例编写。
咱们将用例编写分为黑盒用例编写和白盒用例编写两大类。
测试
标题整体编写思路:
黑盒测试用例(优先)+白盒测试用例(补充)=完整测试用例url
整体编写策略:
对于测试用例编写来讲,经常使用的四种方法基本就够用了,等价类、边界值、正交实验法、错误推断法,辅以场景测试法、需求/设计转换法、探索式测试思想,能够应付绝大多数产品的测试。个别的产品还须要在某一点细化和扩充,须要就事论事。spa
使用各类编写方法的综合设计策略;.net
1)在任何状况下都必须使用边界值分析方法,经验代表用这种方法设计出测试用例发现程序错误的能力最强。
2)必要时用等价类划分方法补充一些测试用例,尤为注意无效等价类状况。
3)若是程序的功能说明中含有输入条件的组合状况,则一开始就可选用因果图法(或断定表法、正交试验法)。
4)用错误推测法再追加一些测试用例,主要是利用测试经验。
5)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,若是没有达到要求的覆盖标准,应当再补充足够的测试用例;参照白盒用例编写。
6)对程序的应用场景进行研究和思考,增长不一样场景下的测试用例;用户场景测试必须重视,很大一部分程序错误就是由于测试场景与用户真实场景的差别性带来的。
7)对业务和程序有更深的理解以后,能够充分发挥发散思惟和探索式想法;你们不要误解探索式测试就是漫无目的的测试,其实探索式测试有很是详细的测试指导思路。
第一部分:黑盒用例编写
常见的方法以下:设计
(1)等价类3d
(2)边界值blog
(3)因果图游戏
(4)断定表驱动法
(5)正交实验法
(6)功能图法
(7)场景实验法
(8)错误推断法
(9)需求转化
(10)设计文档
(11)探索式测试
一、黑盒-等价类
等价类:选取少数有表明性的数据,这一类数据等价于这一类的其它值;找出最小的子集,能够发现最多的错误;
两大特性:必须设计的用例;涵盖了大部分状况;
两类状况:有效等价类;无效等价类;
转化为测试用例
一、按照输入条件、有效等价类、无效等价类创建等价类列表,列出全部的等价类;
二、为每个等价类固定一个编号;
三、设计一个测试用例,使其覆盖一个或多个有效的等价类;
四、设计一个或更多的测试用例以覆盖剩余的有效等价类;
使用场景:输入条件(取值范围/值个数;必须值集合;布尔值;一组处理值;必须遵照的规则;再细分更小等价类;)
等价类举例:
以三角形测试为例:输入3个整数作为三角形的三个边,经过程序断定三角形的类型。
二、黑盒-边界值
边界值:所谓边界条件,是指输入和输出等价类中那些刚好处于边界、超过边界、或在边界如下的状态 ;
两个特征:选择一个或多个元素,以便等价类的每个边界都通过了测试;与仅仅关注输入条件不一样,还须要考虑结果空间(输出等价类)设计测试用例;
边界条件可能很是微妙,所以把他们肯定下来煞费心思;
使用场景:输入+输出都须要考虑(值的范围;值个数;有序集合;内部数据结构;分析规格说明;)
边界值举例:
以三角形测试为例:输入3个整数作为三角形的三个边,1
三、黑盒-因果图
因果图:输入条件的组合进行分析。用一个系统的方法选择出高效的测试用例集;
分析思路:
一、分析规格说明描述,肯定缘由和结果,并赋予标识符;
二、分析规格说明语义,找出缘由与缘由之间,缘由与结果之间关系,画出因果图;
三、有些缘由与缘由之间,缘由与结果之间组合不会出现,用记号代表约束或限制条件;
四、因果图转换为断定表;
五、断定表的每一列做为依据,设计测试用例;
使用场景:必须考虑输入条件的各类组合(一种适合于描述多种条件的组合、相应产生多个动做的形式来进行设计);
四、黑盒-断定表
断定表:分析和表达多逻辑条件下执行不一样操做的状况的工具 ;略过因果图的绘制,直接列出全部组合进行筛选;
分析思路:断定表一般有四个部分组成:条件桩、动做桩、条件项、动做项;
断定表的创建步骤:(根据软件规格说明)
肯定规则个数;列出全部条件桩和动做桩;填入条件项;填入动做项,获得初始断定表;简化合并类似规则;
==使用场景:控制类和游戏。优势是能把复杂的问题按各类可能的状况一一列举出来,简明而易于理解,也可避免遗漏。缺点是不能表达重复执行的动做,例如循环结构。
五、黑盒-正交试验法
正交实验法:利用因果图来设计测试用例时, 输入缘由与输出结果之间的因果关系,有时很难从软件需求规格说明中获得;每每因果关系很是庞大,以致于测试用例数目巨大,为了有效地、合理地减小测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。
分析思路:
(1)提取功能说明,构造因子–状态表 ;
(2)加权筛选,生成因素分析表 ;
(3)利用正交表构造测试数据集 ;
使用场景:必须考虑输入条件的各类组合(从大量的数据中挑取适量、有表明性的点,合理有效的测试);
六、黑盒-场景实验法
场景实验法:软件几乎都是由事件触发来控制流程的,事件触发时的情景便造成了场景,而同一事件不一样的触发顺序和处理结果造成事件流;生动的描绘出事件触发时的情景,有利于设计用例,同时测试用例也更容易的获得理解和执行。
分析思路:
每条路径都反映了基本流和备选流;基本流是最简单的路径;备选流自基本流开始,会有特定条件下加入并执行,可能有多种状况;
使用场景(0表明基本流):0;0+1;0+1+2;0+3;0+3+1;0+3+1+2;0+4;0+3+4;…
七、错误推断法
错误推断法:基于经验和直觉推测程序中全部可能存在的各类错误,从而有针对性的设计测试用例的方法;更多的与用户的使用习惯及测试程序中的常见问题为主。
分析思路:
(1)列举出程序中全部可能有的错误和容易发生错误的特殊状况,根据这些状况选择测试用例;
(2)注意积累与分享;
使用场景:任何测试、任何情景下都会用到的方法。
有经常使用的测试用例集,能够参照。
举例:数字输入验证,分别输入数字(正数、负数、零值、单精度、双精度)、字符串、空白值、空值、临界数值;不合法的输入,系统给出必要的判断提示信息;
八、黑盒-需求转换法
需求转换法:根据需求,执行需求分析,并编写测试用例。
分析思路:
(1)将需求转换为思惟导图;
(2)仔细推敲每个字的含义;
(3)与用户的使用场景和目的结合;
(4)严格设计每个用例;
(5)能够创建一种模型,进行需求转换;
使用场景:任何测试、任何情景下都会用到的方法。
注意:需求的变动带来的影响;需求理解误差带来的影响;需求含糊不清带来的影响等;
九、黑盒-设计文档
设计文档:参照设计文档,能够理解软件系统内部设计流程及处理机制,对比写好的测试用例,能够在对应功能及模块处新增;
分析思路:
(1)仔细阅读设计文档;
(2)与相关人员沟通实现机制;
(3)结合测试用例编写方法,对比以前写好的用例;
使用场景:任何测试、任何情景下都会用到的方法。
注意:设计文档的编写正确性;设计文档的理解误差;
十、黑盒-探索式测试法
探索式测试法:无限创意的测试点,永无止境的探索测试;咱们要在测试的最前沿发挥洞察力、技术及应变措施,找出产品的缺陷;
分析思路:
局部探索式测试;全局探索式测试;混合探索式测试;
使用场景:任何测试、任何情景下都会用到的方法。像漫游同样,自由地寻找软件中的缺陷,软件测试的将来必然有探索式测试。
第二部分:白盒用例编写
基本思路:
第一步须要绘制流程图;
第二步根据路径分析法肯定测试用例;
第三步使用等价类/边界值的方法肯定测试用例的数据
第四步根据实际状况补充(如默认流程、特殊流程等)
基本策略:
一、语句覆盖准则基本上没啥用,比较强的逻辑覆盖准则是断定覆盖或者条件覆盖;一般断定覆盖能够知足语句覆盖;语句覆盖
二、循环覆盖来讲,彻底的路径测试并不符合实际;