- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章白盒测试用例3其他方法
软件测试 第4章 白盒测试方法 ——其他方法 目 录 引例 有如下代码(C语言): For (i=0;inum;i++){? ? while (j0)? ? {? ?? ???j--;? ? }}该循环的测试用例设计思路是怎样的? 循环测试 循环分为4种不同类型: 简单循环 嵌套循环 连锁循环(串接循环) 非结构循环(不规则循环) 循环测试 (1) 简单循环测试 ① 零次循环:从循环入口到出口 ② 一次循环:检查循环初始值 ③ 二次循环:两次通过循环 ④ m次循环: 检查多次循环 ⑤ 最大次数循环n、比最大次数多一次n+1、少一次的循环n-1。 循环测试 测试用例选择 循环测试 (2) 嵌套循环测试 ① 对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值; ② 逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环的循环变量取“典型”值。 循环测试 ③ 反复进行,直到所有各层循环测试完毕。 ④ 对全部各层循环同时取最小循环次数,或者同时取最大循环次数 循环测试 回到引例 有如下代码(C语言):for(i=0;inum;i++){? ? while (j0)? ? {? ?? ???j--;? ? }}应用嵌套循环的测试思路,应该怎么设计测试用例呢? 循环测试 (3) 连锁循环如果各个循环互相独立,则可以用与简单循环相同的方法进行测试。但如果几个循环不是互相独立的,则需要使用测试嵌套循环的办法来处理。 (4) 非结构循环这一类循环应该使用结构化程序设计方法重新设计测试用例。 循环测试问题 1.对于最多为n次的简单循环,要测试n-1次,n次,n+1次。最多为n次,n+1次怎么测; 2.第一问的条件下,若第一步i赋值为1,然后判断i是否小于m,m是要输入的值,如果m随便输入,无上界,那么n次,n+1次怎么判断,我m不同,最大次数不也不同? 3.嵌套循环内层测试时,外层循环取最小值,最小值什么意思,是外层不循环,还是循环一次? Z路径覆盖 路径覆盖是白盒测试最为典型的问题。 完成路径测试的理想情况是做到路径覆盖,对于比较简单的小程序实现路径覆盖是可以做到的,但是如果程序中出现多个判断和多个循环,可能的路径数目将会急剧增长,达到天文数字,以至于实现完全的路径覆盖是不可能的。 Z路径覆盖 为了解决这一问题,我们必须舍掉一些次要因素,对循环机制进行简化,从而极大地减少路径的数量,使得覆盖这些有限的路径成为可能。这种简化意义下的路径覆盖称为Z路径覆盖 Z路径覆盖 注意: 循环化简是指限制循环的次数。无论循环的形式和实际执行循环体的次数是多少,只考虑循环一次和零次两种情况。即:只考虑执行时进入循环体一次和跳过循环体的两种情况。 Z路径覆盖 Z路径覆盖 对这个流程图,应该怎么应用z路径覆盖设计测试用例呢? 程序插桩技术 在软件动态测试中,程序插桩(Program Instrumentation)是一种基本的测试手段 方法简介:借助往被测程序中插入操作,来实现测试目的的方法。 最简单的插桩:在程序中插入打印语句printf(“…”)语句 方法简介 如果我们想要了解一个程序在某次运行中所有可执行语句被覆盖的情况,或是每个语句实际执行次数,最好的办法就是利用程序插桩技术. 方法简介 例:求取两个整数X和Y的最大公约数程序如下: int gsd (int X,int Y) { int Q=X; int R=Y; while(Q!=R) { if(QR) Q=Q-R; else R=R-Q; } return Q; } 最大公约数算法之更相减损术 在我国古代的数学著作《九章算术》中,就介绍了“约分术”:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。” 程序插桩技术 可以根据程序绘制出其流程图 为了记录该程序中语句的执行次数,我们使用插桩技术插如如下语句: C(i)=C(i)+1, i=1,2,…,6 插桩之后的流程图如下: 程序插桩技术 程序从入口开始执行,到出口结束,凡经历的计数语句都能记录下该程序点的执行次数。 如果我们在程序的入口处还插入了对计数器C(i)初始化的语句,在出口处插入了打印这些计数器的语句,就构成了完整的插桩程序。它就能记录并输出在各程序点上语句的实际执行次数. 程序插桩技术 右图为插桩之后的程序,箭头所指为插入的语句。原程序的语句已略去。 程序插桩技术 设计插桩程序时需要考虑的问题包括: (1)需要探测哪些信息 (2)在程序的什么部位设置探测点 (3
文档评论(0)