• 0
  • 0
分享

写作单元测试代码的好处

  • 熟悉单元测试技术,了解相关的基本原理;

  • 掌握代码,积累代码编写经验,积累调试经验,积累分析问题、解决问题的经验;

  • 训练动手能力,单元测试代码不是业务代码,开发、维护过程中不需要特别关注质量要求,底限是达到验证业务代码逻辑性的目的,因而比修改代码要省心、省事;

  • 不需要准备项目运行环境,单元测试代码在运行时的外部依赖比较少,执行验证、调试代码的代价会很低;

  • 降低新手程序员进入项目的门槛,有助于积累信心。

项目过程中写单元测试的好处

  • 一边写代码,一边检查代码中的小错误或者小疏忽,提前解决代码中可能存在的笔误;

  • 为了让单元测试代码更好写,需要花点心思在思考类和方法的结构,好处是可以有效的提升代码的可测试性,否则设计和结构不理想时,单元测试代码写作时也会比较麻烦,需要打很多桩;

  • 在集成测试前,有机会做验证模块内部的逻辑正确性,避免在联调时花费过多的时间来解决小问题,提高联调的效率;

  • 单元测试代码对运行环境依赖小,不需要特别准备复杂的环境,外部模块的行为和表现是可控制的,易于模拟异常场景;

  • 记录已实现的特性,代码即是最好的文档,设计良好的单元测试代码有助于后续维护,降低后期修改引入问题的可能性。

维护或者学习代码过程中写单元测试的好处

  • 熟悉已有代码的逻辑,变量的变化方式,代码的运行轨迹,提高学习代码的效率,降低通过看代码来学习代码的负担;

  • 帮助重构,提高重构的成功率;

  • 辅助问题分析,遇到问题时,可以借助分析单元测试代码来了解模块的一般行为。

单元测试的缺点

  • 单元测试并不万能,并不能解决所有问题,受限于测试范围和场景以及数据,只能满足单模块内部的功能验证的需求;

  • 单元测试覆盖分支,系统测试覆盖场景,二者可能存在重叠,另由于着眼点不同,二者不能相互替代,测试覆盖率有不同的含义;

  • 部分之和不等于整体,单纯追求覆盖率是可笑的,覆盖率只是衡量测试投入的指标,和代码质量并没有直接的关联,另外当覆盖率达到一定程序之后,继续提升覆盖率时投入和产出可能不成正比,效益可能会下降;

  • 同样,单元测试用例数目和代码行之间的比率高也不能说明代码质量一定好;

  • 不能解决或者发现模块可靠性、性能相关、多线程访问相关的问题,这几类问题还是要从设计上分析,编码时注意,单元测试在应对这几类问题前面效果不好;

  • 已有的单元测试代码也需要投入时间和人力来维护,特别是业务变更频繁或者其它原因导致的业务代码频繁变更,同步维护单元测试代码就是一个噩梦;

  • 如果项目需要开发人员写作单元测试,则在项目计划时要充分考虑团队中成员的能力,为单元测试代码开发预留时间,否则美好的愿望最终将无法实现。


作者:小南家的青蛙

原文链接:https://blog.csdn.net/jackie_xiaonan/article/details/10286227

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   51Testing测试行业调查问卷得不得填一下吧。这套问卷能够对未来的行业发展趋势做出权威的分析,只要点击链接http://vote.51testing.com/参与,还能获得实用软件测试资料。  软件测试岗位的从业者的主要工作内容就是,依据需求文档编写[测试用例],还要完成产品的测试并跟踪反馈。因此,测试工作者不需要有开发人员那样的极强的编程技术,但是也需要具备一定的软件测试知识和能力。简单来讲,开发要求技术的深度,测试要求技术的广度。不过随着软件测试行业的发展,对软件测试的任职要求有了新的变化。下面我们从硬实力和软实力两方面来讲。  软件测试岗位的任职要求  一、软件测试岗位的硬实力:...
            0 0 1254
            分享
          •   继猎豹移动CEO傅盛与金沙江创投董事总经理朱啸虎“互怼”后,朱啸虎又发了朋友圈解释了一番。  他表示,昨天的对话造成很多误解,其实我们应该是国内垂直AIGC真正出手最多的早期投资人(这句话在对话中被故意删掉了)。  其核心观点为不要迷信通用大模型,“明年3.5就成commodity,3年后4也将是commodity!对于大部分创业者,场景优先,数据为王!”朱啸虎称。作者:佚名原文链接:新浪科技_新浪网(sina.com.cn)
            0 0 974
            分享
          • 本文提供了一种轻巧的内存泄漏测试方法及其python实现,该方法在Lenovo Bamboo系统的验收测试活动中得到过诸多检验,是一种易用有效的内存泄漏测试方法。一、内存泄漏测试原理1、内存泄漏的危害。内存泄漏的危害不必多说,会导致系统的可用内存越来越少,影响系统长时间运行的稳定性。2、常用的内存泄漏测试方法一般而言,可概括为两种思路:1)内存分配、释放工具检查如valgrind等内存测试工具。2)Linux系统性能监测如zabbix等linux性能监测工具,以及团队自研的检测linux性能的工具。在方法一中,工具的原理一般是通过检查当程序动态分配内存后,是否有释放来判断有没有发生内存泄漏。其...
            1 2 1907
            分享
          •        最近正在编写selenium webdriver自动化框架,经过几天的努力,目前基本已经实现了一套即能满足数据驱动、又能满足Web关键字驱动的自动化框架(主要基于 ant+jenkins+testng+selenium webdriver+jxl实现)。通过这次的自动化框架开发,我深刻的发现了webdriver的强大,甚至我们可以看到阿里巴巴的F2etest浏览器兼容性测试平台也是基于webdriver。以下特别转载了一篇关于selenium webdriver的介绍,让我们从深层次理解webdriver:    &nb...
            0 0 708
            分享
          •   十年测试心路历程:  由于历史原因,大部分测试人员,最开始接触都是纯功能界面测试,随着工作年限,会接触到一些常用测试工具,比如抓包,数据库,linux等。  我大学学的计算机专业,有一定的编程基础。我的软件测试职业开始和大多数测试人员一样,一开始在一家电商公司做软件功能测试。有人留言问到我,在一线城市做功能测试,如果定个小目标,想拿到年薪二十万,需要具备哪些技能?  首先必须熟练整个产品的业务流程、业务是基础,这样保证产品在快速迭代时、不仅保证新功能的完整性,而且快速回归原有功能不受影响。然后需要掌握一些常用测试工具来辅助测试:  Web端测试:浏览器开发者工具使用,network、con...
            0 0 871
            分享
      • 51testing软件测试圈微信