《软件测试基础系列培训 -等价类和边界值方法.ppt》由会员分享,可在线阅读,更多相关《软件测试基础系列培训 -等价类和边界值方法.ppt(47页珍藏版)》请在三一办公上搜索。
1、高效设计测试用例(2)-等价类和边界值方法,内部资料,请勿外传,技术质量部*2009年08月,软件测试基础系列培训 ST-2009-004,课程目标,课程目标:学会使用等价类方法设计测试用例学会使用边界值方法设计测试用例,2,内容提要,第一节:等价类方法设计测试用例等价类划分法介绍 等价类划分法实例 等价类划分法实践 等价类划分法关键 用例合并优化原则 第二节:边界值方法设计测试用例,3,等价类划分法简介,一种重要的,常用的黑盒测试用例设计方法把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例,4,什么是等价类,所谓等价类是指某个
2、输入域的子集合,所有等价类的并集就是整个输入域测试某等价类的代表值就等效于对于这一类其它值的测试等价类对于测试有两个重要的意义:完备性整个输入域提供一种形式的完备性无冗余性若互不相交则可保证一种形式的无冗余性,5,等价类划分的原则,如何划分等价类?先从程序的规格说明书中找出各个输入条件再为每个输入条件划分两个或多个等价类,形成互不相交的子集,6,等价类划分的原则,基本等价类划分:有效等价类:是指对软件规格说明而言,是有意义的、合理的输入数据所组成的集合。利用有效等价类,能够检验程序是否实现了规格说明中预先规定的功能和性能无效等价类:是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集
3、合。利用无效等价类,可以鉴别程序异常处理的情况,检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方,7,等价类划分的原则,进行等价类划分的依据:按照区间划分:在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类例:语音合成系统音量调节V的大小为500到500则有效等价类为500500和V500,8,等价类划分的原则,进行等价类划分的依据:按照数值划分:在规定了一组输入数据(假设包括 n个输入值),并且程序要对每一个输入值分别进行处理的情况下,可确定 n 个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)例:程序输入x取值
4、于一个固定的枚举类型1,3,7,15,且程序 中对这4个数值分别进行了处理则有效等价类为x=1、x=3、x=7、x=15,无效等价类为x1,3,7,15的值的集合,9,等价类划分的原则,进行等价类划分的依据:按照数值集合划分:输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类例:输入条件为奇数的整数,则有效等价类是奇数,无效等价类为不为奇数的整数,10,等价类划分的原则,进行等价类划分的依据:按照限制条件或者规则划分:在规定了输入数据必须遵守的规则或限制条件的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)程序输入条件
5、为以字符a开头、长度为8的字符串,并且字符串不包含a z之外的其它字符,则有效等价类为满足了上述所有条件的字符串,无效等价类为不以a开头的字符串、长度不为8的字符串和包含了a z之外其它字符的字符串,11,等价类划分的原则,进行等价类划分的依据:在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类例:输入条件指明为布尔量,则有效等价类为0、1,其余为无效等价类在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步划分为更小的等价类,12,从等价类生成测试用例,如何用等价类确定测试用例?确定等价类,列出等价类表等价类表示:,13,从等价类生成测试用例
6、,根据已列出的等价类表生成测试用例,具体过程如下:为每个等价类规定一个唯一的编号设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这个步,最后使得所有有效等价类均被测试用例所覆盖设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使得所有无效等价类均被覆盖,14,等价类划分法的关键,哪些情况适合于使用等价类划分法最基本、有效的用例设计思想相对独立的功能点多输入多输出的系统有相似输入输出的情况,15,等价类划分法的关键,化分好等价类分析被测系统的功能和逻辑,明确输入输出要求选择合适的等价类(按输入还是按输出)确保等价类的完备(子集的并级是全集)确保等价类的无冗余(各个子集互
7、斥)注意等价类的粒度(各个子集的粒度均匀)注意多个等价类的组合情况,16,等价类优化,等价类较复杂的时候如何优化?合并将各个子类的有效等价类合并到一起将功能重复的功能点合并到一起权衡相似功能的变化,合并不变的部分,保留变化的部分分离尽量分离出无效等价类的所有子类分离出逻辑相对独立的功能点进一步划分相似功能的变化部分,17,实例:保险费率计算程序,保险公司计算保费费率计算程序保费计算方式:保费投保额保险费率其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:,18,保险费率计算
8、程序的输入要求,分析程序规格说明中给出和隐含的对输入条件的要求:年龄:一位或两位非零整数,值的有效范围为199性别:一位英文字符,只能取值M或F婚姻:字符,只能取值已婚或未婚抚养人数:空白或一位非零整数(19)点数:一位或两位非零整数,值的范围为199,19,保险费率计算程序的等价类表,根据输入条件设计等价类表:,20,保险费率计算程序的测试用例,根据等价类表生成测试用例:,21,课堂练习:QQ帐号登陆,22,QQ帐号:610位自然数,QQ帐号登录:划分等价类,23,QQ帐号登录:生成测试用例,24,课堂练习二:手机开户程序,25,输入手机号码,开户手机号码为联通号码,划分等价类,26,优化等
9、价类,27,内容提要,第一节:等价类方法设计测试用例第二节:边界值方法设计测试用例什么是边界值分析法常见的边界值次边界值分析法选择边界值划分测试用例的原则边界值划分用例举例,29,软件在什么条件下更容易出错,哪些情况下软件更容易出错?正常条件下?边界条件下?人们在长期的测试工作经验得知:大量的错误都发生在输入或输出范围的边界上的,而不是在输入范围的内部因此,针对各种边界情况下设计测试用例,可以查出更多的错误,30,边界值分析法,边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界,31,怎样使用边界值设
10、计用例,怎样用边界值分析法设计测试用例首先确定边界情况,通常输入或输出等价类的边界就是应该着重测试的边界情况选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值,32,边界条件,常见的边界条件对16-bit 的整数而言 32767 和-32768 是边界屏幕上光标在最左上、最右下位置报表的第一行和最后一行数组元素的第一个和最后一个循环的第 0 次、第 1 次和倒数第 2 次、最后一次,33,次边界条件,普通边界条件是容易找到的,它在产品说明中有定义,或者在使用软件的过程中确定有些边界在软件内部,最终用户几乎看不到,但是软件测试仍有必要检查,这样的边界条件称为
11、次边界条件寻找次边界条件不要求测试人员需要有开发人员那样阅读代码的能力,但是要求了解软件的工作方式,34,次边界条件举例,软件中2的乘方在软件接受用户输入11000范围内的数字,合法区间包含1和1000,但是也要考虑2和999,另外0和1001属于无效等价类内容,也可以考虑,35,次边界值举例,ASCII表ASCII不是连续表,09后面的ASCII值时4857,斜杠字符在0的前面,而冒号在9的后面在测试文本输入或者文本转换时需要参考ASCII表,36,其他一些边界条件,另一种很明显的软件缺陷来源是当软件要求输入时,跟本没有输入任何内容就按了Enter,这种情况的处理经常被开发遗忘,但是在实际应
12、用中常常发生,37,边界值的选择原则,对边界值设计测试用例,应遵循以下原则:如果输入条件规定了值的范围,则应选取刚达到这个范围边界值以及刚超越这个边界值的值作为测试数据如果输入条件规定了值的个数,则选取比最大个数多1和比最小数少1作为测试数据根据规格说明的每个输出条件,使用前面两条原则如果程序的规格说明给出的输入、输出域是有序集合,则应选取集合的第一个元素和最后一个元素最为测试用例如果程序中使用了数据结构,则选取这个数据结构边界的值作为测试用例分析规格说明,找出其他的边界条件,38,边界值举例,语音合成系统语音音量调节-500=V=500边界值500、500、499、499个人所得税税率边界值
13、:1600、209921003599、3600,39,课堂练习:找零钱,假设商店货品价格皆不大于100 元(且为整数),若顾客付款在100 元内,求找给顾客的最少货币个(张)数?(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种),40,课堂练习:找零钱,分析输入情况商品价格(R):0100客户付款(P):R=P;P100,41,课堂练习:找零钱,分析输出情况N50=1N50=04 N10=1N10=0N5=1N5=04 N1=1N1=0,42,课堂练习:找零钱,设计输入输出组合,43,课堂练习:找零钱,根据输入输出组合设计用例,44,课程回顾,等价类划分方法以及应用边界值分析方法以及应用,45,提问时间,欢迎大家提问、讨论!,46,