众所周知,在软件开发流程中,问题发现的的越早修复成本越低,而单元测试就是让问题能够提早发现的一大利器。那我们在团队中,又该如何去利用这把利刃,以提升我们的工程效率和质量保障呢?
技术
首先是技术,想把单元测试做起来首要就是有良好的技术积累,能够搭建稳定易用的测试框架,编写覆盖率和召回率高的测试用例。
不过这里也不是就单纯靠慢慢积累,大家可以看看网络上或者身边其他团队的经验。我们在输入法手机内核这块的很多单元测试技术在做PC、海外等等项目都被用上了。所以,这块想快速推行要记住:
技术可以借鉴
比如我们使用gtest的测试框架几乎所有c++项目都在使用,我们针对手机中文输入法摸索出来的测试框架在各个输入法项目都大同小异地搭建起来。这块有兴趣可以关注我们单元测试技术相关的分享。
流程
在有了完善的技术基础后,为了最大化利用好单元测试的优势,我们还需要一套严谨的流程规范。比如单测失败了该怎么办、覆盖率多少算合格等等,流程中很多细节需要我们在实战中不断完善,不过大的框架在类似的项目中大同小异。所以,这块想快速推行要记住:
流程可以复制
下面也给大家看看我们项目的流程,对一些主要是API接口的项目可能有所帮助。
文化
无论是技术还是流程都最终还是要靠人来做,怎么让大家心甘情愿甚至兴致勃勃地做这件事。这就要看一个团队的文化了,这里没有太好的办法,所以:
文化只能靠影响
当然这里也有写小窍门可以和大家分享下,主要有两点:
一定要想明白事情的开展方案,预估好成本收益,让团队认为这是一件有益而不是麻烦的事情,最终达成双赢;
如果团队之前没有好的文化功底,可以先从leader或者一些资深的技术大牛聊起。首先他们一般都有较好的质量意识,会比较认可这件事;其次有他们本身就是影响力的代名词,他们都支持了对其他同学会有很好的正面影响。