单元测试的必要性和效益
作者:网络转载 发布时间:[ 2010/11/9 15:22:08 ] 推荐标签:
1、什么是单元测试?
工厂在组装一台电视机前,会先测试所有元器件,与此类似,软件开发过程中也要对各个代码单元进行单独的隔离的测试,这是单元测试。
"代码单元"一般是指类或函数,流行的看法是以类为"单元",但在实际工作中,以类为测试单元并不实用,即使是比较简单的类,例如只有三五个成员变量、十几个成员函数的类,如果作为一个整体来测试,做起来也过于复杂,因此,本文主张以函数为测试单元。
2、单元测试的必要性
缺少单元测试是项目质量不符要求,工期超时,预算超支的主要原因之一。如果缺少单元测试,编码完成后看到的往往不是胜利的曙光,而是噩梦般的泥潭。不说别的,仅仅"对代码的修改很可能会引入新的错误"这一点,足于导致项目失败。
缺少单元测试,代码会遗留大量的细小的错误,集成后算能把这些错误找出来,总要修改吧?这可能陷入修改,引入新的错误,测试,再修改,再引入新的错误的怪圈。
需求的变化几乎是不可避免的,因为很多功能都是做出来、试用过才知道有没有用、好不好用。需求的变化必然导致大范围的代码修改,于是又可能陷入修改,引入新的错误,测试,再修改,再引入新的错误的怪圈。
有了单元测试,情况完全不同,首先单元测试使代码中的错误减至少,其次任何修 改都可以通过自动回归测试来发现所引入的错误,从而消除修改所造成的破坏。
如果要保证项目质量,避免工期超时、预算超支,那么,实施单元测试是完全必要的。
3、单元测试的效益
保证局部代码的质量:单元测试在隔离的前提下,分别对各个代码单元进行测试,能够达到其他测试不可能达到的测试完整性,从而保证了局部代码的质量。只有局部代码的质量得到了保证,软件产品的质量才可能得到保证。
改良项目代码的整体结构:要对代码进行单元测试,起码的前提是代码能够隔离,也是说,要具有一定的可测性,因此,单元测试是一种有效的约束机制,这种机制将有效地改良代码的整体结构。例如,如果把业务代码直接写在界面类中,将很难进行单元测试,随意的不合理的紧耦合也会造成难于测试,单元测试使这些不好的特性得于及时发现,从而很容易进行修正。可测性是高质量代码的首要特性,不具有可测性,也无法衡量代码的正确性,有了可测性,也基本上保证了代码的可扩展性、可复用性。
降低测试、维护升级的成本:错误越早发现,修复的代价越小,另一方面,如果代码经过了充分的单元测试,集成测试和系统测试只需要关注设计方面的问题。自动回归测试也大量降低升级维护成本。
使开发过程适应频繁变化的需求:单元测试自然地使开发流程变得"敏捷",这是因为,整体结构良好的代码具有较好的可扩展性,自动回归测试又能保证修改不会引入新的错误,因此可以适应频繁变动的需求,降低系统分析、架构设计和后期测试的压力。
提升程序员的能力:对程序员来说,单元测试有利于养成缜密的思维习惯,提高编写健壮代码的能力,并提高设计能力。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11