极限编程的思想是以人为本的思想,它不同于CMM等重量级的开发方法,完全是从工程的角度来进行系统的开发,人在其中完全成为了条条框框下的忠实执行者。极限编程从人性方面考虑的更多,比如每周四十小时工作时,结对编程等。测试驱动开发也体现出了这一原则。
人类的活动具有高度的目的性,建立适当的目标具有重要的心理作用。例如在测试过程中,体现出的现象更是如此。如果我们的主要目的是为了证明程序里面没有错误,那潜意识里就会不自觉地朝这个方向去做,所以在编写测试的过程中,我们就会选择一些尽量使程序不出错的测试数据;但是,如果我们的目标是要证明程序中有错,那就会选择一些易于发现程序所含错误的测试数据。而后一种态度会比前者给程序增添更多的价值。传统测试的定义意味着程序测试的过程是具有破坏性的,其程度甚至达到了不可容忍的地步。
测试驱动开发一改以往的那种破坏性的思想,从人性的角度出发,软件测试在先,编码在后。而不是像传统的编码完成后再进行破坏性的测试。这样一来,我们的编码就有很明确的目的,每一条代码的目的就是为了能通过测试。从以前的破坏性的方法转移到一种建设性的方法中来。如何来满足这些测试,有了明确的目标,开发人员可以以一种正常人的心态去解决眼前出面的问题,编写高质量的代码去通过这些测试。在这种积极心态的影响下,开发人员的工作效率会有很大的提高,与此同时,这种建设性的方法对整个团队的开发也起着很重要的作用。