一、构建工具
构建工具可以自动化的完成构建项目过程中的各个阶段,包括文件系统新建,编译代码,测试,生成报告等等。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用于源代码文档