扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年9月30日
关键字:
在本页阅读全文(共4页)
1、开源工具与XP
XP的12条最佳实践,对于所有的企业应用开发商而言,由于组织和文化的不同,不可能全部应用,但是,下面几个实践是有条件逐步实施的:
代码规范:CODE STANDARD
测试驱动开发:TEST-DRIVEN DEVELOPMENT
日构建:DAILY BUILDING
持续集成:CONTINUOUS INTEGRATION
小步发布:SMALL RELEASE
每日晨会:DAILY MEETING
每周40小时工作:40-HOURS A WEEK
其中,CODE STANDARD和TDD是CONTINUOUS INTEGRATION、DAILY BUILDING和SMALL RELEASE的基础;而DAILY MEETING和40-HOURS A WORK是单独的实践过程,可以与其他的实践想结合,增强项目小组的沟通,激发士气。
需要说明的是以上最佳实践并非XP所独有,而是被最多的软件开发方法所应用,其中"日构建"就在微软的软件开发方法中正式出现过。
1)代码规范
虽然大部分的企业在一定程度上推行代码标准与规范,而且对于使用JAVA的应用程序开发,也有SUN的推荐编码规范,但是,实际的情况并不理想。
主要的原因在于:一方面,开发人员的习惯势力很大;另一方面,代码审查的力度不够。如果能够借助工具,从一定程度上帮助进行代码标准的执行情况检查,那么代码审查就可以着重检查程序的逻辑和性能等方面。
开源产品CheckStyle (http://sourceforge.net/projects/checkstyle) 可以帮助开发组织解决代码标准审查的问题。
目前的最新版本为3.0,它提供了两种运行方式:一种是命令行;一种是与Ant结合(Ant自1.5以后提供的OPTIONAL TASKS中有对于CheckStyle的支持)。同时,SourceForge中有对于JBuilder等流行IDE的插件支持,可以定义Global、Project级别上的属性文件, 但是,目前只是支持2.42版本。
在3.x版本之前,CheckStyle的配置信息写在Property File中;而在3.x之后,配置信息为XML文件,配置更加灵活。3.0的发布版本中提供了针对Sun Code Conventions的特定Check File,可以参考使用。
建议执行情况:
手动执行:开发人员在IDE中手动触发CheckStyle检查或者代码审查时由审查者手动执行;
自动执行:将CheckStyle与源码控制系统(CVS)结合,在源码Checkin的时候进行规则判断,如果不符合,则不允许代码进入系统。
2)测试驱动开发
测试先行或者测试驱动是XP的基本实践之一,同时测试在软件开发中的重要作用正越来越得到人们的重视。审查和测试作为系统确认和验证的有效方式,是项目质量保证的重要措施。
下面按照一般的测试分类,介绍各个领域内的开源测试工具:
单元测试:JUnit (http://www.junit.org)
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),用于Java开发人员编写单元测试之用。下面介绍的开源测试工具,很多都是对于JUnit的扩展。
它目前的版本为3.7,为编写单元测试提供了主要的接口。目前主流的IDE都提供了对于JUnit的支持。
XP强调测试先行,尤其重视单元测试。系统集成商需要通过软件开发过程的执行,来强化JUnit的使用。
目前很多商业测试软件都提供了与JUnit的联合使用,例如获得1999和2000年Jolt测试类工具亚军和生产率大奖的Jtest (ParaSoft公司产品,内置200余条编码规范,提供Java代码静态和动态检查,同时还可以自动生成简单的测试用例等等)就可以导入和导出JUnit的测试用例。
集成与功能测试:HttpUnit (http://unit.sourceforge.net) & Cactus (http://jakarta.apache.org/cactus/)
HttpUnit是一套通过HTTP连接测试Web应用程序的Java类。在结合JUnit的情况下,HttpUnit可以作为一种创建测试程序的强大工具用来保证Web应用程序正常的端对端功能。
虽然JUnit自身就可以通过编写单一类的测试程序对服务器端Java代码进行测试,不过,有了HttpUnit的帮助,JUnit就可以扩展为模拟Web浏览器-Web服务器的工作方式对整个Web程序结构进行测试。
Cactus为我们提供了一种测试SERVLET等WEB组件的有效手段。它是JUnit的一个扩展,但是它又和JUnit有一些不同。Cactus的测试分为三种不同的测试类别,JspTestCase, ServletTestCase, FilterTestCase, 而不是像JUnit就一种TestCase。Cactus的测试代码有服务器端和客户端两个部分,他们协同工作。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者