WEB开发网
开发学院软件开发Java Java 理论与实践: 平衡测试,第 3 部分:用方面检... 阅读

Java 理论与实践: 平衡测试,第 3 部分:用方面检验设计约束

 2010-01-11 00:00:00 来源:WEB开发网   
核心提示:面向方面编程(AOP)是项大有前途的新技术,但是采用新技术可能有风险(当然,Java 理论与实践: 平衡测试,第 3 部分:用方面检验设计约束,不 采用新技术也会有风险),与所有的新技术一样,可以验证代码是否按期望的那样工作,有些 bug 模式用静态工具更容易找出,通常来说,最好是沿着一条可以管理风险的路径来采用它们

面向方面编程(AOP)是项大有前途的新技术,但是采用新技术可能有风险(当然,不 采用新技术也会有风险)。与所有的新技术一样,通常来说,最好是沿着一条可以管理风险的路径来采用它们。如果用 AOP 来执行策略和测试,就可以从 AOP 得到降低风险的好处。因为方面不会进入生产,所以不会出现技术破坏代码稳定性或开发过程的风险,但却会有助于开发质量更好的软件。用方面进行测试也是学习方面的工作方式,并体验这项激动人心的新技术的好方法。

组合测试方法

正如我在 第 1 部分 中讨论过的,QA 的目的不是找到所有可能有的 bug —— 因为这是不可能的 —— 而是提升我们对代码按预期工作的确信程度。对于管理有效的 QA 组织,它的挑战就是最大化所花费资源的回报,即确信度。因为所有的测试方法最终都会表现出回报消退(对于等量的付出增加,得到的确信度增加越来越少),而且不同的方法适合寻找不同类型的错误,所以把 QA 付出分散在测试、代码审查和静态分析上,要比把整个 QA 预算只花在其中一项措施上,回报要更好。

FindBugs 这样的静态分析工具是不精确的,但是不精确的分析对于提高软件质量仍然是非常有用和有效的。它们可能发出假警告,例如在无害的构造上触发警告,也可能忽略了 bug,例如没有找出与特定 bug 模式匹配的全部 bug。但是它们仍然能发现真正的 bug,而且只要误报率没有高到让用户厌烦的程度,那么它们仍然对测试付出提供了有价值的回报。

从测试的角度来说,使用 AOP 来验证设计规则与使用静态分析有许多共同之处。静态分析和面向方面编程都不用为了特定的方法或类设计测试用例,而是都鼓励找出违犯规则的全部分类,并创建能够发现代码体中任何违规的工件。另一个相似性就是它们不必非常完善也能够发挥作用;尽管 bug 探测器或测试方面都不能找出所有可能的 bug,甚至有些会发出假警告,它们仍然是非常有用的工具,可以验证代码是否按期望的那样工作。有些 bug 模式用静态工具更容易找出,而另一些用方面会更容易找出 —— 这使得方面成为参与 QA 过程的一个有用的方法。

1 2 3 4 5 6  下一页

Tags:Java 理论 实践

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接