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

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

让开发自动化: 断言架构可靠性

发布: 2008-6-24 14:42 | 作者: 不详 | 来源: 测试时代编辑整理 | 查看: 46次 | 进入软件测试论坛讨论

领测软件测试网


要分析的包由 “Layer” String 定义。


dataLayerViolations Collection 添加了 businessLayer String(表示一个包)来指明这是对期望架构的违背。
按照这四个要点,我已经有效地设置了 JDepend,以针对特定代码库发挥其魔力。现在,我要设定一些精确的逻辑以说明耦合值的变化。

清单 3 中的 testDataLayer() 测试用例是架构断言的核心。该方法可判定是否存在对 dataLayer 的任何违背 —— 如果 isLayeringValid() 方法(在下面的 清单 4 中定义)返回 false ,测试用例就被认为失败,也意味着必然存在一处架构违背。


清单 3. 使用 JDepend 测试架构违背
public void testDataLayer() {
  if (!isLayeringValid(dataLayer, dataLayerViolations)) {
    fail("Dependency Constraint failed in Data Layer");
  }
}

 


清单 3 中测试用例所调用的方法如清单 4 所示:


清单 4. 循环查找每个包的传入耦合
private boolean isLayeringValid(String layer, Collection rules) {
  boolean rulesCorrect = true;
  Collection packages = jdepend.analyze();
  Iterator itor = packages.iterator();
  JavaPackage jPackage = null;
  String analyzedPackageName = null;
  while (itor.hasNext()) {
    jPackage = (JavaPackage) itor.next();
    analyzedPackageName = jPackage.getName();
    Iterator afferentItor = jPackage.getAfferents().iterator();
    String afferentPackageName = null;
    while (afferentItor.hasNext()) {
      JavaPackage afferentPackage = (JavaPackage) afferentItor.next();
      afferentPackageName = afferentPackage.getName();
    }
    rulesCorrect = isEfferentsValid(layer, rules, rulesCorrect, jPackage, analyzedPackageName);
  }
  return rulesCorrect;
}
 


isLayeringValid() 方法的目的确定 清单 2 中 DIRECTORY_TO_ANALYZE 目录内所有包的传入耦合。您可以在清单 4 底部看到,该方法遵守 isEfferentsValid() 方法,如清单 5 所示。

这里,如果 isEfferentsValid() 方法发现某个包不符合指定的包依赖关系(由于从一个包到另一个包的传出耦合大于 0),则使用 清单 2 中的 dataLayerViolations 集合将该包标记为一个架构违背。这将间接导致 testDataLayer() 测试用例(如 清单 3 所示)失败。

延伸阅读

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


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

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