单元测试的重要性

2018-06-14  本文已影响19人  小小鱼类

现在很多公司都在抓质量,质量!质量!质量!为什么都在抓质量,在IT行业多元化复杂化的今天,也就意味着竞争会异常的激烈,那么作为互联网软件公司,怎么提升我们的竞争力?我们不是某些国企,不需要某些套路,我们的企业是否能生存,取决于我们的用户,抓住我们的用户,我们就能生存,怎么抓住我们的用户?那必须要获得用户的信任,让他们能放心的投资在我们身上,购买我们的产品。
  抓住我们的用户,那么我们就需要提高我们的产品质量,这也是取得用户信任的关键步骤,那么我们是做软件的,就必须要提高我们的软件质量。针对软件质量可以从很多方面去提升,开发,测试,运维等等。开发里面又要分静态检查,白盒测试;测试里面又要分功能测试,性能测试等等,每个环节都有很多提高我们质量的方法,今天呢我只针对开发来讲怎么提高我们的代码质量,而且只针对白盒测试,也就是单元测试。
  很多公司,下到开发,几乎人人鼓吹白盒测试有多好,对质量的杀伤力有多大,可是,能真正做起来单元测试的公司少之又少,小公司基本不愿意投入做单元测试的人力成本,大公司呢,说起来容易,个个开发几乎都是自己写完代码自己测试两次了事~那么我们到底有没有必要来做单元测试呢?我来说说我的观点,分别从时间和工作量来分析。
  时间
  即使你没有多少开发经验,你也应该能够想象,单元测试最大的问题,就是它需要花时间花精力去写,那么这个花费是否值得呢?这还是由你架构的目标决定的,或者你的需求决定的。如果系统是一次成型交付使用,此后几乎不会更改的,那么一次性的手工测试就够了;但如果你的系统是会被“千锤百炼”的不断折腾修改的,那么这个测试就是很有必要的。最简单的考虑:每一次更改,我都要手工测试一次;那还不会如我多花点时间,弄个“自动化”的东西出来。单元测试,其实就可以理解为一种自动化的测试工具。
  但是“自动化”的理由还远远不够。因为你马上想到的,每一次需求变更代码调整,测试代码也得相应的改呀?没有测试代码,我就只需要改开发代码;现在有了单元测试,我还得再改测试代码。本来我只维护一套代码,现在我凭空增加了一套代码也需要维护,这不是增加了维护成本,不是和你“可维护性”的架构目标背道而驰了么?是一套代码好维护呢,还是两套代码更好维护?
  这是一个非常好的问题,适用于很多情景(比如分层架构,你说分层解耦,实际上还不是一改就得从UI层改到数据库,每一层都得改?)。我能给出的回答大概有:

总结:所以,个人观点,对于某些关键功能和通用底层库,必须要做单元测试,如果真的要把产品所有的代码都做单元测试,其实是没有必要的,也不必要花这么多的财力人力。当然,通过做单元测试,不仅能提升公司产品的竞争力和稳定性,也可以提升开发人员的开发能力。

上一篇 下一篇

猜你喜欢

热点阅读