• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Java中语句、分支和路径覆盖测试

发布: 2007-5-14 21:01 | 作者: Joe Ponczak | 来源: dev2dev | 查看: 225次 | 进入软件测试论坛讨论

领测软件测试网


  要获得100%的基本路径覆盖,您需要定义基组。这种方法的圈复杂度为四(1加决策数量),需要定义四个线性无关路径。为此,可以将任何第一个路径定为基线,并且逐个浏览决策,直至完成基组。

  路径1:任何路径都可以作为基线,因此将决策结果选定为真(由 TTT 表示)。这是基组中的第一个路径。

  路径2:要找到下一个基本路径,浏览(仅限于)基线路径中的第一个决策,显示 FTT 表示您期望的决策结果。

  路径3:浏览基线路径中的第二个决策,显示第三个基本路径为 TFT 。这样,第一个基线决策就可以保持为结果“真”不变。

  路径4:最后,浏览基线路径中的第三个决策,显示第四个基本路径为 TTF 。这样,第一个基线决策就可以保持为结果“真”不变。

  因此,四个基本路径为 TTT、 FTT、 TFT、和 TTF。现在,进行测试并查看结果。

  在所附的代码中,您可以看到 testReturnInputIntBooleanBooleanBooleanTFT() 和 testReturnInputIntBooleanBooleanBooleanFTT() 找到了语句和分支覆盖中未发现的bug。此外,基本路径数量随着决策数据呈线性增长,而非指数增长,使需要进行测试的数量与实现全面分支覆盖所需的数量相等。事实上,基本路径测试覆盖了一个方法中的所有语句和分支,因而有效包含了分支和语句覆盖。

  但是,为何不对其他潜在路径进行测试呢?记住,基本路径测试的目的在于测试所有相对独立的决策结果。通过对四个基本路径的测试可达到这个目的,而这与其他的路径没有关系。如果在开始时选择 FFF 作为基线路径,您将得到(FFF、 TFF、 FTF、 FFT)基组,与 TTT 路径无关。两个基组都同样有效,任何一个都可以满足您的独立决策结果 标准。

  创建测试数据

  在本示例中获得100%的基本路径覆盖率非常容易,但是对现实生活中的路径基组进行全面测试将更具挑战性,甚至不可能实现。由于基本路径覆盖测试一个方法中各个决策之间的交互情况,因此您需要使用促使指定路径执行的测试数据,而不能仅仅使用单一的决策结果,这对分支覆盖来说也很有必要。通过注入数据来强行按指定路径执行非常困难,但是您可以记住简化测试过程的几种编码实践。

  使您的代码保持简单。圈复杂度越低越好。在能够减小数值时进行重构。数值越高,就越难测试,这个数值一旦超过10,测试就根本无法实现。这样不仅能减少需要测试的基本路径数量,而且还能减少每个路径中的决策数量。

  避免重复决策
  避免数据依赖性
  考虑以下示例:


图5. 基本路径测试

  x 变量间接依赖于 object1 参数,但其中插入的代码却使查看关系变得尤为困难。随着方法变得越来越复杂,查看方法的输入值和决策表达式之间的关系几乎是不可能的。

文章来源于领测软件测试网 https://www.ltesting.net/

54/5<12345>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网