大家在生活的过程中总会遇到一些问题,比如皮肤过敏红痒怎么办,那么今天小编就为大家分享关于的相关文章,希望在这篇文章中你能了解到相关内容。起始:1、皮肤过敏正确的治疗方✆法是什么2、过敏,红肿,痒3、皮肤过敏,痒,发红,
2023-11-27 15:56:01
什么是单元测试?
“在计算机程序设计中,单元测试也称为模块测试,是检查程序模块正确性的测试。程序单元是应用程序最小的可测试组件。在过程编程中,一个单元是一个单独的程序、函数、进程等。对于面向对象的编程,最小的单位是方法,包括基类、抽象类或派生类中的方法。”
摘自* * *
顾名思义,单元测试就是测试一个单元,这里的单元通常指的是一个函数或类,它不同于集成测试中的模块和系统。集成测试的测试过程通常有跨系统模块的调用,是端到端的测试;而单元测试的对象粒度较小,用来保证一个类或函数是否按预期正确执行。
二、为什么要把编写单元测试作为保证代码质量的有效手段之一?公司也在积极推进单元测试。结合单考的实践,总结出以下单元考的好处,应该能引起认真实践过的同学的共鸣。
2.1减少bug,释放资源
上图旨在说明两个问题:
85%的缺陷都在代码设计阶段产生;发现bug的阶段越靠后,耗费成本就越高,呈指数级别的增长。单元测试是所有测试环节中最底层的,是第一个环节,也是最重要的一个环节。大多数缺陷都是在编码阶段引入的,修复的成本随着软件生命周期的进展而不断上升。在日常研发中,我们在交付测试前编写功能单元的主流程、各种边界和异常单元测试,可以有效帮助我们发现代码中的缺陷。相对于后期测试同学或线上反馈异常后检查* * *和修复发布的成本,单元测试性价比极高。单元测试可以有效的保证代码的质量,给我们带来质量的口碑,同时减少为别人和自己修复低级bug所投入的时间,把精力分配到其他更有意义的事情上。
2.2护航代码重构面对项目中历史遗留的腐败代码,我们都有推倒重来的冲动,但毕竟经过了长期的稳定性测试,我们担心重构后会出现问题。这是我们经常遇到的情况。当我们要重构不太熟悉的祖传代码,又没有足够的测试资源时,重构引入缺陷的风险还是很大的。那么如何保证重构不出错呢?马丁·福勒在《重构:改进现有代码的设计》中提到:重构是一个有价值的工具,但仅有重构是不够的。要正确重构,前提是要有一个稳定的测试集,帮我找到不可避免的遗漏。即使有工具可以帮我自动完成一些重构,但是很多重构技术还是需要通过测试集来保证。除了要很好的理解业务流程,掌握各种设计思路和模式,单元测试是保证重构无错的有效手段。重构完成后,如果新代码仍能通过单元测试,说明代码原有的正确逻辑没有被破坏,原有的外部可见行为没有改变。单元测试给了我们信心和重建的信心。
2.3不仅是编写单个测试,还有代码评审单元测试,CR是保证代码质量的两种有效手段。在R&D交付的过程中,提交CR的时间通常是滞后的,审查学生指出需要优化或修复的时间也较晚,这增加了修复的风险和成本。我们写代码单元测试过程,其实就是自我代码评审的过程。在这个过程中,我们测试功能单元的主流程、边界和异常,还检查代码的规范、逻辑和设计。既提高了后续提交CR的质量和评估效率,又提前暴露了问题。
2.4便于调试和验证。当项目中有多个协作者时,我们只需要按照协议模拟出依赖关系的数据,不需要等到所有依赖的应用接口都开发部署好,提高了我们协作的效率和质量。我们对功能需求进行拆解,当每个小的功能点开发完成后,就可以编写和验证单元测试了。这个习惯可以让我们对代码得到快速的验证反馈。同时,在开发一个完整的功能时,我们需要运行项目的所有单个测试用例,这样才能清晰地感知到整个功能需求的变化是否会影响到现有的业务用例。如果能保证每个类和功能都能通过单元测试,并按照预期的业务逻辑执行,那么集成的功能模块或系统出现问题的概率就能大大降低。从这个意义上说,单元测试也强烈支持集成测试和系统测试。
2.5驱动设计和重构设计和编码,我们很难把所有的问题都想清楚。那么我们知道,判断代码好坏的一个重要标准就是代码的可测试性。如果对一段代码进行单一测试,发现很难写,并且有大量的用例要写,或者当前的测试框架无法模拟对象,需要依赖其他具有高级特性的测试框架,我们就需要回头看看代码,看看编码设计是否不合理,导致代码的可测试性低。这是一个正反馈的过程,让我们有针对性地重新设计和重构。
相关文章
大家在生活的过程中总会遇到一些问题,比如皮肤过敏红痒怎么办,那么今天小编就为大家分享关于的相关文章,希望在这篇文章中你能了解到相关内容。起始:1、皮肤过敏正确的治疗方✆法是什么2、过敏,红肿,痒3、皮肤过敏,痒,发红,
2023-11-27 15:56:01
男性性功能锻炼11种方法很多小伙伴都想知道怎么解决,接下来大家就跟着小编一起看一看,详解吧。起始:1、有♙没有什么好办法可以缓解久坐办公室颈椎后2、怎样才能让自己的生活过的更加充实和有趣呢1.坐办公室久了颈椎有
2023-11-27 15:40:01
许多生活朋友不知道男性珍珠状丘疹图片症状及消除方法✃,对此很疑惑,那么今天就和小编一起来看看吧,一定可以帮助到你。起始:1、2岁宝宝眼睛下面长了一颗痣2、脖子和脸上长扁平疣或丝状疣,怎么治3、氟尿嘧啶可以治好尖锐
2023-11-27 15:32:01
辟谷减肥7天具体方法和详细食谱是各位朋友所需要解决的问题,问题理解之后可以给朋友带来很大的帮助,所以今天小编就给大家带来的详细讲解,一起来看看吧。起始:1、辟谷怎么操作2、14天断食的正确方法3、辟谷瘦得快还是轻
2023-11-27 14:48:01
普☁洱茶的冲泡方法希望不清楚的大家在这看一看,小编已经为大家把这个问题总结好了,希望接下来的能帮大家解决这个问题,看完了记得分享哦!起始:1、普洱茶怎么喝2、普洱茶的冲泡方法。茶饼怎么弄3、熟普洱茶最卍简单的冲泡
2023-11-27 13:24:01