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