这是最新一期IBM developworks的专题,摘录了一些挺有用的建议和概念。高质量代码中往往缺陷更少!确保高的 Java 代码质量有两个步骤:尽早并经常地编写各个层次的测试用例,以及持续的监测质量状况

什么是软件质量?

软件质量(software quality)是与软件产品满足明确或隐含需求的能力有关的特征和特性的总和。高质量的软件通常具备了这样一些特性:

满足用户的需求。
合理的进度、成本、功能关系。
具备扩展性和灵活性,能够适应一定程度的需求变化。
足够的强壮、足够的鲁棒,能够有效的处理例外的情况。
保持成本和性能的平衡。
能够可持续的发展。

什么是软件测试?

软件测试是为了发现程序代码中的错误(Bug)而执行程序的过程,是软件质量保证的重要手段,属于软件工程领域。其目的是:

为了寻找错误,并尽可能地为修正错误提供更多的信息;
为了证明软件有错误,而不是证明软件没有错误;
软件测试技术根据测试原理,又分为:
静态测试:不实际运行程序,而是通过代码检查的手段来发现错误并评估代码质量的软件测试技术;
动态测试:实际运行程序,并通过观察程序运行的实际结果来发现错误的软件测试技术;

什么是测试驱动开发(TDD)?

测试驱动开发(Test-Driven Development)起源于极限编程(XP)开发过程中所提倡的测试先行实践。测试先行实践重视单元测试(Unit Testing),强调程序员除了编写代码之外,还应该编写单元测试代码。在开发的顺序上,它改变了以往先编写代码,再编写测试的过程,而采用先编写测 试,再编写代码来满足测试的方法。这种方法在实际中能够起到非常好的效果,使得测试工作不仅仅是单纯的测试,而成为设计的一部分。

静态分析工具

静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷。当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现。尽管如此,好的静态分析工具仍然是工具箱中的无价之宝:

FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题:

PMD 是一个开源的静态分析工具,它分析 Java 源代码,并找出潜在的 bug:

Eclipse 静态分析插件,能在构建代码前便发现代码中潜在的问题:

IBM Checking Tool for Bugs Errors and Mistakes,可用于分析并查找 C、C++ 和 Java 代码中的一些不容易发现的潜在错误: