一 什么是测试用例
1.1 测试用例的定义
1.2 测试用例模板和包含的内容
1.3 设计测试用例的作用
简单的说,测试用例就是:
设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果。如果程序在这种情况下不能正常运行,而且这种问题或重复发生,那就表示软件测试人员已经测出软件有缺陷,这时候就必须讲这个问题标示出来,并且通知软件开发人员。软件开发人员接获通知候,将这个问题修改完成于下一个测试版本内。软件测试工程师取得新的测试版本后,必须利用同一个用例来测试这个问题,确保该问题已经修改完成。
二 测试用例模板
测试用例应该包含以下内容:
标识符:由测试设计过程说明和测试程序说明引用的唯一标识符。测试项:描述被测试的详细特性、代码模块等,应该比测试设计说明中所列的特性更加具体。还要指出引用的产品说明书或者测试用例所依据的其他设计文档。输入说明:说明列举执行用例的所有输入内容或者条件输出说明:描述进行测试用例预期的结果。环境要求:是指执行测试用例必要的硬件、软件、测试工具、人员等。特殊要求:描述执行测试必须的特殊要求用例之间的依赖性:如果一个测试用例依赖于其他用力,或者受其他用例的影响,就应该在此注明。
三 用例设计和编写的作用
有效性:测试用例使测试人员测试过程中的重要参考依据可复用性:良好的测试用例具有重复使用的功能,是的测试过程事半功倍,提高测试效率。易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用。可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。可管理性:测试用例也可以作为检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的标准。四 黑盒测试用例设计方法
1. 黑盒测试用例设计方法概述
2. 等价类划分法
2.1 等价类划分法原理
把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性的数据作为测试用例每一类中的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。
2.2 等价类划分法设计步骤
2.2.1 确定等价类的原则
在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类
例如:一个文本框规定,输入字符个数为3~18位。
一个有效等价类:范围内个数
两个无效等价类:个数小于6;个数大于18
在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。
例如:请输入11位的手机号。
一个有效等价类:11位
一个无效等价类:不是11位
在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
布尔量:表示“真”或者“假”
在规定了输入数据的一组值(假定N个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
例如:登录重要输入用户名和密码
在规定了输入数据必须遵守的规则的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
例如:用户名要求:6~18,由字母、数字、下划线组成;字母区分大小写;
在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
2.3 等价类划分法适用场景
针对:需要有大量数据测试输入,但是没法穷举测试的地方
输入框下拉列表单选和复选框
典型代表:页面级的输入框类测试
3. 边界值分析法
如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比这个最小个数少1,比最大个数多1的数作为测试数据分析规格说明,找出其他可能得边界条件。如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。
3.1 边界范围节点
选取正好等于,刚好大于、刚好小于边界的值作为测试数据上点:边界上的点(正好等于)离点:距离上点最近的点(刚好大于、刚好小于)内点:范围内的点(区间范围内的数据)
3.2 案例一:
需求;通过边界值法验证QQ号码的合法性
要求:6~10位自然数
3.3 使用场景
场景词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语典型代表:有边界范围的输入框类测试
3.4 总结
边界值可以覆盖等价类的长度,但是无法覆盖类型,所以设计用例时,必须两者结合。
五、测试步骤
等价类划分法用来筛选数据,而测试步骤的设计方法主要有因果图法、
5.1 因果图法
因果图法是一种适合于描述对于多种输入条件组合的测试方法根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法它适用于检查程序输入条件涉及的各种组合情况。
第一步:根据功能说明书中规定的原因和结果之间的关系画出因果图。
原因和结果的关系:
恒等:原因A成立,结果B一定成立非:原因A成立时,结果B一定不成立或:原因A、B、C三者只要有一个成立,结果D就一定成立与:原因A、B、C斗殴成立时,结果D才会出现。
第二步:根据功能说明在因果图中加上约束条件
其中互斥、包含、唯一、要求时对原因的约束,屏蔽是对结果的约束。他们的含义如下互斥:表示不同时为真,即a,b,c中至多有一个为真。包含:表示至少有一个为真,即a,b,c不能同时为假唯一:表示a,b,c中有且仅有一个为真要求:表示若a为真,则b必须为真。即不可能a为真且b为假屏蔽:表示若a为真,则b必须为假
六、因果图法实例
阅读和分析功能说明书,识别出"原因"和"结果",并加以编号案例:有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,他的软件规格说明如下。若投入5角钱的硬币,按下"橙汁"或"啤酒"的按钮,则相应的饮料就送出来。若投入1元的硬币,同样也是按"橙汁"或者"啤酒"的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。6.2 根据需求说明书找出原因-结果关系
6.3 根据原因-结果关系画出因果图
因果图使用中的局限性:当原因和结果很多的时候,它们之间的关系连线就会很多,导致因果图的可读性变差。因此局部的小功能(原因和结果不是很多的时候)分析。
6.4 列出所有的原因和结果的列表,设计初步的测试用例步骤
Case5,Case6这是一种bug,不能做测试设计。因果图的优势在于能够发现设计中存在的不足。
经过分析发现:
1)只选择银联,没有投币的时候,软件没有任何结果
2)只投币,没有选择饮料的时候,软件也没有任何的结果。
3)我们不能吧软件的缺陷设计成测试用例。
6.5 设计用例