白盒测试路径分析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一章 路径分析 一 概述 本文通过弥诺陶洛斯迷宫的传说引入路径分析这一技术。本文通过分析两个不同的人利用不同的方法逃出了迷宫来进行对比,分析了两种方法各自的特点,并且分析了其缺陷性。 第一个欧洲人所采用的方法是:始终走向同一个方向的分支,这种算法虽然当时解决了问题,但是这个算法并不能保证走过的路径是入口与出口之间最短的,所以说它并不一定是一种最有效的方法。而且他解决问题的办法的狭隘性比较强,如果出口在一个孤立的墙上就无能为力了。 另一种就是忒修斯所采用的方法,他是采用系线球作标记的方式,但是他找到陶洛斯的方法是随机的,并不能保证他一定能找到陶洛斯,他仅仅靠自己的直觉找到了陶洛斯,然后杀死他再回到入口处,公主利用绳子把他救出来。 还有一种方法,就是在大家在束手无策的时候所采用就是漫无目的的走动,完全靠运气找到了出口。那么这后面的两种方法所采用的是即兴的方式,它并不是一种系统的方法。 折射到软件测试中,我们需要能够确定并计算通过迷宫的路径。 我们所使用算法来确定和标记路径,但是我们还需要能够根据迷宫的特征计算给定的迷宫中存在的路径数量。 通常根据线索及错误,依靠经验来确定通过迷宫的路径数量是非常不可靠的。为了回溯所有的路径可以合并算法,一次使用一种,但是这是非常耗时的,在一个大型的实时系统中这是不可能进行下去的。在复杂的系统中,一个测试人员使用这些方法可能永远不能证明所有可能组合的路径都已遍历过。为此为了确定路径,下面介绍线性无关的概念。 二 相关的重要概念 1.线性无关 在数学里也有线性无关的概念,它主要是说在n个变量中,如果它们是线性相关的,那么它们当中的至少有一个变量是可以用另外n-1个线性表示的,否则就是线性无关的。 本文的线性无关主要是判断一条线与其它的线的无关性。对于路径来说,这意味着对于每个路径只有一次路径需要计数。一条通过系统的路径,只有当它包含某些路径的部分是以前没有被覆盖过时,才说它是与其他的路径线性无关的。 2.case语句 case语句对于软件程序的测试人员是非常重要的。这个类似于一个带有多个门道的房间,每个门道最终都通向一个出口。当用户在屋里时,他们有多种选择,程序下一步将如何执行取决于用户的选择。 2.1 线性无关的具体例子解释 参见教材192页的图11.4,在这个例子中有5条线性无关的路径。我们可以一次跟踪一条路径,采用观察的方法确定这几条路径。 我们使用下列算法也可以找到这5条路径: (1)算法1:路径1 (a)进入系统 (b)在每一个条件判断处选择条件为真的路径(右手),直到遇到出口。 (2)算法2:路径2,3,4,5和1 (a)进入系统 (b)选择条件为真的路径(右手)直到遇到第一个分支,其条件为假的路径(左手)还没有被选择过。 (c)选择条件为假的分支(左手) (d)此后,总是选择条件为真的分支(右手)直到遇到出口。 其实上面的方法就相当于数据库里面所学的遍历树的方法,这是一个系统的可再现的方法。 注意最短的路径应该最早被标识出来,这个观点的提出理由在于,从测试人员的角度考虑,最短的路径应该是系统中最重要的路径。 在软件测试中除了线性无关之外,还有语句覆盖和分支覆盖这两个重要概念。 2.2 语句覆盖 语句覆盖是一种路径计算的方法,它计算可以遍历系统中所有语句或节点的最小路径数。这个数目与线性无关的路径数可能相同,也可能不同。 2.3 分支覆盖 分支覆盖是一种计算路径的方法,它计算遍历一个系统中每一个判断节点的所有分支所需的最小路径数。具体见解教材195页的说明。 2.4 一连串判定语句 这个结构是非常重要的,因为这是一个常见的结构,它可以用来展示路径的数目是如何快速增长起来的,变为不确定且混乱的。 具体的例子参见教材的195页到198页有关解释。在这个例子中语句覆盖=1;分支覆盖=2;线性无关路径覆盖=5;总共路径=16。 假设一个软件系统包含有几百个逻辑分支,哪怕是在一个小型的系统中其路径的数目也是巨大,所以我们需要使用的合理的方法来挑选出我们的测试集。 依靠经验或检查来计算通过这样一个系统的路径数是不可行的,我们真正需要的是计算系统中存在路径数的一个方法。为此我们下面需要讲述的就是如何计算通过一个系统的路径。 三 计算通过一个系统的路径数 测试人员需要一个系统的方法计算出路径数目,这项工作要在投入所有的时间绘制路径图前完成,它可以预测出测试的工作量。路径除了定义为带有足迹的

文档评论(0)

anma + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档