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

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

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

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

领测软件测试网

  两个测试都验证了(输出等于输入)需求并且达到了100%的分支覆盖率。但是,尽管实现了100%的分支覆盖率,测试却未发现bug。管理员可能会再次认为测试已完成,该方法可进入生产阶段。

  聪明的开发人员将认识到您可能错过了被测试方法中的一些可能路径。以上示例已经测试了 真-假-真或假-真-真 路径,您可以通过添加两个额外测试来进行检验。

  该方法中只有三个决策,因此测试所有八种可能路径是非常容易的。但对于包含更多决策的方法来说,可能路径数量将呈指数增长。例如,一个包含十个布尔决策的方法会有1024种可能路径。这样只有祝您好运了!

  因此,获得100%的语句和100%的分支覆盖率是远远不够的,但费力地测试一个复杂方法包含的所有可能路径也是不可行的。有没有其他选择呢?让我们看看基本路径覆盖。

  基本路径覆盖

  路径代表着从开始执行方法到退出方法的执行流程。一个有着N个决策的方法会有 2^N 种可能路径,如果方法中包含一个循环,则会产生无限数量的路径。幸运的是,您可以使用称为 圈复杂度(cyclomatic complexity) 的度量来减少需要测试的路径数量。

  一种方法的圈复杂度是数字1加上该方法中的独特决策数量。圈复杂度可以帮助您定义方法的线性无关路径的数量,即基组。线性无关的定义不在本文讨论范围之内,但总体来说基组就是一个最小的路径组,它可以通过组合来创建方法中的其他可能路径。

  像分支覆盖一样,路径基组测试确保了您可以测试每个决策结果,但是与分支覆盖不同,基本路径覆盖可以确保对所有相互独立的决策结果进行测试。也就是说每个新的基本路径都可以准确地“浏览”前一个执行决策,而不改变其他执行分支。这是基本路径覆盖比分支覆盖更健壮的重要原因,它使您能够了解如何通过改变一个决策来影响方法的行为。

  我将使用同一个示例进行说明。


图4. 代码示例

延伸阅读

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

53/5<12345>

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

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