测试用例-等价类划分法和边界值法
一、测试用例
1、测试用例/案例(test case)
在测试执行之前,由测试人员编写的,用来指导测试过程的重要文档。测试用例主要由:用例编号、测试目的、测试步骤(用例描述)、预期结果(期待结果)等组成。
说明:不同公司用例模板不同,三十主要部分大同小异。
2、功能(黑盒)测试的方法主要有哪些?(7种)
1)等价类划分法
2)边界值法
3)因果图法
4)判定表法
5)正交排列法
6)测试大纲法
7)场景法
3、编写测试用例的参考资源
1)需求相关的文档
2)技术文档--有可能拿不到,例如:开发和测试不是同一家公司。
3)已开发的被测系统(主要参考资源之一,很多公司是需求结合被测系统测试,如果只参考需求可能只能完成30%-40%的测试)
4) 通过与开发、产品、客户等进行沟通讨论,有时也可以参考、借鉴同类软件农产品。
提示:在实际测试中,参考资源往往不齐全,要求测试人员能够最大程度利用现有资源进行测试。
二、等价类划分法
1、应用场合
1)在程序中有数据输入的地方,适合使用等价类划分法。
2)将大量数据划分成若干范围,再从每个范围中挑选代表数据进行测试。(抽样测试,追求高效)
2、测试思想
1)穷举测试:
就会将所有可能的数据都测试一遍,穷举测试是最全面的测试思想,但是实际工作中不能采用,因为所测数据量太大,耗费太多时间,效率太低。(项目周期限至不能使用)
2)理想的测试思想:
用最少的测试数据,达到最好的测试效果。
但是毕竟没有“穷举”测试所有数据,所以有可能遗漏bug的风险。
在时间允许的前提下,我们可以进行补充测试。(纠结的、不放心的、随机挑选)
3、等价类划分法的测试思想:
将大量数据划分成若干个范围,再从每个范围中挑选代表数据进行测试。
特点:每个范围的代表数据可以代表该范围的测试结果
4、两个概念
1)有效等价类:对程序来说,正确的、合理的输入数据集合。---验证功能是否能够正确执行
2)无效等价类:对程序来说,错误的、不合理的输入数据集合。---验证软件是否有强大的异常处理能力(健壮性)
5、等价类划分法的测试步骤:
准备工作:
被测系统:加法计算器
需求:第一个数和第二个数相同,都是要求:-99--99之间的整数,不能为空。
思路:单独测试(适合初学者)
先测“第一个数”,第二个数保证正确数据(配合)。
再测“第二个数”,第一个数保证正确数据(配合)。
步骤1:分析需求,初步划分等价类(范围)
依据:需求
-99--99之间的整数,不能为空。
有效:-99--99之间的整数
无效:为空(不填)、非整数、>99的整数、<-99的整数
步骤2:细化等价类
依据:不再依据与需求,而是要跟据数据存储的类型或格式。
1)细化1:-99--99之间的整数
说明:整数类型储存时应用补码,正数和负数的补码算法不同。
结论:正数和负数应该分别测试。
案例:-99--(-1)负数
0-99 正数
补充说明:无效的整数,因为不涉及存储,所以不是必须要正、负分别测试。(但是如果纠结,可以补充测试)
2)细化2:非整数(不是整数)
细化:小数、字母、中文字符、特殊字符
步骤3:将分析结果填入《等价类表》
记录分析结果,方便后续的用例编写。
步骤4:编写测试用例
每个等价类范围至少要挑选一个代表数据进行测试。
用例的基本要求:其他的测试人员按照你写测试过程能够执行完成。(测试过程与测试目的要匹配)
做业:
1、第二个数:测10、11、12
2、即时贴程序--设置标题功能
需求:1-40个字符,不能包含数字字符,不能包含/ * ?:,不能为空。
要求:分析、设计,填写等价类表,编写《测试用例》(尝试写1个有效数据的,1个无效数据的)
复习:
Q1:什么是测试用例?
是在测试之前由测试人员编写,指导测试过程的重要技术文档
主要组成:用例编号---测试目的---测试步骤(测试描述)---预期结果
Q2:软件测试的基本流程?
1、分析需求
2、制定《测试计划》
3、编写《测试用例》
4、执行测试
5、记录测试结果
6、分析测试结果,填写缺陷报告
7、缺陷的跟踪和处理过程
8、填写测试总结
Q3:编写测试用例的参考资源
1、产品概要设计说明
2、产品需求
3、被测系统
4、同类产品
5、与相关人员沟通(同事、开发、产品)
Q4:功能测试的主要方法有哪些
1、等价类划分法
2、边界值法
3、因果图法
4、场景法
5、判定表法
6、正交排列法
7、测试大纲法
总结
一、案例:两位数加法器的总结
问题:
1、多个无效数据组合的情况没有测
1)两个控件都无效的组合
2)一个控件多个无效数据组合
解决:最后适当(看时间)挑选无效数据组合起来测试(补充测试)
2、在测试有效等价类数据时,测试用例存在冗余(重复)。--用力优化(减少重复)
二、上机练习
被测系统:即时贴-设计标题功能
需求:1-40个字符,不能为空,不能包含数字字符,不能包含/ * ?:
------------------------------------------------------------------------------------------
边界值法
一、边界值法的作用
由于在程序开发时,边界时长非常容易出错额位置所以应该重点测试,就有了边界值这样的测试方法。
二、应用场合
在程序中有输入数据的地方,也适合使用边界值法,等价类和边界值法往往配合使用,从而形成一套较为完善的测试数据。
问题:等价类和边界值法经常一起使用,但是某些特殊情况,也有可能不在一起使用。
例如:性别 有效:男、女 无效:男、女之外 就属于不需要使用边界值法的情况
三、边界如何划分
1、边界值点
有效等价类和无效等价类之间的分界点。
最小值(min)和最大值(max)
2、次边界值点(4个)
边界值相邻两边的点。
无效最小次边界:min-、:最小边界值min、有效最小次边界:min+,有效最大次边界:max-、最大边界值:max、无效最大次边界:max+
联系:
Q1:如果测试时间紧张,应该优先测试哪些点?
应优先测试最大值和最小值
Q2:关于边界值的需求,是否需求文档中开始就已经规定好了?
不一定,有些边界值时开始就明确的,而有些是随着开发进度,逐渐明确的。
(注意:需求有可能会变更)
Q3:
1)年龄:18-60的整数
min+:19, min:18,min-17,max:-59,max:60,max+61
2)标题:1-40个字符
min+:2个,min:1个,min-:为空,max-39个,max:40个,max+:41个
3)工资:3000-100000之间的小数,小数位数最多是小数点后两位
min+:3000.01,min:3000,min-:2999.99
max-:99999.99,max:100000,max+:100000.01
额外考虑小数位数的边界
小数位数最大值:小数点后2位
次边界:
小数点后1位(有效)
小数点后3位(无效)
四、提示
等价类(范围)和边界值应该配合测试,等价类负责范围内数据的检查,二边界值负责重点检查边界,所以只有两者都测才是最好的测试方法。
------------------------------------------------------------------------------------------
第四讲(3)等价类和边界值法的综合应用
一、案例信息注册
准备工作:熟悉需求
步骤1:分析需求后,考虑测试该功能要使用什么测试方法。
等价类+边界值
步骤2:使用等价类和边界值方法对姓名和年龄控件分别进行分析,分析结果填入《数据分析表格中》
步骤3:形成较为完善的测试方案(思路),编写测试用例。
重点
1、如果测试有效数据(有效边界+有效等价类)
1条用例尽可能的将多个控件的有效数据组合起来测试。(测试优化--有效数据尽量组合测试)
效果:测试用例减少,测试质量不变,测试效率大幅提高。(控件越多,效率提升幅度越大。)
2、接下来测试无效数据(无效等价类+无效边界)
思路:无效数据要单独测试
每个控件的每个无效数据要单独测试。为了避免“屏蔽现象”影响测试人员对于测试结果的判断。
3、最后在时间允许的情前提下,进行补充测试。
1)无效数据组合测试
(1)多个控件无效数据组合,例如:多个文本框都为空。
(2)一个控件多个无效数据组合。例如:年龄6.5(岁)
注意:挑用户常见的错误操作;挑程序员常出错的情况。
2)测试人员不放心的,纠结的数据。
3)随机挑选数据进行测试。
说明:补充测试有可能补充发现bug,如果发现bug,要提交缺陷报告,并且补写测试用例(可维护的文档,可以修改)。
二、测试用例总结
1、测试用例的作用(了解)
1)可以提高测试的覆盖率(测得更安全)
2)提高了测试的效率
3)测试用例可以使重复测试变得很容易实现。
4)测试用例可以监督测试过程,评估测试结果。
5)测试用例可以缩短测试周期。--当软件进行升级或者二次开发时,只需要对新增功能部分进行用例设计。
2、测试用例编写的注意事项:
1)在编写测试用例之前,先要弄清楚用例编号的规则,测试用例提交服务器的位置,用例中附件的命名规则以及提交位置等。
2)测试用例需要评审。
(1)互评互审
(2)小组的用例评审
(3)甲方参加的用例评审会
3)基本标准
首先能够编写好1条用例
要求:逻辑清晰、专业、准确、易读(其他的测试人员要能够按照你写的用例顺利执行出结果。)
4)更高标准
能够独立的对功能进行分析,设计测试方案(思路),进而编写测试用例。
标准:测试覆盖率高,遗漏bug少,测试效率高。
------------------------------------------------------------------------------------------