SQ3R阅读法
Survey:浏览
1、书名:《Professional Java Tools For Extreme Programming》,自译名《Java极限编程的专业工具》
2、作者:Richard Hightower / Warner Onstine / Paul Visan / Damon Payne / Joseph D. Gradecki
3、本书内容:本书是一本专门为J2EE开发者在使用XP过程中会用到
的工具汇总及详细代码解释说明!
4、将会学到哪些内容:
- How to automate the building of J2EE apps and components with Ant and XDoclet
- Techniques for automating Java testing JUnit
- Procedures for automating servlet, JSP, and other J2EE testing using Cactus
- Ways to automate Swing testing with Jemmy, JFCUnit, and Abbot
- How to manage projects using Maven
- Techniques for automating continuous integration with AntHill and Cruise Control
- How to harness plugins for JUnit, Cactus, and Ant in the Eclipse IDE
- Ways to implement Extreme Programming best practices
5、主要内容:
XP方法中自动化测试和持续集成的开源工具实现!
(This book describes techniques for implementing the Extreme Programming practices of
automated testing and
continuous integration using
open source tools.)
6、主要的工具:Abbot , Ant , AntHill , Bugzilla,Cactus , CruiseControl , CVS , Eclipse , HttpUnit , Jemmy , jfcUnit , JMeter , JUnit , Maven.
7、Types of Automated Tests
- JUnit——Unit Tests(单元测试)
- Cactus——Integration/In-Container Tests(集成、容器内测试)
- HttpUnit——Acceptance/Functional Tests(验收、功能测试)
- JunitPerf 、JMeter——Performance Tests(性能测试)
Question
1、JAR file
Read:
一、XPToolkit——Ant
1、Ant起源
1998年,有一位程序员改变了整个Java 世界。
James Duncan Davisdson在试图使用当时的构建工具(GNU Make、批处理文件和shell脚本)来创建一个跨平台的Tomcat构建时,做了多种努力均不能成功。因此,他在从欧洲飞回美国的途中设计出了自己的构建实用工具,并为命名为Ant,因这是一个小东西,但却能做大事。James为了解决自己的问题(即创建一个跨平台的构建)而提出的这种快速而简单的解决方案已经演变成Java环境中应用最为广泛的构建管理工具。
2、Ant是什么,有什么优势?
Ant 是一个将
源码获取、编译、测试、打包、部署等步骤联系在一起
加以优化的一个构建工具,常用于Java环境中的软件开发。Ant的默认配置文件是build.xml。
3、Ant和Make等工具相比的优势
(1)
跨平台:因为 ant 是使用 java 实现的,所以跨平台; ——其他工具如make、shell、批处理文件等不具有该特点;
(2)
使用简单:比其他构建工具简单,特别是和 ant 的兄弟 make 做比较;——make 是unix、linux下的重要工具,无论是项目开发还是安装软件都需要用到;
(3)
语法清晰:同样是和 make 做比较; ——make调用、解释makefile文件相当于ant调用、解释build.xml文件
(4)
功能强大:Ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当你需要自己开发一些 ant 插件的时候,你会发现它更多的功能。
4、Ant入门、进阶等信息请参考:
http://wenku.baidu.com/view/608dfe4ff7ec4afe04a1df48.html
5、Ant参考书籍:《Ant权威指南》
二、XPToolkit——CVS
1、CVS与SVN区别
参考文章
:《SVN与CVS两者间的比较》
三、XPToolkit——XDoclet
1、XDoclet是什么?
XDoclet 是一个
通用的代码生成实用程序,是一个
扩展的Javadoc Doclet引擎(现已与Javadoc Doclet独立),
XDoclet是EJBDoclet的后继者,而EJBDoclet是由Rickard Oberg发起的。它允许您使用象 JavaDoc 标记之类的东西来
向诸如类、方法和字段之类的语言特征添加元数据。随后,它利用这些额外的元数据来
生成诸如部署描述符和源代码之类的相关文件。可以让你创建自己的javadoc @tags进而利用XDoclet中的Templet engine基于这些@tags生成源代码或其他文件(例如xml的deployment descriptors)。
XDoclet 继承了 JavaDoc 引擎的思想,
允许自己定制模板。当然,XDoclet 也可以访问整个解析树。这样,它就可以访问类、类的包结构和类的方法。给这一概念起了一个名称:面向属性的编程(attribute-oriented programming)(不要与面向方面的编程(aspect-oriented programming)相混淆,这是另一个 AOP)。
2、XDoclet详解
参见文章:
XDoclet详解
四、XPToolkit——Junit
1、java代码的单元测试工具!
五、XPToolkit——JunitPerf
1、JunitPerf是什么?
JUnitPerf是单元
性能测试,区别于一般常见的单元测试!Junitperf实际
是junit的一个decorator,通过编写用于junitperf的单元测试,我们也可使测试过程自动化。
2、JUnitPerf测试原理?
JUnitPerf对
单元测试的执行效率进行测试,由于
单元测试实际上是调用的单元代码,因此测试单元测试的执行效率就可以直接反映出单元代码的效率!
六、XPToolkit——Bugzilla
1、缺陷追踪、管理工具!
七、XPToolkit——HttpUnit
1、HttpUnit是一个集成测试工具,主要关注Web应用的测试,提供的帮助类让测试者可以通过Java类和服务器进行交互,并且将服务器端的响应当作文本或者DOM对象进行处理。HttpUnit还提供了一个模拟Servlet容器,让你可以不需要发布Servlet,就可以对Servlet的内部代码进行测试。本文中作者将详细的介绍如何使用HttpUnit提供的类完成集成测试。
八、XPToolkit——JMeter
1、JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。
九、XPToolkit——Cactus
1、容器内测试框架,主要对J2EE应用进行测试。
十、XPToolkit——JCoverage
1、JCoverage是一款代码覆盖率测试工具,但是现已收费,可替代的工具是
Cobertura;
Cobertura 是 jcoverage 的分支。GPL 版本的 jcoverage 已经有一年没有更新过了,并且有一些长期存在的 bug,Cobertura 修复了这些 bug。原来的那些 jcoverage 开发人员不再继续开发开放源码,他们转向开发 jcoverage 的商业版和 jcoverage+,jcoverage+ 是一个从同一代码基础中发展出来的封闭源代码产品。
2、Cobertura作为代码覆盖率测试工具主要有以下几个测试点:
- 行覆盖率测试(line Coverage)——源码中的每一行是否都测试到了?
- 分支覆盖率测试(branch Coverage)——源码中的每一个分支清苦是否都测试到了?
- 代码复杂度(Complexity)
十一、XPToolkit——Jemmy
1、
java图形界面的单元测试
十二、XPToolkit——JFCUnit
1、JFCUnit 是一款在 JUnit 基础上针对
Swing GUI 扩展的单元测试工具。在同一个应用程序中,我们可以通过组件发现方法查找到组件,模拟用户动作触发组件事件来提供测试驱动,通过断言验证组件状态是否正确。
2、优点:
- 继承了 JUnit ,具有 JUnit 进行单元测试的所有优点;
- 提供了一系列 GUI 组件发现方法及用户动作模拟方法。
十三、XPToolkit——Maven(出自 Apache Jakarta 项目的高级项目管理工具)
1、Ant 提供的东西,Maven都能提供,而且更多。
十四、XPToolkit——CruiseControl
1、CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。CruiseControl提供了一个Web接口, 可随时查看当前的编译状况和历史状况。
2、Apache Continuum 是最新的 CI 服务器之一,也是值得关注的一个新进入者。Continuum 的安装和配置很简单:只要下载和释放 ZIP 文件,运行命令行程序,就可以运行了。基于 Web 的界面使得配置项目很容易。而且,还不需要安装 Web 服务器,因为 Continuum 内置了 Jetty Web 服务器。并且,Continuum 可以作为 Windows 服务运行,还在应用程序的某些部分嵌入了上下文敏感的文档,从而提供了很多帮助。
3、Apache Continuum的特性:
- 与Maven 2.x的紧密集成
- 与Maven SCM的紧密集成,支持Subversion/CVS/Starteam/Clearcase/Perforce
- 基于web的容易使用的安装和配置接口
- Quartz-based scheduling
- 简单的添加新的项目工程的方法
- 用于 integration, automation and remoting的XML-RPC interface
- 邮件提醒和IM(即时通讯)提醒IRC/Jabber/MSN
十五、XPToolkit——AntHill
针对以上各个工具,每一个进行亲自动手尝试,然后写出博客!
Recite
Review