在这个系列中,Andrew Glover 将重点阐述有关保证代码质量的一些有时看上去有点神秘的东西。

系列文章

对 Ajax 应用程序进行单元测试
2007 年 8 月
您可能从编写 Ajax 应用程序中获得了极大乐趣,但是对它们执行单元测试却着实让人头痛。 在本文中,Andrew Glover 着手解决 Ajax 的弱点(其中之一),即应对异步 Web 应用程序执行单元测试的固有挑战。幸运的是,他发现在 Google Web Toolkit 的帮助下,解决这个特殊的代码质量问题要比预想的容易。

使用 TestNG-Abbot 实现自动化 GUI 测试
2007 年 4 月
TestNG-Abbot 是一种测试框架,它为 GUI 组件的测试带来了新的活力。本月,Andrew Glover 将带领您亲历使用 TestNG-Abbot 测试 GUI 过程中难度最大的部分,即理解用户场景的实现过程。一旦理解了它,您会发现将 GUI 组件隔离并使用框架所含的极其方便的 fixture 对象对其进行验证是多么地简单。

用 AOP 进行防御性编程
2007 年 2 月
虽然防御性编程有效地保证了方法输入的条件,但如果在一系列方法中使用它,不免过于重复。本月,Andrew Glover 将向您展示通过一种更为容易的方式,即使用 AOP、契约式设计和一个便捷的叫做 OVal 的库,来向代码中添加可重用的验证约束条件。

探究 XMLUnit
2007 年 1 月
Java 开发人员一般都很善于解决问题,所以由 Java 开发人员提出更容易的方法用以验证 XML 文档是很自然的事。本月,Andrew 将向您介绍 XMLUnit,一个能满足您所有的 XML 验证需求的 JUnit 扩展框架。

用 JUnitPerf 进行性能测试
2006 年 12 月
在应用程序的开发周期中,性能测试常被放到最后考虑,这并不是因为它不重要,而是因为存在这么多未知变量,很难有效地测试。在本月的 追求代码质量 系列中,Andrew Glover 使性能测试成为开发周期的一部分,并介绍了两种简单的实现方法。

通过测试分类实现敏捷构建
2006 年 11 月
人人都认可开发人员测试的重要性,但为什么运行测试还是需要花费太多时间?本月,Andrew Glover 揭示了三种用来确保端到端系统健壮性的测试类型,随后展示了如何按类型来自动排序及运行测试。即使是使用当今大型测试套件,这样做也能显著地减少构建时间。

可重复的系统测试
2006 年 11 月
在 Andrew Glover 的提高代码质量的这个续篇中,他介绍了 Cargo,这是一个以通用方式自动化容器管理的开源框架,有了这个框架,您可以随时编写符合逻辑的可重复的系统测试。

JUnit 4 与 TestNG 的对比
2006 年 9 月
JUnit 4 具有基于注释的新框架,它包含了 TestNG 一些最优异的特性。但这是否意味着 JUnit 4 已经淘汰了 TestNG?Andrew Glover 探讨了这两种框架各自的独特之处,并阐述了 TestNG 独有的三种高级测试特性。

测试 Struts 遗留的应用程序
2006 年 8 月
虽然 Struts 正在慢慢退出 Web 框架的历史舞台,但它的遗产仍然存在,存在的形式主要是需要测试和维护的应用程序。这个月,Andrew Glover 向您介绍如何使用 JUnit 的 StrutsTestCase、DbUnit 以及在这个系列中迄今为止学到的一些工具,把以质量为中心的方法用于 Struts 上的测试(可以这么说)。

驯服复杂的冗长代码
2006 年 7 月
冗长的代码常常是复杂性的标志,会导致代码难以测试和维护。本月将学习三种测试代码复杂性的重要方法,它们分别基于方法长度、类长度和内部类耦合。专家 Andrew Glover 将向您展示如何使用诸如 PMD 和 JavaNCSS 之类的工具,在您需要的时候获得更高的精度。

用代码度量进行重构
2006 年 6 月
在前一期中,学习了如何用代码度量客观地测量代码质量。这个月,Andrew Glover 将介绍如何使用相同的度量方法和提取方法模式进行有针对性的重构。

软件架构的代码质量
2006 年 5 月
大多数设计良好的软件架构都趋向于支持系统的可扩展性、可维护性和可靠性。遗憾的是,对质量问题的疏忽极可能使软件架构师的努力白费。本文中质量专家 Andrew Glover 解释了如何持续地监视并纠正会影响软件架构的长期生存能力的代码质量方面。

监视圈复杂度
2006 年 4 月
如果复杂度与缺陷紧密相关,那么监视代码库的复杂度值不是很有意义吗?Andrew Glover 将展示如何使用简单的代码度量工具和基于 Java 的工具来监视圈复杂度 (cyclomatic complexity)。

决心采用 FIT
2006 年 3 月
代码质量完美主义者 Andrew Glover 介绍了如何把 FIT 和 JUnit 两者最好的地方结合在一起,实现更好的团队工作和有效的端到端测试。

不要被覆盖报告所迷惑
2006 年 2 月
测试覆盖工具对单元测试具有重要的意义,但是经常被误用。这个月,Andrew Glover 将会深入地介绍覆盖报告中数字的真实含义。然后他会提出您可以尽早并经常地利用覆盖来确保代码质量的三个方法。

专栏作者

Andrew GloverStelligent Incorporated 的总裁,这家公司用有效的开发人员测试策略和能够让团队在早期经常地监视代码质量的持续集成技术,帮助企业解决软件质量问题。他是 Java Testing Patterns (Wiley,2004 年 9 月)一书的合著者。