立即测试与单一测试的效率产出比较:

(左:立即测试模型,右:单一测试模型)

从长远看来,使用“立即测试模型”的代价比“延后测试模型”的代价要低。在你编写实现代码的时候,同时编写独立的测试代码,在项目最后就可以避免出现做了无用功的问题;代码中的bug也会更少,因为你所依赖的都是已经测试的代码。于是,通过在开发过程中多花一点时间在编写单元测试上面,你就可以在最小化在项目后期花费大量时间的风险。

从上图中可以看到,“立即测试”与“延后测试”之间并没有权衡可言;而是直线效率和指数效率之间的对比,而且对于后者而言,复杂度会不断增加,并且在项目后期,很多工作需要从头再来。所有这些额外的工作都会影响你的工作效率。

显然,单元测试也并非免费的午餐。在立即测试模型中,单元测试是有开销的(在时间和金钱上面)。但是如果你查看右边曲线的方向,你会发现它花费了更多的开销--效率曲线急剧下降;而且生产率甚至会变成负值;这些生产率损耗可以很容易导致一个项目失败。

因此,如果你仍然认为在编写产品代码的时候,还是没有时间编写测试代码,那么请先考虑下面这些问题:

1、对于所编写的代码,你在调试上面花了多少时间?

2、对于以前你自认为正确的代码,而实际上这些代码却存在重大的bug,你花了多少时间在重新确认这些代码上面?

3、对于一个别人报告的bug,你花了多少时间才找出导致这个bug的源码位置?

对于没有使用单元测试的程序员而言,上面这些问题所耗费的时间的递增速度是很快的,而且随着项目的深入,递增速度会变得更快;而另一方面,适当的单元测试却可以很大程序地减少这些时间,从而能够为你腾出足够的时间来编写其它的单元测试,或者你所谓的“正事”--Coding

单元测试(三)--立即测试模型与单一测试模型相关推荐

  1. 软件开发模型和测试模型(瀑布模型,螺旋模型,增量、迭代,敏捷,敏捷中的测试,软件测试v模型,软件测试w模型)

    一.软件的生命周期 需求分析--计划--设计--编码--测试--运行维护 二.瀑布模型 是所有其他模型的基础框架,每个阶段只执行一次,是线性顺序进行的软件开发模式 · 优点:强调开发的阶段性: 强调早 ...

  2. 【人工智能与机器学习】——Keras编程分别实现人脸微笑和口罩数据集的识别模型训练和测试(卷积神经网络CNN) + 实时分类微笑和口罩识别检测

    机器学习练习目录 一.理解人脸图像特征提取的各种方法的特征 1.HOG 2.Dlib 3.卷积神经网络(CNN) 二.卷积神经网络(CNN)笑脸数据集(genki4k)正负样本的划分.模型训练和测试的 ...

  3. 单元测试 easymock_使用EasyMock更轻松地测试

    单元测试 easymock 测试驱动的开发是软件开发的重要组成部分. 如果未测试代码,则该代码已损坏. 所有代码都必须经过测试,理想情况下,应在模型代码之前编写测试. 但是有些事情比其他事情更容易测试 ...

  4. 测试模型 V模型 W模型(双V模型) H模型 优缺点解析

    一.测试模型概述 软件测试和软件开发一样,都遵循软件工程原理,遵循管理学原理,所以理解好软件的开发模型会便于理解测试模型. 软件测试的一般流程: 我们发现一般的软件测试流程和软件开发的流程一样,但是这 ...

  5. 【MatConvnet速成】MatConvnet图像分类从模型自定义到测试

    欢迎来到专栏<2小时玩转开源框架系列>,这是我们第10篇,前面已经说过了caffe,tensorflow,pytorch,mxnet,keras,paddlepaddle,cntk,cha ...

  6. 【darknet速成】Darknet图像分类从模型自定义到测试

    欢迎来到专栏<2小时玩转开源框架系列>,这是我们第12篇文章,前面已经说过了caffe,tensorflow,pytorch,mxnet,keras,paddlepaddle,cntk,c ...

  7. 【DL4J速成】Deeplearning4j图像分类从模型自定义到测试

    文章首发于微信公众号<有三AI> [DL4J速成]Deeplearning4j图像分类从模型自定义到测试 欢迎来到专栏<2小时玩转开源框架系列>,这是我们第九篇,前面已经说过了 ...

  8. 【chainer速成】chainer图像分类从模型自定义到测试

    文章首发于微信公众号<有三AI> [chainer速成]chainer图像分类从模型自定义到测试 欢迎来到专栏<2小时玩转开源框架系列>,这是我们第八篇,前面已经说过了caff ...

  9. 【cntk速成】cntk图像分类从模型自定义到测试

    文章首发于微信公众号<有三AI> [cntk速成]cntk图像分类从模型自定义到测试 欢迎来到专栏<2小时玩转开源框架系列>,这是我们第七篇,前面已经说过了caffe,tens ...

最新文章

  1. 一群工程师,让听障群体“看见”了声音
  2. java blender_[转载]将Blender模型展示于WEB
  3. 机器学习入门学习资源
  4. strace oracle
  5. 【今晚9点】:对话袁荣喜——一名C程序员的打怪之路
  6. 单关闭功能_广告弹窗关闭
  7. 开学了,一切都要开始了!
  8. 匿名对象与非匿名对象的区别
  9. 沙迪克UTY编程基础操作流程
  10. handlersocket php,handlersocket安装配置
  11. IEEE 会议论文的参考文献
  12. IOS 如何让你的应用快速兼容iPhone5
  13. blendshapes
  14. 去中心化自治组织DAO——Steemit社区介绍
  15. 总结了Mybatis,原来知识点也没多少嘛
  16. 不信谣,不传谣,不造谣
  17. 什么是马尔可夫决策过程
  18. Bailian2755 神奇的口袋【递归+DP】
  19. 带你快速看完9.8分神作《Effective Java》—— 序列化篇(所有RPC框架的基石)
  20. Unity3D常用游戏开发插件测评总结

热门文章

  1. Java——异常登陆模拟
  2. 网站安全公司 实习道路上的经验分享
  3. 关于StringUtils.isNotBlank使用
  4. skew width_css3skew
  5. 通达OA-进销存系统
  6. 销量300万台对乐视意味着什么?
  7. 基于Hackrf的GNSS接收机
  8. 《Python 地理数据处理》by Chris Garrard
  9. Android 多种截屏方式介绍
  10. 想快速全面了解LoRa?看这篇就够了!