摘要:电力系统的重组和用电量的不断增加,导致电力信息系统的升级需求的频繁。TDD模式日益受到软件开发人员的重视,本文论述了一种将TDD模式应用于电力软件开发的思想,有效解决了开发过程中稳定性和灵活性的问题。
Abstract: The reform of electric power corporation and the increasing need of electricity made it possible to realize an aided design for electric power information system. TDD has called attention from bunches of software developers. In this paper, TDD is integrated into electric power information system exploitation. The problem concerning the stability and flexibility is therefore effectively solved.
1、 引言
测试驱动开发(Test-Driven Development, TDD)是一种开发方式,是由Kent Beck提出的极限编程(eXtreme Programming, XP)的核心部分。TDD能最大限度的提高软件开发的速度,同时保证了软件的质量,并大大减少了运行期间的维护工作量。
TDD讲究测试先行,先编写测试,然后再编写让这些测试通过的代码。在编写代码的时候,有可能会出现代码结构不合理的地方,如重复代码,类之间通讯不当,类的尺寸过长,过分短小的类,方法过长,类之间关联太复杂等,需要对这些不合理的地方重构,重构的方法有提取类,提取接口,提取方法等。TDD开发过程如图1所示。
TDD开发过程可比做交通灯,我们首先根据需求分析编写一个测试,这时候被测试的类和方法还没有定义,编译器会报告错误,这就是我们的黄灯;当定义了被测试的类和方法之后,还没有定义其内容的时候,编译器不会报错,但是测试通不过,这就是红灯;然后我们定义类和方法的内容,直到测试通过,这就是我们的绿灯。最后,我们需要消除我们在使测试通过的时候引入的一些结构不合理的代码。
在此过程中,每完成一次小的修改之后都重新编译并运行测试,这样做怎么强调都不为过。因为在每次小的改动之后,测试通过,可以给我们信心和保证。让我们有勇气继续下一步的工作,每次一小步一小步的推进。在任何时候如果测试失败了,我们都会准确的知道就是最近的一次修改导致了测试的失败。撤消这次修改,测试会再次通过。我们就可以重新尝试修改。通过这种反复的迭代,我们的代码会越来越漂亮。
在开发过程中,我们使用程序员测试,它和我们经常提到的单元测试非常类似,但是它们的目的不同,单元测试的目的是为了测试你编写的代码能否工作,而程序员测试是为了定义代码的含义。TDD的基本原则就是在没有测试之前,不要编写任何代码,也就是说,当我们的代码编写完成之前,我们相应的测