为什么程序员一定要写测试?

发表于:2020-6-19 10:40

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:sitin    来源:涛哥聊Python

  为什么写测试
  写测试主要三个意义:
  降低Bug,节约时间
  很多Bug都是一些小错误,小细节,不是啥高大上的设计,有了测试可以规避一些基础的问题,避免到了上线才发现,那个时候再来重新修改,发布浪费很多时间。
  理解需求,挖掘边界条件
  你要测试一个代码,会重新审视代码逻辑,更容易找到里面的边界条件,对需求理解更加透彻清晰,另外测试代码本身就是一个很好的文档,而不像普通的文档会随着代码变更是似而非的。新来的小伙伴我一般会让他们去写测试,看测试代码,不是文档更似文档。
  增加信心,更好重构
  我不知道其他人有这个感受没,反正要我去动没有测试的老代码我是心理有点发虚的。有了测试用例,我们改动代码会更有自信,而不用过于担心改动到多年的老Bug,导致引发严重问题。
  有了测试才能更好把多方代码进行集成起来,如果没有要把多个成员的代码合并一起这个势必会非常困难,最终的软件质量也会很低,其实和第一个意义一样。
  没有银弹
  说完上面的内容之后,很多同学感觉测试真的太好了,所有的代码我都要写测试,让测试覆盖率足够高,这样就能降低Bug,节约时间,快速做一个高质量软件。
  但是实际上测试本身是需要维护的,加上写的过程这也是一个耗时过程,尤其是我们的项目可能还只是试错的demo,一开始投入大量精力写测试也是得不偿失的,所以测试也不是越多越好,是一个权衡的结果。
  所以软件开发常说没有银弹。
  银弹是什么? 维基百科这样说:
  在民俗传说里,所有能让我们充满梦靥的怪物之中,没有比狼人更可怕的了,因为它们会突然地从一般人变身为恐怖的怪兽,因此人们尝试着查找能够奇迹似地将狼人一枪毙命的银弹。
  没有银弹:简单来说就是软件开发由于各种bug缺陷,延误,预算等因素随时会变成怪兽,我们希望有一种完美方法(银弹)能解决这个问题,事实上没有。
  测试虽然能够解决我们很多问题,但依然有其局限,不能拿着一把锤子看啥都是钉子,这些都是我们的软件开发的工具箱里面的一个工具而已。
  但是总得来说,大部分团队的测试还远没有达到一个合格的水平,绝大多数问题都是因为测试不够,软件质量太低造成的,才会出现到处救火的情况。所以还是抓紧写测试吧。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号