软件测试基础---3场景法黑盒测试用例设计方法---2边界值目录场景法边界值错误推测法边界值分析法边界值分析法•边界值分析方法是对等价类划分方法的补充.1)边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.与等价划分的区别•边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。•边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。边界值分析法•通常情况下,软件测试所包含的边界检验有边界值分析法数字字符位置重量大小速度方位尺寸空间相应地,以上类型的边界值应该情况进行测试在:最大/最小首位/末位上/下最快/最慢最高/最低最长/最短空/满边界值分析法•1)如果输入条件规定的是一个取值区间或取值个数,且该区间包含边界本身,比如,一个输入文件应包括[1~255]个记录,则测试用例可取1和255,还应取0及256等。边界值分析法2)如果输入条件规定取值区间或取值个数,但是该区间不包含边界本身,比如,某学校的学生年龄为(17~24)岁,则测试用例可取17和24,还应取18及23等。边界值取值的个数最多只有4个,不会有超过4个数的情况;•运用边界值分析法设计测试用例的原则:1.若规定取值范围:取刚好达到范围的值,刚刚超过范围的值作为测试数据依据2.若规定取值的个数:取最大、最小、最大+1、最小-13.若输入域与输出域为有序的集合(如序表、顺序文件等):取集合第一个和最后一个元素作为测试用例边界值分析法•.常见的边界值•1)屏幕上光标在最左上、最右下位置•2)报表的第一行和最后一行•3)数组元素的第一个和最后一个•4)循环的第0次、第1次和倒数第2次、最后一次边界值分析法场景法场景法请在此处添加标题请在此处添加副标题场景法场景法场景法也叫流程分析法,是将软件系统的某个流程看成路径,用路径分析的方法来设计测试用例。根据流程的顺序依次进行组合,使得流程的各个分支都能走到。场景法现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。比较常见的有:网上购物流程,ATM机取款流程等基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,场景法应用场景法应用一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)1、一个业务只存在一个基本流;2、基本流只有一个起点,一个终点;3、基本流是主流,备选流是支流;4、备选流可以起始于基本流,也可以起始于其它备选流;5、备选流的终点可以是一个流程的出口,也可以是回到基本流,还可以是汇入其它的备选流;基本流和备选流的识别原则1)画出需要测试路径的流程图(一般选择工具OfficeVisio)2)分析基本流和备选流,生成不同的场景3)根据基本流和备选流设计测试用例4)对生成招兵买马有测试用例重新审查,去掉多余的测试用例,确定测试用例后,为每一个测试用例确定测试数据值。场景法设计测试用例步骤基本流程1、用户向ATM提款机中插入银行卡,如果银行卡是合法的,ATM提款机界面提示用户输入提款密码;2、用户输入该银行卡的密码,检验密码的正确性。如果输入密码正确,提示用户输入取钱金额,提示信息为,“请输入您的提款额度”;3、用户输入取钱金额,系统校验金额正确,提示用户确认,提示信息为“您输入的金额是xxx,请确认,谢谢!”,用户按下确认键,确认需要提取的金额;4、系统同步银行主机,点钞票,输出给用户,并且减掉数据库中该用户帐户中的存款金额。5、用户提款,银行卡自动退出,用户取走现金,拔出银行卡,ATM提款机界面恢复到初始状态;场景法例子—ATM机取款场景法例子—ATM机取款参数1银行密码参数类型字符串参数范围字符串为0~9之间的阿拉伯数字组合,密码长度为6位备注参数2取款金额参数类型整数参数范围100~3000RMB,单笔取款额最高为3000RMB;每24小时之内,取款的最高限额是20000RMB备注备选事件流(考虑可能失败的地方):在基本事件流1中:1)如果插入无效的银行卡,那么,在ATM提款机界面上提示用户“您使用的银行卡无效!”,3秒钟后,自动退出该银行卡。在基本事件流2中:1)如果用户输入的密码错误,则提示用户“您输入的密码无效,请重新输入”;2)如果用户连续3次输入错误密码,ATM提款机吞卡,并且ATM提款机的界面恢复到初始状态。此时,其他提款人可以继续使用其他的合法的银行卡在ATM提款机上提取现金。3)用户输入错误的密码后,也可以按“退出”键,则银行卡自动退出。场景法例子—ATM机取款在基本事件流3中:a)如果用户输入的单笔提款金额超过单笔提款上限,ATM提款机界面提示“您输入的金额错误,单笔提款上限金额是3000RMB,请重新输入”;b)如果用户输入的单笔金额,不是以100RMB为单位的,那么提示用户“您输入的提款金额错误,请输入以100为单位的金额”;c)如果用户在24小时内提取的金额大于20000RMB,则ATM提款机提示用户,“24小时内只能提取20000RMB,请重新输入提款金额”输入提取的金额超过了系统的设定的限制;d)如果用户输入正确的提款金额,ATM提款机提示用户确认后,用户取消提款,则ATM提款机自动退出该银行卡;e)如果ATM提款机中余额不足,则提示用户,“抱歉,ATM提款机中余额不足”,3秒钟后,自动退出银行卡。场景法例子—ATM机取款在基本事件流4中:a)如果用户银行户头中的存款小于提款金额,则提示用户“抱歉,您的存款余额不足!”,3秒钟后,自动退出银行卡;在基本事件流5中:a)如果用户没有取走现金,或者没有拔出银行卡,ATM提款机不做任何提示,直接恢复到界面的初始状态;场景法例子—ATM机取款场景法例子—ATM机取款场景法例子—ATM机取款数据设计一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据场景法例子—ATM机取款场景法例子—ATM机取款我们都在当当网或china-pub华章网上书店都订购过书籍,整个订购过程为:用户登录到网站后,进行书籍的选择,当选好自己心仪的书籍后进行订购,这时把所需图书放进购物车,等进行结帐的时候,用户需要登录自己注册的帐号,登录成功后,进行结帐并生成订单,整个购物过程结束。那么我们通过以上的描述,从中确定哪是基本流,哪些是备选流:场景法例子-在线购物系统场景法例子基本流用户登录到网站,书籍的选择,进行订购,把所需图书放进购物车,等进行结帐的时候,登录自己的帐号,登录成功后,生成订单备选流1帐号不存在备选流2帐号错误备选流3密码错误备选流4无选购书籍备选流x退出系统场景法例子根据基本流和备选流来确定场景:场景1-购物成功基本流场景2-帐号不存在基本流备选流1场景3-帐号错误基本流备选流2场景4-密码错误基本流备选流3场景5-无选购书籍基本流备选流4在下面的矩阵中,V(有效)用于表明这个条件必须是VALID(有效的)才可执行基本流,而I(无效)用于表明这种条件下将激活所需备选流。下表中使用的“n/a”(不适用)表明这个条件不适用于测试用例。场景法例子测试用例ID场景/条件帐号密码选购书籍预期结果1场景1:购物成功VVV成功购物2场景2:帐号不存在In/an/a提示帐号不存在3场景3:帐号错误IVn/a提示帐号错误,返回基本流步骤24场景4:密码错误VIn/a提示密码错误,返回基本流步骤35场景5:无选购书籍VVI提示选购书籍,返回基本流步骤5输入测试数据错误推测法错误推测法错误推测法是基于以往的经验和直觉,参照以往的软件系统出现的错误,推测程序中所有可能存在的各种缺陷和错误,从而有针对性的设计测试用例。错误推测法的基本思路:列举出程序中所有可能的错误和容易发生错误的特殊情况,根据可能出现的错误情况选择测试用例。如:1.单元测试中列出许多在模块中常见的错误、以前产品测试中曾经发现的错误等。2.输入数据为0或字符为空。3.各种情况在产品说明中常常被忽视,也可能被程序员遗忘,但是在实际使用中经常发生。测试人员要站在用户的角度,考虑他们要输入的信息,而不管这些信息看起来是否合法的输入还是非法的输入。错误推测法例如,测试手机终端的通话功能,可以设计各种通话失败的情况来补充测试用例:1)无SIM卡插入时进行呼出(非紧急呼叫)2)插入已欠费SIM卡进行呼出3)射频器件损坏或无信号区域插入有效SIM卡呼出4)网络正常,插入有效SIM卡,呼出无效号码(如1、888、333333、不输入任何号码等)5)网络正常,插入有效SIM卡,使用“快速拨号”功能呼出设置无效号码的数字测试方法选择策略1.首先进行等价类划分,包括输入条件和输出条件的等价类划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法。2.在任何情况下都必须使用边界值分析方法。经验表明,用这种方法设计出的测试用例发现程序错误的能力最强。3.可以用错误推测法追加一些测试用例,这需要依靠测试工程师的智慧和经验。4.对于业务清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。因果图判定表因果图法回顾前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。因果图考虑输入条件之间的相互组合,可能会产生一些新的情况.但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多.因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。因果图介绍4种符号分别表示了规格说明中向4种因果关系。因果图介绍因果图中使用了简单的逻辑符号,以直线联接左右结点。表示(或称原因),表示(或称结果)。表示,通常置于图的左部;表示,通常在图的右部。ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。因果图概念关系1.恒等2.非3.或4.与若ci是1,则ei也是1;否则ei为0。若ci是1,则ei是0;否则ei是1。若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。因果图概念约束输入状态相互之间还可能存在某些依赖关系,称为约束。例如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。因果图概念因果图概念输入条件的约束有以下4类:①:a和b中至多有一个可能为1,即a和b不能同时为1。②:a、b和c中至少有一个必须是1,即a、b和c不能同时为0。③;a和b必须有一个,且仅有1个为1。④:a是1时,b必须是1,即不可能a是1时b是0。输出条件约束类型输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。因果图方法因果图方法最终生成的是。它适合于检查程序输入条件的各种组合情况。利用因果图生成测试用例的基本步骤:(1)分析软件规格说明描述中,那些是(即输入条件或输入条件的等价类),那些是(即输出条件),并给每个原因和结果赋予一个标识符。(2)分析软件规