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