一、构建工具

构建工具可以自动化的完成构建项目过程中的各个阶段,包括文件系统新建,编译代码,测试,生成报告等等。JAVA中主要有Ant和Maven 2。相对来说,Maven更能培养用户更好的编程习惯。

1.     

是基于过程式的任务驱动。就是通过build.xml详细一步步的描述过程中的任务。Ant包含丰富的内置任务集,包含从编译到单元测试,网络部署,以电子邮件通知团队等。

2.     

偏好约定而不是配置。都使用XML语言进行编写。Maven是以说明的方式描述项目,而不是描述步骤、任务。


二、版本控制

版本控制比较常用,包含CSV,Subversion,(git)。其中,Subversion更适合现代软件开发实践。Git在本书(JAVA开发超级工具集)中没有提及。


三、持续集成

持续集成就是在软件开发的过程中,不断的将各个模块集成后测试,以便能随时提供一个可以展示的成品,可以更早的发现问题。

1.     

基于Web的轻量级持续集成工具,易于安装,配置简单。缺点是功能不够丰富,用户界面难以使用。

2.     

比较成熟的集成工具,支持任何类型项目(Ant、Maven、make等)和各类SCM(软件配置管理)。通知技术最好。缺点是配置、维护较复杂,用户界面一般

3.     

安装配置都简单,也是基于web控制。相对与第一种,功能更丰富,支持版本控制,消息通知

4.     

基于Web,用户界面友好,相对于其他工具,这个只支持CSV和Subversion。但是提供并行构建、项目间依赖、图像化构建统计报告等其他工具所没有的。同时也有很多插件。


四、单元测试


1 、 JUnit

这个工具是现在JAVA单元测试用的最多的测试工具。

2.TeseNG

此工具克服了JUnit的很多不足,去掉语法限制,并且增加了很多功能,如并行测试、测试组、依赖等。可与各类开发IDE和各类构建工具(Ant和Maven)集成。

3.     

测试覆盖工具,是在单元测试中监视代码,记录哪些代码执行过。可与Ant和Maven集成。


五、集成、功能、负载、性能测试


1.StrutsTestCase 测试 Struts

这个工具主要用于测试基于Struts框架开发的J2EE程序。不能测试HTML或者JSP,可以测试用户界面中从Struts操作往下的JAVA部分。将Struts、JUnit和本工具结合使用,将为用户提供非常高水平的测试覆盖。


2.DbUnit 数据库集成测试

此工具有两大主要用途,一个是准备数据库,一个是验证数据库

4.      JUnitPerf性能测试

这个工具是JUnit的扩展,可以进行负载测试以及性能测试。

5.      JMeter进行负载和性能测试

比较强大的JAVA负载和性能测试工具,可以对web应用程序、数据库、web服务以及更多其他应用进行性能测试。

6.      SoapUI测试web服务

这个工具可以从两方面进行服务,一个是web服务测试,擅长让用户进行web服务功能、负载和符合性测试。第二是web服务开发,可以与java web服务领域的多个工具集成。当需要对web服务进行性能测试、需要验证web服务的集成情况等可以使用此工具。

7.      Sun JDK工具监视和分析JAVA应用程序的性能

在java 5或更高版本,jdk中打包了一些可以立即使用的性能分析工具。如jconsole

8.      Selenium测试Web应用程序

此工具使用web浏览器对web应用程序进行测试

9.      FEST测试Swing图形用户界面

测试图形界面,能够模拟用户时间,可以方便地创建和维护大型gui功能测试


六、质量度量工具

1.Checkstyle检测和实施编码标准

  检测和实施最佳实践,检查代码是否遵守了编码约定和标准。

2.PMD预先检测错误

分析静态代码,自动检测各种潜在的缺陷以及不安全或未优化的代码。

3.FindBugs预先检查错误

专业的程序错误检测工具,专注于检查潜在的程序错误和性能问题,可以与上诉两个工具形成互补。

4.Jupiter进行半自动化代码评审

5.Mylyn突出工作重点

管理任务,突出重点


七、问题管理工具

1.Bugzilla

功能丰富,适合大型开发团队和较大范围的用户社区。是最著名的问题跟踪解决方案。但是难以安装和维护,用户界面不太友好。

2.Trac

轻量级项目管理,一般与Subversion配合使用

八、技术文档工具

1.Maven

可以生成项目网站,包含各类报告

2、自动生成文档

用于数据库的SchemaSpy直观查看数据库结构,Doxygen和UmlGraph用于源代码文档