- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2005年电力行、业信息化年会论文集l软件开发技术
测试驱动开发在电力信息系统中的应用
郑义王默玉
华北电力大学计算机科学与技术系
【摘 要】电力系统的重组和用电量的不断增加,导致电力信息系统的升级需求的频繁。TDD模
式日益受到软件开发人员的重视,本文论述了一种将TDD模式应用于电力软件开发的
思想,有效解决了开发过程中稳定性和灵活性的问题。
1.引言
测试驱动开发(Test—Driven Beck提出的极限编
Development,TDD)是一种开发方式,是由Kent
程(eXtreme
件的质量,并大大减少了运行期间的维护工作量。
TDD讲究测试先行,先编写测试,然后再编写让这些测试通过的代码。在编写代码的时候,有可
能会出现代码结构不合理的地方,如重复代码,类之间通讯不当,类的尺寸过长,过分短小的类,方
法过长,类之问关联太复杂等,需要对这些不合理的地方重构,重构的方法有提取类,提取接口,提
取方法等。
TDD开发过程可比做交通灯,我们首先根据需求分析编写一个测试,这时候被测试的类和方法还没有定
义,编译器会报告错误,这就是我们的黄灯;当定义了被测试的类和方法之后,还没有定义其内容的时候,
编译器不会报错,但是测试通不过,这就是红灯;然后我们定义类和方法的内容,直到测试通过,这就是我
们的绿灯。最后,我们需要消除我们在使测试通过的时候引入的一些结构不合理的代码。
在此过程中,每完成一次小的修改之后都重新编译并运行测试,这样做怎么强调都不为过。因为
在每次小的改动之后,测试通过,可以给我们信心和保证。让我们有勇气继续下一步的工作,每次一
小步一小步的推进。在任何时候如果测试失败了,我们都会准确的知道就是最近的一次修改导致了测
试的失败。撤消这次修改,测试会再次通过。我们就可以重新尝试修改。通过这种反复的迭代,我们
的代码会越来越漂亮。
在开发过程中,我们使用程序员测试,它和我们经常提到的单元测试非常类似,但是它们的目的
不同,单元测试的目的是为了测试你编写的代码能否工作,而程序员测试是为了定义代码的含义。
TDD的基本原则就是在没有测试之前,不要编写任何代码,也就是说,当我们的代码编写完成之前,
我们相应的测试已经存在了,这样就保证了一套详尽的程序员测试集。在编写测试的时候,不要一次
把所有的测试全部写完,而是要先编写少量的测试,再根据测试的需要编写代码,待测试通过,代码
、
结构合理后,继续编写下一个测试和相应的代码,做到步步为营。
2.测试驱动开发中需要的工具
2.1测试工具
测试工具在TDD中用来编写测试用例,通过执行测试用例,检查我们的代码是否可行。这里就应
用于Java的JUnit框架加以说明。
软件开发技术/2005露电力行业信息化年会论文集
在JUnit中,我们经常使用的有TestCase,TestSuite和Assert。
在测试结束之后自动执行。
的任意组合。
Assert类是TestCase的超类,他提供在编写测试时要用到的所有assert方法。
2.2 Version
CVS(Concurrent
System)版本控制系统
化表支持对文件的同时访问和修改。它明确地将源文件的存储和用户的工作空间独立开来,并使其并
行操作。
在TDD过程中,我们首先在一台CVS服务器上建立一个源代码库,库里存放我们要开发的项目的
源程序,由源代码库管理员管理。每个程序员在使用源代码库之前,首先要把源代码库里的项目文件
下载到本地,然后找到自己的任务编写或修改,最后用CVS命令进行提交,由CVS源代码库统一管理
修改。这样,就好象只有一个人在修改文件一样,提高了开发的效率。
供了很大的方便。
2.3编译部署工具Ant
Ant是一个用于Java工程的自动化构建、部署工具。在TDD中,无论程序员使用什么操作系统、
务,我
文档评论(0)