这是我参与「第五届青训营 」伴学笔记创作活动的第2天,开始的开始除了准备学习相关的知识,还要规划好每天的日程。
今天主要收获是和测试相关的一些知识,在实际工程开发中,一个重要概念就是单元测试,今天我主要学习了go测试相关的内容,包括单测规范,测试mock,以及基准测试。测试关系着系统的质量,质量则决定线上系统的稳定性,一但出现bug漏洞,就会造成事故,只要我们做好了完备的测试,就可以避免事故的发生。
测试一般分为回归测试、集成测试与单元测试,回归测试一般是QA同学手动通过终端回归一些固定的主流程场景,集成测试是对系统功能维度做测试验证,而单元测试测试开发阶段,开发者对单 独的函数、模块做功能验证,层级从上至下,测试成本逐渐减低,而测试覆盖率确逐步上升,所以单元测试的覆盖率一定程度上决定这代码的质量。
单元测试是十分重要的,单元测试主要包括,输入,测试单元,输出,以及校对,单元的概念比较广,包括接口,函数,模块等;用最后的校对来保证代码的功能与我们的预聘相符;单元测试一方面可以保证质量 ,在整体面盖率足够的情况下,一定程度上班保证了新功能本身的正确性,又未破坏原有代码的正确性。另一方面可以提升效率,在代码有bug的情况下,通过编写单测,可以在一个校短周期问题。
在实际项目中,一般的要求是50%~60%覆盖率,而对于资金型服务, 覆盖率可能要求达到80%;做单元测试,要求函数体足够小,这样就比较简单的提升覆盖率,也符合函数设计的单一职责。