流程类测试设计:路径分析法-测试架构师修炼之道(8)

发表于:2016-9-28 09:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:刘琛梅    来源:51Testing软件测试网原创

  需要特别指出的是,我们要想通过图论中的“三个等式”和“算法”来确定流程中的最小线性无关路径,流程需要遵循如下约定。
  约定1:“流程图”的“入口”和“出口”不作为边数计算,如图4-53所示。
  约定2:一个“流程图”只有一个“入口点”和一个“出口点”。
  有“两个输入”(图4-54);
  有“两个输出”(图4-55);
  它们都不符合“约定2”。
  不符合“约定2”,可能会使得图论中的三个等式失效。以图4-55所示(存在“两个输出”)为例。
  使用等式1:7(边数)-7(节点数)+2=2
  使用等式2:2(判定数)+1=3
  使用等式3:1(区域数)+1=2
  这样“等式2”和“等式1”“等式3”不再等价,因此我们也可以通过这样的方法,来判断当前的流程图是否符合要求。但是我们也不能说只要这三个等式是等价的,流程图就没有问题。我们来分析一下如图4-54所示的流程图,它的三个等式依然是等价的:
  使用等式1:10(边数)-8(节点数)+2=4
  使用等式2:3(判定数)+1=4
  使用等式3:3(区域数)+1=4
  如果我们对产品的业务功能建模后,绘出的流程图确实存在“多个输入”,或者“多个输出”,在对其进行最小线性无关覆盖分析之前,我们先要对这个流程图进行分解,使其满足“约定2”。这时系统中最小线性无关路径的总数,等于被分解的每个流程中最小线性无关路径的总和:
  式中 TIP——系统中最小线性无关路径的总和;
  IPn——每个流程的最小线性无关路径的总和;
  n——系统被分解后包含的流程的个数。
  以图4-5所示的流程图为例,我们可以将其拆分为如图4-56所示两个流程图,保证分解后的流程图只有“一个输入”和“一个输出”。
  然后再分别对这两个流程图进行最小线性无关路径分析。
  对“流程1”,包含的最小线性无关路径数为2:
  使用等式1:6(边数)-6(节点数)+2=2
  使用等式2:1(判定数)+1=2
  使用等式3:1(区域数)+1=2
  对“流程2”,包含的最小线性无关路径数为3:
  使用等式1:6(边数)-5(节点数)+2=3
  使用等式2:2(判定数)+1=3
  使用等式3:2(区域数)+1=3
  整个系统包含的最小线性无关路径的总数为2+3=5个(而不是之前我们得到的4个)。
  需要特别指出的是,对流程1,等式2中的判定数为什么是1,而不是2呢?
  让我们来回忆一下本节的开头对“判定”的定义:有一条或多条入边和有两条出边的分支节点。有两条出边是判定的必要条件。而流程1中的d2,因为拆分的原因,只有一个出边,所以在流程1中,d2不是判定。在流程1中,符合判定条件的只有d1。
  3. 使用路径分析法来设计基础测试用例
  模型,在这里就是流程图绘制好了之后,接下来我们就使用路径分析法来覆盖这个模型,设计基础测试用例。
  上一节我们介绍了路径分析法中的四种覆盖方法,包括语句覆盖、分支覆盖、全覆盖和最小线性无关覆盖。我们可以根据被测对象的优先级、测试阶段来选择合适的覆盖策略。一般来说,在单元测试阶段,我们会主要使用语句覆盖或分支覆盖的方式来设计测试用例;在集成测试和系统测试阶段,我们会主要使用最小线性无关覆盖;而对其中一些特别重要的部分,使用全覆盖;对一些不那么重要的部分,使用语句覆盖或分支覆盖。
  接下来我们继续以“PC连接WiFi”中的测试点1~测试点4为例,使用最小线性无关覆盖的方式来设计基础测试用例。
  举例:对“PC连接WiFi”功能测试中测试点1~测试点4使用最小线性无关覆盖的方式来设计基础测试用例
  在上一节中,我们已经对测试点1~测试点4绘制了业务流程图,如图4-57所示。
  这个流程图有“两个输出”,按照上一节的描述,我们需要将这个流程图拆成两个“子流程图”,保证每个“子流程图”均只有“一个输入”和“一个输出”。
  子流程1如图4-58所示。
  对该“子流程”进行分析,它所包含的:
  “边”数:9;
  “节点”数:8;
  “判定”数:2(注意,“备选WiFi是否可用”和“连接成功?”这两个“判定”,在“子流程1”中只有“一个输出”,不属于“判定”);
  “区域”数: 2。
  该子流程包含的最小线性无关路径数为3。
  使用最小线性无关覆盖中介绍的算法,得到该系统中的最小线性无关路径的集合,见表4-16。
  子流程2如图4-59所示。
  对该“子流程”进行分析,它所包含的:
  “边”数:7;
  “节点”数:7;
  “判定”数:1 (注意,“首选WiFi是否可用”“是否加密”和“连接成功?”这三个“判定”,在“子流程2”中均只有“一个输出”,不属于“判定”);
  “区域”数:1。
  该子流程包含的最小线性无关路径数为2。
  使用最小线性无关覆盖中介绍的算法,得到该系统中的最小线性无关路径的集合,见表4-17。
  综上,整个流程中包含的最小线性无关路径数目为3+2=5条,集合见表4-18。
本文选自《测试架构师修炼之道:从测试工程师到测试架构师》第四章,本站经机械工业出版社和作者的授权。
版权声明:51Testing软件测试网获机械工业出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
32/3<123>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • jake20001
    2018-1-16 18:46:20

    4-18和前面的分析都没对应起来???

  • jake20001
    2018-1-16 18:26:51

    4-16为什么4选3中选择这3个?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号