单元测试作为敏捷开发实践的组成之一,其目的是提高软件开发的效率,维持代码的健康性。其目标是证明软件能够正常运行,而不是发现bug(发现bug这一目的与开发成本是正相关的,虽然发现bug是保证软件质量的一种手段,但是很显然这与降低软件开发成本这一目的背道而驰)。它是对软件质量的一种保证,例如重构之后我们需要保证软件产品的正常运行。
很多人认为编写单元测试没有用是认为单元测试并不能保证一定能减少bug发生的几率,而由于编写单元测试一定会花费一定的时间与精力,因而必然的会增加成本。客观的说,造成这种原因很大的程度上是程序员的水平不够高。我认为使用使用单元测试带来巨大好处的必要条件如下所示:
● 程序员本身的编程水平--是否有较多的代码经验,是否熟练掌握重构
● 程序员对项目的认知--是否能正确理解软件或模块的需求
● 项目质量--是否稳定,是否长期多版本,是否需要应对较多变化
如果程序员水平较高,对需求理解较为清晰,项目需要面对较多的变化,那么毫无疑问单元测试对于软件非常有益。假如软件功能简单且开发周期短,不需要进行复杂的维护工作,那么单元测试的意义并不大。
优秀的单元测试实践的好处:
● 好的单元测试就是一份好的文档,并且比文档更能为程序员所接受,它直接描述了测试员对受测代码的结果所持的预期。
● 当代码由别人维护时(或自己进行重构时),通过单元测试的约束,才能保证在加入新功能或修改旧功能时代码的正确性。
● 由于单元测试的自动化执行,保证了在整个开发流程中代码都会被测试,这非常符合XP思想。
● 保证在面对软件功能的变化时,程序员可以较为放心的进行代码重构,而不必担心是否破坏了原有功能。
● 好的单元测试可以降低bug数量,而对于项目管理来说,修改bug这个过程是无法制定计划的,可以使软件的开发流程更容易掌控。
● 可以由老程序员编写描述某个类行为的测试,以此指导新程序员对类的编码。
● ……
好处还有很多,但最重要的一点就是保证了软件质量的同时,由于减少bug和应对变化造成的回归bug的产生等,提高了劳动生产率。而且,在敏捷流程中,使用单元测试是必须掌握的手段,否则就没发保证重构的正确性,从而造成代码无法面对变化.
如需了解更多测试技术信息请关注:https://www.duoceshi.cn/jswz/深圳多测师软件与技术服务有限公司
Copyright © 2016-2021 深圳多测师软件与技术服务有限公司 版权所有
本站部分文章源自于网络,如有侵犯您的版权,请联系删除