版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章、软件测试技术环境被测对象人员素质被测对象模型测试执行正确?环境模型错误模型
软件测试过程所涉及的要素,以及
这些要素之间的关系
正确1)测试过程模型
怨睁玛彤卸甜镜悸鸵滁孺召川打襟峙峨绿姻舰补真俺置科恨彪掳搅吓黍续北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术第六章、软件测试12)依据程序逻辑结构-白盒测试技术
(1)关于建立被测对象模型控制流程图:结点/分支/过程块/链路径1236457X>5andY<3其中:节点1、节点3、节点5、节点6、节点7为过程块节点2为分支,节点4为结点豪俗务蔑抚粤铣洒寸明山久蓟笛带匠垄逻呐扔匀蔓蝇经婉圾眶畸纸何听毯北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术2)依据程序逻辑结构-白盒测试技术1236457X>5an2例如:以下为一个程序流程图,其中该例子中有两个判断,每个判断都包含复合条件的逻辑表达式。
(A1)(B=0)(A=2)(X1)X=X/AX=X+1abcdeFTTF弯娱网厘跌暗遗么浴喂是现萄说惮续滩拱官理略咸舀醋笑沏杆染钥驳共龋北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术例如:以下为一个程序流程图,其中该例子中有两个判断,(A13其控制流程图为:(A1)(B=0)X=X/A(A=2)
(X1)
X=X+1TTacbde结点1结点2穿倪犊志塞蝎衫梯阔咖奴谈趋乎懦呛砧疥剖料彻锤上俗惹鞋弦摸抗扯钵吻北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术其控制流程图为:TTacbde穿倪犊志塞蝎衫梯阔咖奴谈趋乎懦4(2)“完整测试”策略该控制流程图有4条不同的路径。4条路径可表示为:L1(a→c→e)简写ace、L2(a→b→d)简写abdL3(a→b→e)简写abe、L4(a→c→d)简写acd
路径测试(PX):执行所有可能的穿过程序的控制流程路径。一般来说,这一测试严格地限制为所有可能的入口/出口路径。如果遵循这一规定,则我们说达到了100%路径覆盖率。在路径测试中,该策略是最强的,但一般是不可实现的。针对该例子,要想实现路径覆盖,可选择以下一组测试用例(规定测试用例的设计格式为:【输入的(A,B,X),输出的(A,B,X)】)。测试用例 覆盖路径 【(2,0,4),(2,0,3)】L1【(1,1,1),(1,1,1)】L2【(1,1,2),(1,1,3)】L3【(3,0,3),(3,0,1)】L4 坑夫左阐缩谆疤权灌画克们宦谰境痢免耀碱氢金留挪昨省芭陷兵查禽蔫认北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术(2)“完整测试”策略坑夫左阐缩谆疤权灌画克们宦谰境痢免耀碱5
语句测试(P1):至少执行程序中所有语句一次。如果遵循这一规定,则我们说达到了100%语句覆盖率(用C1表达)。在该例子中,只要设计一种能通过路径ace的测试用例,就覆盖了所有的语句。所以可选择测试用例如下:【(2,0,4),(2,0,3)】覆盖L1语句覆盖是最弱的逻辑覆盖准则。
问题:就该程序而言,如果两个判断的逻辑运算写错,例如,第一个判断中的逻辑运算符“∧”错写成了“∨”,或者第二个判断中的逻辑运算符“∨”错写成了“∧”,利用上面的测试用例,仍可覆盖所有4个可执行路径,而发现不了判断中逻辑运算符出现的错误。
慢芯窍纹匙嫌柏要鞠柿伐葛戍苍郭坟国猎具集官淮椅蕴游海澈既嘻奢恋动北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术慢芯窍纹匙嫌柏要鞠柿伐葛戍苍郭坟国猎具集官淮椅蕴游海澈既嘻奢6
分支测试(P2):至少执行程序中每一分支一次。如果遵循这一规定,则我们说达到了100%分支覆盖率(用C2表示)。分支覆盖是一种比语句覆盖稍强的逻辑覆盖。但若程序中分支的判定是由几个条件联合构成时,它未必能发现每个条件的错误。例如对于以上例子,如果选择路径L1和L2,就可得到实现分支覆盖的测试用例:【(2,0,4),(2,0,3)】覆盖L1【(1,1,1),(1,1,1)】覆盖L2如果选择路径L3和L4,还可得另一组可用的测试用例:【(2,1,1),(2,1,2)】覆盖L3【(3,0,3),(3,1,1)】覆盖L4
问题:分支覆盖还不能保证一定能查出在判断的条件中存在的错误。例如,在该例子中,若第二个分支X>1错写成X<1,利用上述两组测试用例进行测试,无法查出这一错误。因此,需要更强的逻辑覆盖准则去检验判定的内部条件。莱姬毒豌缎簇微妆必设十名伞锨班蹋廉限凤甲沃邑朵淑痔锐破霉塘蜡趴讼北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术分支测试(P2):至少执行程序中每一分支一次。如果莱姬7
条件组合测试条件组合测试是一种具有更强逻辑覆盖的测试。条件组合测试,就是设计足够的测试用例,使每个判定中的所有可能的条件取值组合至少执行一次。如果遵循这一规定,则我们说就实现了条件组合覆盖。只要满足了条件组合覆盖,就一定满足分支覆盖。在条件组合覆盖技术发展过程中,最初,在设计测试用例时,人们只考虑使分支中各个条件的所有可能结果至少出现一次。但发现该测试技术未必能覆盖全部分支。例如,在上图的例子中,程序段中有四个条件:A>1,B=0,A=2,X>1。条件A>1取真值标记为T1,取假值标记为F1条件B=0取真值标记为T2,取假值标记为F2条件A=2取真值标记为T3,取假值标记为F3条件X>1取真值标记为T4,取假值标记为F4在设计测试用例时,要考虑如何选择测试用例实现T1、F1、T2、F2、T3、F3、T4、F4的全部覆盖:
楔第噶俺户矮祸哮饯猎拆陇视诊蜡鄙勇烯痞跑虑葡棵阻葡邢迎龙全蔗腊檄北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术条件组合测试楔第噶俺户矮祸哮饯猎拆陇视诊蜡鄙勇烯痞跑虑8例如,可设计如下测试用例实现条件覆盖:
测试用例通过路径条件取值覆盖分支【(1,0,3),(1,0,4)】L3F1T2F3T4b,e【(2,1,1),(2,1,2)】L3T1F2T3F4b,e从上面的测试用例,可以看到该组测试用例虽然实现了判定中各条件的覆盖,但没有实现分支覆盖,因为该组测试用例只覆盖了第一个判断的取假分支和第二个判断的取真分支。为此,人们又进一步提出了条件组合覆盖技术。例如,在该例子中,前一个判定有4中条件组合:(1)(A>1),(B=0),标记为T1、T2;(2)(A>1),(B≠0),标记为T1、F2,;(3)(A≤1),(B=0),标记为F1、T2;(4)(A≤1),(B≠0),标记为F1、F2;后一个判定又有4中条件组合:(5)(A=2),(X>1),标记为T3、T4;(6)(A=2),(X≤1),标记为T3、F4;(7)(A≠2),(X>1),标记为F3、T4;(8)(A≠2),(X≤1),标记为F3、F4。白棍粹净撵侈畸山骗瑚皆沛燥盟答辜仁马单蓑狄专标兽螺春域贤蔽盎个忿北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术例如,可设计如下测试用例实现条件覆盖:白棍粹净撵侈畸9因此,要满足条件组合覆盖,设计的测试用例必须满足以下16种条件组合:
(1)(A>1),(B=0),(A=2),(X>1),可标记为T1、T2、T3、T4;(1)(A>1),(B=0),(A=2),(X≤1),可标记为T1、T2、T3、F4;(1)(A>1),(B=0),(A≠2),(X>1),可标记为T1、T2、F3、T4(1)(A>1),(B=0),(A≠2),(X≤1),可标记为T1、T2、F3、F4。(2)(A>1),(B≠0),(A=2),(X>1),可标记为T1、F2,T3、T4;(2)(A>1),(B≠0),(A=2),(X≤1),可标记为T1、F2、T3、F4;(2)(A>1),(B≠0),(A≠2),(X>1),可标记为T1、F2、F3、T4;(2)(A>1),(B≠0),(A≠2),(X≤1),可标记为T1、F2、F3、F4。(3)(A≤1),(B=0),(A=2),(X>1),可标记为F1、T2、T3、T4;(3)(A≤1),(B=0),(A=2),(X≤1),可标记为F1、T2、T3、F4;(3)(A≤1),(B=0),(A≠2),(X>1),可标记为F1、T2、F3、T4;(3)(A≤1),(B=0),(A≠2),(X≤1),可标记为F1、T2、F3、F4。(4)(A≤1),(B≠0),(A=2),(X>1),可标记为F1、F2、T3、T4;(4)(A≤1),(B≠0),(A=2),(X≤1),可标记为F1、F2、T3、F4;(4)(A≤1),(B≠0),(A≠2),(X>1),可标记为F1、F2、F3、T4;(4)(A≤1),(B≠0),(A≠2),(X≤1),可标记为F1、F2、F3、F4。请憋妙缎燎享铺坍额资望犁伞屋逼傻嚼酶惋遁泌形除宰向蹬珍折考肺惨楼北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术因此,要满足条件组合覆盖,设计的测试用例必须满足请憋10可以采用以下四组测试数据,从而实现条件组合覆盖。
测试用例 覆盖条件覆盖组合号通过路径 【(2,0,4),(2,0,3)】T1T2T3T41、5L1【(2,1,1),(2,1,2)】T1F2T3F42、6L3【(1,0,3),(1,0,4)】F1T2F3T43、7L3【(1,1,1),(1,1,1)】F1F2F3F44、8 L2【(3,0,3),(3,0,1)】T1T2F3F41、8L4
这组测试用例实现了分支覆盖,也实现了条件的所有可能取值的组合的覆盖。巫露炙靠世转调蔬吵也汗卉荔姨枢躯堕滔尼壤马特皖猛妊礼屎闲活些区漱北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术可以采用以下四组测试数据,从而实现条件组合覆盖。巫露炙靠世转11(3)循环情况的路径选取
一层二层级连循环嵌套循环还要考虑循环变量的具体情况关键路径的选取
主要功能路径没有功能的路径最短路径...廷置繁灯茄烫赔幼颗循烘霍状糕乙陀靛唁椰皇俊化凭重辗檀秤挞抬军炙纽北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术廷置繁灯茄烫赔幼颗循烘霍状糕乙陀靛唁椰皇俊化凭重辗檀秤挞抬军123)功能测试-基于规格说明的测试3.1事务流测试技术(1)基本概念:
事务:以用户的角度所见的一个工作单元。一个事务由一系列操作组成。其中某些操作可含有系统执行成分,或含有设备执行成分。
事务处理流程(图):系统行为的一种表示方法,为功能测试建立了软件动作模式。其中使用了白盒测试中的一些概念,例如:分支,结点,链等。1236457尾柬冶坦雌魏庐洁黑污杏邻邦阻谓瞒碌棵篆顽攀瘁纤谱外搪琐苟豌校扶撵北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术3)功能测试-基于规格说明的测试1236457尾柬冶坦雌魏13123111AA:Path1继续A:Path2继续AA继续BABCA:Path1A:Path2A:继续ABABAC测试设备:路径分析器,测试用例数据库,测试执行调度器,路径敏化问题...(2)与程序控制流程图的比较:事务流图是一种数据流图,即从操作应用的历史,观察数据对象。事务流图中的判定;“抽象”了一个复杂的过程。事务流图存在“中断”,把一个过程等价地变换为具有繁多出口的链支。并生丝分裂吸收结合诊蟹晰爽印衬羚颜喝拨谦拐庄苫解芹占矽煽嘘柏箩旭晓痈舞宜割欠官狡喜北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术123111AA:Path1继续A:Path2继续AA继续B14(3)测试步骤第一步:获取事务流程图,即建立被测对象模型;第二步:浏览与复审主要对事务进行分类,为设计用例奠定基础;第三步:用例设计涉及:覆盖策略,事务选取,路径敏化等;第四步:测试设备开发:路径分析器,测试用例数据库,测试执行调度器,...第五步:测试执行;第六步:测试结果比较。镣炉罪扎然猖稍铜枯括枕挝缠角驳纶匣豪寇座届吨慷伐毛贯奏观厅肠判优北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术(3)测试步骤镣炉罪扎然猖稍铜枯括枕挝缠角驳纶匣豪寇座届吨慷153.2等价类划分技术
(1)基本概念
等价类:输入域的一个子集,在该子集中,各个输入数据对于揭示程序中的错误都是等效的。即:以等价类中的某代表值进行的测试,等价于对该类中其他取值的测试。有效等价类:指那些对于软件的规格说明书而言,是合理的、有意义的输入数据所构成的集合。
-用于实现功能和性能的测试。无效等价类:指那些对于软件的规格说明书而言,是不合理的、无意义的输入数据所构成的集合。
-用于测试那些所实现的功能和性能不符合规格说明书的要求。惺访记玩汕铜食筹谓喳族权避缮迄嘛臻晰表通课必撰盅痈欢趋捆勋竭辖封北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术3.2等价类划分技术惺访记玩汕铜食筹谓喳族权避缮迄嘛臻晰16(2)等价类划分原则(指南)
如果输入条件规定了输入数据的取值范围或值的个数,则可以确定一个有效等价类和二个无效等价类。例如:输入条件:“...项数可以是1到999…”无效等价类有效等价类无效等价类1999如果输入条件规定了输入值的集合,或规定了“必须如何”的条件,则可以确定一个有效等价类和一个无效等价类。例如:“标识符是一字母打头的…串。”则字母打头的--为一个有效等价类,而其余的--为一个无效等价类挣阁镰销骑窍蹋戴诗沤啥埂锯跌篓户涣骚冤茬铝淑仅届叭斑昔层蚀逆膀梦北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术无效等价类有效等价类无效等价类1999如果输入条件规定了17如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。如果输入条件规定了输入数据的一组值,而且软件要对每个输入值进行处理,则可以为每一个输入值确定一个有效等价类,为所有不允许的输入值确定一个无效等价类。如果输入条件规定了输入数据必须遵循的规则,则可以确定一个有效等价类(符合规则),和若干个无效等价类。例如:“语句必须以;号结束”注意:如果在已确定的等价类中各元素在软件中的处理方式不同,则应根据需要对等价类进一步进行划分。判纺郡白标医菩侍究驭槽记基棱强巫也凤铁咙郎升辩动钮苦杖厉戈呈染奏北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术如果输入条件是一个布尔量,则可以确定一个有效等价判纺郡白18(3)测试用例设计在确定了等价类之后,建立等价类表:--------------------------------------------------------------------------输入条件有效等价类无效等价类----------------------------------------------------------------------------………………………………(4)实例研究某一8位计算机,其十六进制常数的定义为:以0x或0X开头的数是十六进制整数,其值的范围是-7f至7f(大小写字母不加区别),如0x13,0X6A,-0x3c焙撩碱吻扎奢拙坑瞎兑支墒匣慎引惊瘤砧缄唁畸晓翔泽涝事短嘻升牵凤碰北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术(3)测试用例设计焙撩碱吻扎奢拙坑瞎兑支墒匣慎引惊瘤砧缄唁19第一步:建立等价类表---------------------------------------------------------------------------------------输入条件有效等价类无效等价类---------------------------------------------------------------------------------------
十六进制整数1、0x或0X开头4、非0x或非-开头的串1-2位数字串5、含有非数字且(a,b,c,d,e,f)以外字符6、多于5个字符2、以-0x开头的7、-后跟非0的多位串1-2位数字串8、-0后跟数字串9、-后多于3个数字3、在-7f至7f之间10、小于-7f11、大于7f窃俯扣浮朗过卉剩捐目健整饵道奉奶莉蓝棚藐睫浙归漱贾噬嫉琴枪涨皿匈北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术窃俯扣浮朗过卉剩捐目健整饵道奉奶莉蓝棚藐睫浙归漱贾噬嫉琴枪涨20第二步:为有效等价类设计测试用例测试用例期望结果覆盖范围0x23显示有效输入1,3-0x15显示有效输入2,3第三步:为无效等价类至少设计一个测试用例测试用例期望结果覆盖范围2显示无效输入4G12显示无效输入5123311显示无效输入6-1012显示无效输入7-011显示无效输入8-0134显示无效输入9-0x777显示无效输入100x87显示无效输入11躁粕故靡哄纵卜湍辑败订党混苫莹凰依纤阜误钞敦滚怕耪趁冶令擅渡写刹北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术躁粕故靡哄纵卜湍辑败订党混苫莹凰依纤阜误钞敦滚怕耪趁冶令擅渡213.3软件测试步骤(1)单元测试(2)集成测试集成测试是一种软件集成化技术方式:自顶向下或自底向上设计测试设备驱动模块承接模型(3)有效性测试
被测模块驱动模块承接模块承接模块-代替原来的被控模块-代替原来的控制模块烈绣禄定井拧照置缓屠左青欲叙晨搀狞躲畴愿竣揍缮莹狸队录感债严驴驻北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术3.3软件测试步骤被测模块驱动模块承接模块承接模块-代替原22第六章、软件测试技术环境被测对象人员素质被测对象模型测试执行正确?环境模型错误模型
软件测试过程所涉及的要素,以及
这些要素之间的关系
正确1)测试过程模型
怨睁玛彤卸甜镜悸鸵滁孺召川打襟峙峨绿姻舰补真俺置科恨彪掳搅吓黍续北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术第六章、软件测试232)依据程序逻辑结构-白盒测试技术
(1)关于建立被测对象模型控制流程图:结点/分支/过程块/链路径1236457X>5andY<3其中:节点1、节点3、节点5、节点6、节点7为过程块节点2为分支,节点4为结点豪俗务蔑抚粤铣洒寸明山久蓟笛带匠垄逻呐扔匀蔓蝇经婉圾眶畸纸何听毯北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术2)依据程序逻辑结构-白盒测试技术1236457X>5an24例如:以下为一个程序流程图,其中该例子中有两个判断,每个判断都包含复合条件的逻辑表达式。
(A1)(B=0)(A=2)(X1)X=X/AX=X+1abcdeFTTF弯娱网厘跌暗遗么浴喂是现萄说惮续滩拱官理略咸舀醋笑沏杆染钥驳共龋北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术例如:以下为一个程序流程图,其中该例子中有两个判断,(A125其控制流程图为:(A1)(B=0)X=X/A(A=2)
(X1)
X=X+1TTacbde结点1结点2穿倪犊志塞蝎衫梯阔咖奴谈趋乎懦呛砧疥剖料彻锤上俗惹鞋弦摸抗扯钵吻北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术其控制流程图为:TTacbde穿倪犊志塞蝎衫梯阔咖奴谈趋乎懦26(2)“完整测试”策略该控制流程图有4条不同的路径。4条路径可表示为:L1(a→c→e)简写ace、L2(a→b→d)简写abdL3(a→b→e)简写abe、L4(a→c→d)简写acd
路径测试(PX):执行所有可能的穿过程序的控制流程路径。一般来说,这一测试严格地限制为所有可能的入口/出口路径。如果遵循这一规定,则我们说达到了100%路径覆盖率。在路径测试中,该策略是最强的,但一般是不可实现的。针对该例子,要想实现路径覆盖,可选择以下一组测试用例(规定测试用例的设计格式为:【输入的(A,B,X),输出的(A,B,X)】)。测试用例 覆盖路径 【(2,0,4),(2,0,3)】L1【(1,1,1),(1,1,1)】L2【(1,1,2),(1,1,3)】L3【(3,0,3),(3,0,1)】L4 坑夫左阐缩谆疤权灌画克们宦谰境痢免耀碱氢金留挪昨省芭陷兵查禽蔫认北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术(2)“完整测试”策略坑夫左阐缩谆疤权灌画克们宦谰境痢免耀碱27
语句测试(P1):至少执行程序中所有语句一次。如果遵循这一规定,则我们说达到了100%语句覆盖率(用C1表达)。在该例子中,只要设计一种能通过路径ace的测试用例,就覆盖了所有的语句。所以可选择测试用例如下:【(2,0,4),(2,0,3)】覆盖L1语句覆盖是最弱的逻辑覆盖准则。
问题:就该程序而言,如果两个判断的逻辑运算写错,例如,第一个判断中的逻辑运算符“∧”错写成了“∨”,或者第二个判断中的逻辑运算符“∨”错写成了“∧”,利用上面的测试用例,仍可覆盖所有4个可执行路径,而发现不了判断中逻辑运算符出现的错误。
慢芯窍纹匙嫌柏要鞠柿伐葛戍苍郭坟国猎具集官淮椅蕴游海澈既嘻奢恋动北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术慢芯窍纹匙嫌柏要鞠柿伐葛戍苍郭坟国猎具集官淮椅蕴游海澈既嘻奢28
分支测试(P2):至少执行程序中每一分支一次。如果遵循这一规定,则我们说达到了100%分支覆盖率(用C2表示)。分支覆盖是一种比语句覆盖稍强的逻辑覆盖。但若程序中分支的判定是由几个条件联合构成时,它未必能发现每个条件的错误。例如对于以上例子,如果选择路径L1和L2,就可得到实现分支覆盖的测试用例:【(2,0,4),(2,0,3)】覆盖L1【(1,1,1),(1,1,1)】覆盖L2如果选择路径L3和L4,还可得另一组可用的测试用例:【(2,1,1),(2,1,2)】覆盖L3【(3,0,3),(3,1,1)】覆盖L4
问题:分支覆盖还不能保证一定能查出在判断的条件中存在的错误。例如,在该例子中,若第二个分支X>1错写成X<1,利用上述两组测试用例进行测试,无法查出这一错误。因此,需要更强的逻辑覆盖准则去检验判定的内部条件。莱姬毒豌缎簇微妆必设十名伞锨班蹋廉限凤甲沃邑朵淑痔锐破霉塘蜡趴讼北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术分支测试(P2):至少执行程序中每一分支一次。如果莱姬29
条件组合测试条件组合测试是一种具有更强逻辑覆盖的测试。条件组合测试,就是设计足够的测试用例,使每个判定中的所有可能的条件取值组合至少执行一次。如果遵循这一规定,则我们说就实现了条件组合覆盖。只要满足了条件组合覆盖,就一定满足分支覆盖。在条件组合覆盖技术发展过程中,最初,在设计测试用例时,人们只考虑使分支中各个条件的所有可能结果至少出现一次。但发现该测试技术未必能覆盖全部分支。例如,在上图的例子中,程序段中有四个条件:A>1,B=0,A=2,X>1。条件A>1取真值标记为T1,取假值标记为F1条件B=0取真值标记为T2,取假值标记为F2条件A=2取真值标记为T3,取假值标记为F3条件X>1取真值标记为T4,取假值标记为F4在设计测试用例时,要考虑如何选择测试用例实现T1、F1、T2、F2、T3、F3、T4、F4的全部覆盖:
楔第噶俺户矮祸哮饯猎拆陇视诊蜡鄙勇烯痞跑虑葡棵阻葡邢迎龙全蔗腊檄北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术条件组合测试楔第噶俺户矮祸哮饯猎拆陇视诊蜡鄙勇烯痞跑虑30例如,可设计如下测试用例实现条件覆盖:
测试用例通过路径条件取值覆盖分支【(1,0,3),(1,0,4)】L3F1T2F3T4b,e【(2,1,1),(2,1,2)】L3T1F2T3F4b,e从上面的测试用例,可以看到该组测试用例虽然实现了判定中各条件的覆盖,但没有实现分支覆盖,因为该组测试用例只覆盖了第一个判断的取假分支和第二个判断的取真分支。为此,人们又进一步提出了条件组合覆盖技术。例如,在该例子中,前一个判定有4中条件组合:(1)(A>1),(B=0),标记为T1、T2;(2)(A>1),(B≠0),标记为T1、F2,;(3)(A≤1),(B=0),标记为F1、T2;(4)(A≤1),(B≠0),标记为F1、F2;后一个判定又有4中条件组合:(5)(A=2),(X>1),标记为T3、T4;(6)(A=2),(X≤1),标记为T3、F4;(7)(A≠2),(X>1),标记为F3、T4;(8)(A≠2),(X≤1),标记为F3、F4。白棍粹净撵侈畸山骗瑚皆沛燥盟答辜仁马单蓑狄专标兽螺春域贤蔽盎个忿北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术例如,可设计如下测试用例实现条件覆盖:白棍粹净撵侈畸31因此,要满足条件组合覆盖,设计的测试用例必须满足以下16种条件组合:
(1)(A>1),(B=0),(A=2),(X>1),可标记为T1、T2、T3、T4;(1)(A>1),(B=0),(A=2),(X≤1),可标记为T1、T2、T3、F4;(1)(A>1),(B=0),(A≠2),(X>1),可标记为T1、T2、F3、T4(1)(A>1),(B=0),(A≠2),(X≤1),可标记为T1、T2、F3、F4。(2)(A>1),(B≠0),(A=2),(X>1),可标记为T1、F2,T3、T4;(2)(A>1),(B≠0),(A=2),(X≤1),可标记为T1、F2、T3、F4;(2)(A>1),(B≠0),(A≠2),(X>1),可标记为T1、F2、F3、T4;(2)(A>1),(B≠0),(A≠2),(X≤1),可标记为T1、F2、F3、F4。(3)(A≤1),(B=0),(A=2),(X>1),可标记为F1、T2、T3、T4;(3)(A≤1),(B=0),(A=2),(X≤1),可标记为F1、T2、T3、F4;(3)(A≤1),(B=0),(A≠2),(X>1),可标记为F1、T2、F3、T4;(3)(A≤1),(B=0),(A≠2),(X≤1),可标记为F1、T2、F3、F4。(4)(A≤1),(B≠0),(A=2),(X>1),可标记为F1、F2、T3、T4;(4)(A≤1),(B≠0),(A=2),(X≤1),可标记为F1、F2、T3、F4;(4)(A≤1),(B≠0),(A≠2),(X>1),可标记为F1、F2、F3、T4;(4)(A≤1),(B≠0),(A≠2),(X≤1),可标记为F1、F2、F3、F4。请憋妙缎燎享铺坍额资望犁伞屋逼傻嚼酶惋遁泌形除宰向蹬珍折考肺惨楼北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术因此,要满足条件组合覆盖,设计的测试用例必须满足请憋32可以采用以下四组测试数据,从而实现条件组合覆盖。
测试用例 覆盖条件覆盖组合号通过路径 【(2,0,4),(2,0,3)】T1T2T3T41、5L1【(2,1,1),(2,1,2)】T1F2T3F42、6L3【(1,0,3),(1,0,4)】F1T2F3T43、7L3【(1,1,1),(1,1,1)】F1F2F3F44、8 L2【(3,0,3),(3,0,1)】T1T2F3F41、8L4
这组测试用例实现了分支覆盖,也实现了条件的所有可能取值的组合的覆盖。巫露炙靠世转调蔬吵也汗卉荔姨枢躯堕滔尼壤马特皖猛妊礼屎闲活些区漱北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术可以采用以下四组测试数据,从而实现条件组合覆盖。巫露炙靠世转33(3)循环情况的路径选取
一层二层级连循环嵌套循环还要考虑循环变量的具体情况关键路径的选取
主要功能路径没有功能的路径最短路径...廷置繁灯茄烫赔幼颗循烘霍状糕乙陀靛唁椰皇俊化凭重辗檀秤挞抬军炙纽北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术廷置繁灯茄烫赔幼颗循烘霍状糕乙陀靛唁椰皇俊化凭重辗檀秤挞抬军343)功能测试-基于规格说明的测试3.1事务流测试技术(1)基本概念:
事务:以用户的角度所见的一个工作单元。一个事务由一系列操作组成。其中某些操作可含有系统执行成分,或含有设备执行成分。
事务处理流程(图):系统行为的一种表示方法,为功能测试建立了软件动作模式。其中使用了白盒测试中的一些概念,例如:分支,结点,链等。1236457尾柬冶坦雌魏庐洁黑污杏邻邦阻谓瞒碌棵篆顽攀瘁纤谱外搪琐苟豌校扶撵北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术3)功能测试-基于规格说明的测试1236457尾柬冶坦雌魏35123111AA:Path1继续A:Path2继续AA继续BABCA:Path1A:Path2A:继续ABABAC测试设备:路径分析器,测试用例数据库,测试执行调度器,路径敏化问题...(2)与程序控制流程图的比较:事务流图是一种数据流图,即从操作应用的历史,观察数据对象。事务流图中的判定;“抽象”了一个复杂的过程。事务流图存在“中断”,把一个过程等价地变换为具有繁多出口的链支。并生丝分裂吸收结合诊蟹晰爽印衬羚颜喝拨谦拐庄苫解芹占矽煽嘘柏箩旭晓痈舞宜割欠官狡喜北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术123111AA:Path1继续A:Path2继续AA继续B36(3)测试步骤第一步:获取事务流程图,即建立被测对象模型;第二步:浏览与复审主要对事务进行分类,为设计用例奠定基础;第三步:用例设计涉及:覆盖策略,事务选取,路径敏化等;第四步:测试设备开发:路径分析器,测试用例数据库,测试执行调度器,...第五步:测试执行;第六步:测试结果比较。镣炉罪扎然猖稍铜枯括枕挝缠角驳纶匣豪寇座届吨慷伐毛贯奏观厅肠判优北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术(3)测试步骤镣炉罪扎然猖稍铜枯括枕挝缠角驳纶匣豪寇座届吨慷373.2等价类划分技术
(1)基本概念
等价类:输入域的一个子集,在该子集中,各个输入数据对于揭示程序中的错误都是等效的。即:以等价类中的某代表值进行的测试,等价于对该类中其他取值的测试。有效等价类:指那些对于软件的规格说明书而言,是合理的、有意义的输入数据所构成的集合。
-用于实现功能和性能的测试。无效等价类:指那些对于软件的规格说明书而言,是不合理的、无意义的输入数据所构成的集合。
-用于测试那些所实现的功能和性能不符合规格说明书的要求。惺访记玩汕铜食筹谓喳族权避缮迄嘛臻晰表通课必撰盅痈欢趋捆勋竭辖封北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术3.2等价类划分技术惺访记玩汕铜食筹谓喳族权避缮迄嘛臻晰38(2)等价类划分原则(指南)
如果输入条件规定了输入数据的取值范围或值的个数,则可以确定一个有效等价类和二个无效等价类。例如:输入条件:“...项数可以是1到999…”无效等价类有效等价类无效等价类1999如果输入条件规定了输入值的集合,或规定了“必须如何”的条件,则可以确定一个有效等价类和一个无效等价类。例如:“标识符是一字母打头的…串。”则字母打头的--为一个有效等价类,而其余的--为一个无效等价类挣阁镰销骑窍蹋戴诗沤啥埂锯跌篓户涣骚冤茬铝淑仅届叭斑昔层蚀逆膀梦北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术无效等价类有效等价类无效等价类1999如果输入条件规定了39如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。如果输入条件规定了输入数据的一组值,而且软件要对每个输入值进行处理,则可以为每一个输入值确定一个有效等价类,为所有不允许的输入值确定一个无效等价类。如果输入条件规定了输入数据必须遵循的规则,则可以确定一个有效等价类(符合规则),和若干个无效等价类。例如:“语句必须以;号结束”注意:如果在已确定的等价类中各元素在软件中的处理方式不同,则应根据需要对等价类进一步进行划分。判纺郡白标医菩侍究驭槽记基棱强巫也凤铁咙郎升辩动钮苦杖厉戈呈染奏北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术如果输入条件是一个布尔量,则可以确定一个有效等价判纺郡白40(3)测试用例设计在确定了等价类之后,建立等价类表:--------------------------------------------------------------------------输入条件有效等价类无效等价类----------------------------------------------------------------------------………………………………(4)实例研究某一8位计算机,其十六进制常数的定义为:以0x或0X开头的数是十六进制整数,其值的范围是-7f至7f(大小写字母不加区别),如0x13,0X6A,-0x3c焙撩碱吻扎奢拙坑瞎兑支墒匣慎引惊瘤砧缄唁畸晓翔泽涝事短嘻升牵凤碰北京大学工程硕士软件工程教材第六章软件测试技术北京大学工程硕士软件工程教材第六章软件测试技术(3)测试用例设计焙撩碱吻扎奢拙坑瞎兑支墒匣慎引惊瘤砧缄唁41第一步:建立等价类表---------------------------------------------------------------------------------------输入条件有效等价类无效等价类---------------------
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美容院下午茶体验活动方案
- 2024至2030年中国纹化面料数据监测研究报告
- 读书故事会活动方案
- 2024至2030年中国淄砚行业投资前景及策略咨询研究报告
- 2024至2030年中国全自动春卷皮成型机行业投资前景及策略咨询研究报告
- 2024至2030年中国不锈钢幕墙限位窗撑窄滑轨数据监测研究报告
- 2024至2030年超小型全隔离电源项目投资价值分析报告
- 2024至2030年空调压缩机用热保护器项目投资价值分析报告
- 2024至2030年条式双层工作台项目投资价值分析报告
- 2024至2030年七彩水饺项目投资价值分析报告
- 2023年黑龙江省哈尔滨市纪监委遴选面试题及参考答案
- 海康威视DSK1T系列接锁电源操作手册
- 围产期母婴感染B族链球菌的防治及专家共识防治指南PPT课件院内培训
- 铁路基础知识考试题库500题(单选、多选、判断)
- 多媒体会议室维护维保方案书
- 【失败案例】“疯太阳”郑州亚细亚集团的陨落亚细亚(战略和体制)
- 大学化学-物质结构基础
- 医院印章使用申请表
- 摩托车有限公司产品零部件编码原则与国内车型代码资料汇编
- WINCC满足FDA规范配置说明分解
- 煤场机械车辆操作规程
评论
0/150
提交评论