欢迎来到学术参考网

刍议测试驱动开发在软件开发中的作用

发布时间:2016-06-14 14:33

  在极限编程中极具特色的一个原则就是测试驱动开发,作为一种新的思潮正在被越来越多的人所接受,它在软件开发过程中所表现出来的积极作用是不言而喻的。测试驱动开发的方法能够在保证功能测试的前提下,也能够成为设计的一部分。整个开发过程的驱动力就是以测试驱动开发为基础,能够在很大程度上提高代码质量,改善开发设计过程,从而在根本上提高了产品的质量。

 

  随着时代的发展,计算机软件的发展变得尤为迅速,与之对应的问题是用户对软件的质量要求也越来越高。为了能够及时交付给用户一个满意的软件,软件开发人员往往需要投入到高效的软件开发过程。然而现实情况则是传统的软件工程方法已经变得不再适用于当今的软件开发,而最近刚刚兴起的一些软件开发过程的技术正好值得我们借鉴和学习。其中就包括我们今天要讨论的测试驱动开发,它作为一个最基础的技术能够提供给我们一些相对高效的软件过程开发方法。

 

  1 测试驱动开发的相关环节

 

  1.1 原理和过程

 

  测试驱动开发的原理就是应该在明确要开发某个功能后,进行构思并决定如何设计测试代码的过程,从而根据用户的需求编写出功能代码满足这些测试用例。接下来可以循环的进行添加其他功能,最后能够完成全部功能的开发。其中的基本过程包括:明确当前需要完成的功能;需要在保证速度的前提下编写测试用例;编写对应的功能代码;保证测试能够通过的方法就是重构代码。我们通常在运用了测试框架的前提下,进行组织所有的测试用例,从而保证了整个测试过程的高效和便捷。

 

  1.2 原则要求

 

  为了保证能分清需要检测的各类代码,不同代码的的测试之间应该相互隔离,为了避免去考虑许多的无关细节而增加复杂度,所以我们在相关代码的测试中一般只考虑该代码的测试,而不去考虑它的现实细节。在实际情况中,经常出现的功能点需要我们去测试,在任意阶段中如果我们想要添加功能需求问题时,我们能够把相关功能点添加到测试列表的操作方法从而避免不必要的麻烦,从而不断地完成对应的测试实例、重构和功能代码。这是为了避免疏漏,同时也是为了避免干扰当前正在进行的工作。在完成某个功能、某个类别的时候,首先我们需要编写测试代码,考虑具体该如何测试和使用,接下来再进行设计和编码。在这个过程中,我们需要正确编写对应功能代码判断用的语句,随后编写对应的辅助语句。

 

  1.3 测试技术

 

  如果我们采用传统的检测方式,这无疑会在我们的软件开发中造成开发速度缓慢等缺点,而我们需要认清的一点就是测试驱动开发中的测试并不是作为一种负担,而是一种为了帮助我们减轻繁重工作量的有效方法。在针对如何选择一个合适的时间来停止编写测试用例的问题上,我们应该根据往常的工作经验来进行,例如说针对一些功能复杂并且具有核心功能的代码来说应该编写更细致、全面的测试用例。静态的标准也不适用于测试驱动开发的测试范围,在实际情况下是能够随着时间的改变而改变。

刍议测试驱动开发在软件开发中的作用

 

  2 软件开发为何要应用测试驱动开发

 

  2.1 提高代码质量

 

  测试驱动开发区别于之前的先编码后测试的开发方式,它的操作过程恰恰相反,它推动整个开发的进行是通过测试来实现的。在某些时候,软件工程开发工程中的需求是极难描述清楚的,当然我们这里说的需求当然不只是指用户的需求,代码的使用需求才是我们需要考虑的需求范围。如果我们在软件开发后期还要对某个类或者函数的接口进行拓展或者修改,显然这对任何一个开发人员来说都是不能够接受的。至于为什么会发生这样的事情,从本意上来说就是因为没有精确地对这部分代码作出描述。而当我们需要添加某项新功能时,也不应该着急写程序代码,这时候就体现出了先写好测试用例的重要性。

 

  2.2 改善设计方式

 

  测试驱动开发的优势则体现在实现软件设计的过程中,传统的软件工程所体现出来的设计思想跟测试驱动开发的思想是不能够比较的,传统设计方法中的死板的原则在测试驱动开发面前是不值得一提的,在某些程度还弱化了了全面细致的设计。在测试驱动开发过程中我们应该对现有的需求做出简单的设计,而不是对需求做出详尽的解释。看上去好像对设计进行了简化,也削弱了开发的依据,实际上却是进一步明确了软件开发的时候应该更注重眼前的问题,只有这样才能使做出的软件更符合客户的需求。因为设计是一个相持以往的过程,需求文档的体现也在测试用例中表现得非常充分。

 

  2.3 革新传统的软件开发

 

  以人为本的思想是测试驱动开发的方法。人类活动都秉持着高度的目的性,建立一个心里的标准并竭尽全力去达成这个标准会具有重要的心理作用。例如在我们平时的测试过程中,有着不同目的的测试软件开发将会带来不一样的操作结果。比如说将证明程序中没有我们需要查找的错误作为我们的最终目的,那大脑中的潜意识里就会指导着我们朝这个思路去做,所以在编写测试的过程中,我们就潜意识地选择了一些不会使整个软件程序出错的实验数据;相反,如果我们逆向思维去选择那些容易发现程序错误的测试数据去证明程序中的漏洞,那结果一定就会不同了。对比之下,我们在以寻找错误为最终目的的前提下做出的程序检测质量远远高过以不找错误为最终目的的思维方式。测试驱动开发改变了以往的破坏性思想,测试在先,编码在后的方法则是从人性的角度出发。

 

  3 结语

 

  总而言之,测试驱动开发的开发方法就是测试在前,编码在后。人性特点作为测试驱动开发侧重考虑的因素,在一定程度上极大的提高了软件的质量和开发速度。这是一种完全的软件开发革新,也从根本上改变了传统的开发软件思想。推广测试驱动开发思想使得越来越多的软件企业开始注意到这种独具一格的软件测试方法,间接或者是直接采用了这种方法。测试驱动开发正在软件开发领域发光发热,我们也相信在不久的将来就能解决用户对软件质量不满的问题。

 

  作者:陈迪舸 来源:电子技术与软件工程 20167

上一篇:教学软件开发流程优化

下一篇:云计算环境下软件开发架构应用与设计