软件测试驱动开发与极限编程核心价值的关系

发表于:2009-05-05来源:作者:点击数: 标签:软件测试极限编程关系核心价值
极限编程思想有其自身的核心价值,它们是:交流、简单、反

极限编程思想有其自身的核心价值,它们是:交流、简单、反馈、勇气。测试驱动开发作为极限编程中的基本开发原则,也充分体现了这种新型开发思想的价值。

(1)交流在软件开发过程中的作用是毋庸置疑的,交流可以最大程度的减少开发人员、客户、管理人员之间由于沟通不畅造成的误解。极限编程的很多实践都是必须依靠交流来实现的,缺少交流是不能够进行下去的,比如单元测试、结对编程、工作的评估等。测试驱动开发与这些方法密不可分,只有进行结对编程等方法进行的测试驱动开发才是有意义的。这种情况下,同样需要大量的交流,可见交流原则的重要性。

(2)简单这一价值在极限编程的思想中有着很重要的体现,整个极限编程的过程中都体现着简单二字,设计简单、代码简单,只要能简单行事,决不复杂办理。只要符合现在的要求,可以工作,那么简单解决就是最佳的方法。与其实现一个复杂的系统,不如设计一个简单的能满足当前需要的系统,因为你永远考虑不到下一个需求是什么。测试驱动开发正是如此。测试用例的编写本着简单的原则,在符合设计的要求下进行编写,越简单越好。只需要注重眼前的需求,不要考虑以后的需要变化。现阶段的设计满足现阶段的需求即可,显然现阶段的测试也只需满足现阶段的需要即可。测试用例的编写是根据设计而定的,而且可以说,测试用例的编写也是设计的一部分,简单的原则同样在起着指导作用。所以代码的编写亦是根据此原则,算法实现越简单越好,百分之百通过测试即可。

(3)反馈是一项宝贵的资源。在极限编程中,无论是设计、测试、开发过程中,反馈都是非常重要的信息。例如在设计时,尽快获得用户的反馈,并且越详细越好,使得开发人员能够保证自己的成果符合用户的需要。测试亦是如此。测试驱动开发便是贯彻了这一价值。先进行测试用例的编写,利用没有通过测试的错误信息反馈,了解到代码没有通过测试用例的原因,根据该信息了解到出错的地方,再根据出现的问题有针对性的逐步地修改代码,让其渐渐符合测试用例的要求,在运行数次测试用例后,最终让其反馈回百分之百通过的成功信息。

(4)勇气,这是最重要的核心价值。因为XP强调要\"拥抱变化\",因此对于用户的反馈,要勇于对自己的代码进行修改,丢掉坏的代码。该条价值反映了开发人员应有的心态,而测试驱动开发正是进一步鼓励开发人员,而且在实践方便提供了很好的机制。先写测试后写代码的过程正是这一机制的体现。面对测试用例运行时报出的错误反馈要勇于面对。例如在xUnit测试框架的使用中就要于面对测试时出现的Red Bar,错误信息并不可怕,这正是测试驱动开发的意义所在。针对错误信息来编写及修改代码,勇于面对,最终解决问题顺利通过测试,显示出所期望的Green Bar。勇气又可以进一步的增强信心,提高效率,使得整个过程良性循环发展。

原文转自:http://www.ltesting.net