• 0
  • 0
分享

这篇文章,我会基于自己的一些实践经验和经历,谈谈我对单元测试的理解和观点。

1.png

测试要做单元测试吗

首先聊聊第一个问题:测试要做单元测试吗?

我的回答:测试需要做单元测试,但要综合评估团队成员技能、个人意愿、项目迭代周期以及协作默契程度等很多因素,用合适的方法和手段在合适的时机切入,而不是一味强推。

很多测试同学往往有一个误区:只要是名字带个测试,就觉得我也要做这件事,而忽略了事物的本质。

比如验收测试,一般指的是QA同学经过多轮测试后,交付给产品同学来进行验收交付的产出物是否满足预期设计。

比如全链路压测,很多测试同学都希望自己能主导落地,但忽略了为什么做全链路压测,怎么做,落地有哪些难点,自己能否解决,需要哪些角色和团队配合。

单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证,最初都是由开发来完成,即保障自己所在的环节交付的产出物满足进入下一阶段的标准。

所以关于测试是否要做单元测试这个问题,我的观点是测试需要介入这个环节,尽可能早的去测试验证发现问题,但并不表示测试需要在这个环节什么都自己来做。

单元测试落地的挑战

接下来聊第二个问题:单元测试落地要面临哪些挑战,或者说需要考虑哪些问题?

常见的落地挑战因素有下面几点:

1、开发不知道如何写单元测试

国内大部分公司缺乏单元测试环节,甚至codereview都很缺乏,没有实践经验很难推动;

2、单元测试如何有效的进行检查

又回到了最初的问题:做了单元测试,如何有效检查单元测试的执行结果和效果表现呢?

3、如何评估和度量单元测试的质量

没有数据没办法衡量做单元测试的效果,度量的话从哪些维度和指标去评估单元测试的质量?

4、做单元测试对整个项目的交付周期是否有影响

现在的互联网行业大多迭代周期较快,做单元测试意味着需要投入一定时间,对deadline有一定影响;

5、开发个人的意愿(时间投入、个人技能、物质回报)

很简单的一个逻辑,谁愿意吃力不讨好做一件短期内没什么明显收益还没啥好处的事情?

单元测试如何有效落地

下面是我总结的过往工作经历中关于单元测试落地的一些方法,会从不同维度去实施,仅供参考。

管理

  • 提高研发对于质量保障的认可度,加强宣讲;

  • 优先选择有意愿和有精力的团队进行推广试点;

  • 自上而下推动,和OKR挂钩,并且是持续的挂钩;

  • 参与的同学在需求和工时评估方面需要做一定调整;

  • 新入职员工或新参与员工的单元测试工作由师兄负责引导实现;

协作

  1. QA和DEV针对单元测试case级别达成共识;

  2. QA和DEV在单元测试环节进行合作共建和职责边界划分;

  • QA提供用例,DEV进行实现;

  • QA提供的用例需要经过评审并通过;

  • QA进行Check和校验(度量维度和评估指标与开发达成一致);

实施

  1. 设定优先级,从P0核心模块开始实现;

  2. 覆盖范围以service核心模块,新增功能优先;

  3. 在codereview阶段,对单元测试实现情况进行检查;

  4. 需要通过实施前后不同维度的比较度量来评估能否带来收益;

  • 数据度量:覆盖率、通过率;

  • 发现bug数:线上问题、线下发现的blockbug;

  • 度量粒度:小到最底层函数级别,大到代码类方法;

  • 测试用例:单元测试的实现和度量,一定是casebycase的;

最后总结一下,为了进一步提高最终的交付质量,尽可能早的接入并发现软件系统存在的问题,测试需要做单元测试,

但要综合评估团队成员技能、个人意愿、项目迭代周期以及协作默契程度等很多因素,用合适的方法和手段在合适的时机切入,而不是一味强推。


作者:老_张

原文链接:https://www.cnblogs.com/imyalost/p/16387477.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 相信大家对Kafka不会陌生,但首先还是要简单介绍一下。Kafka是一种高性能的分布式消息系统,由LinkedIn公司开发,用于处理海量的实时数据流。它采用了发布/订阅模式,可以将数据流分发到多个消费者端,同时提供了高可靠性、高吞吐量和低延迟的特性。Kafka的应用场景非常广泛,例如日志收集、事件流处理、实时监控等。在这些场景中,Kafka可以提供高可靠性和低延迟的数据传输,确保数据的稳定性和实时性。与此同时,Kafka还提供了丰富的API和管理工具,使得用户可以方便地配置和管理Kafka集群。很多高性能方案都会用到Kafka,今天我来分享如何使用Kafka Client API进行Kafka...
            0 0 991
            分享
          • 一、压测流程可参照上篇压测对抗流程二、压测需求需要明确需要压测的环境需要压测的接口,其中包含接口的入参需要明确接口的预计qps需要明确线上机器配置三、压测准备3.1、服务端开发准备:1.根据需要测试的接口,决定需要部署哪些相关依赖服务;2.测试接口对应的服务、接口;3.相关配置;4.相关数据库;5.需要的机器整理,其中包含机器的配置,需要几台机器。3.2、前端开发准备:1.测试的接口和服务应用;2.域名;3.需要准备的机器;4.根据需要测试的接口,决定要部署哪些相关依赖。3.3、测试准备:1.准备压测的测试方案和测试计划;2.通过接口确认压测的场景,其中包含每一个接口需要测试的场景,预计接口需...
            0 0 2249
            分享
          •   作为一个技术管理者,你希望你的团队是怎样的?  说句实话,管理这方面我不太擅长,可是你要是问我,你想要一个什么样的团队,那我可以很明确的告诉你:我想一个技术不断进步,永远走在前列,工作完成得很好,组员很自觉又很团结的团队。  那你可能会问我,有这样的团队么?刚开始我也不认为会有这样的团队,因为当时自己接触的不多,受电视剧影响,总是认为团队之间是利益在维系,有什么事情都想着推脱、甩锅,出了错就不断责备。且都是表面上的平和,背地里指不定做些什么呢!  不过后来,我真的遇到过这样团结友爱的团队,所有组员就像兄弟姐妹一般,开发与测试之间也没有出现过剑拔弩张的情况。  而且我很少看到员工待不到一年就...
            0 0 724
            分享
          • 一分钟快3简单秘籍,顶尖团队导师寇QQ 9443324 带我上岸,信 誉 平 台 每个团队都有带单老师,十年经验,百分百盈利,感谢这位资深导师、非常感谢她给我机会走出来,如果没有她就没有我的今天。她的耐心,责任感强,经过这件事,让我体会到了人心贪婪真的会家破人亡!!如果我的经历能帮助到你们,或者需要帮助的,可以找回血导师扣Q9443324早日回血上岸重见光明。说感谢你在我较无助的时候拉我一把,不然我真的不知 道我以后该怎么办,怎么去还这些债务。希望还在接触 堵 的朋友,能不玩就不玩 ,如果输的不甘心的你可以去找团队导师大哥帮下忙,,看看能不能拉你一 把,希望能帮到你们早点上岸,我要去找老公,跟...
            0 0 1425
            分享
          • 读者提问:APP 兼容性测试怎么做 ?阿常回答:分为三步走:1、选取主流机型+版本;2、对主流机型做功能验证;3、选一款机型做网络兼容测试。一、选取主流机型 + 版本选取 TOP 机型+版本的几种途径:1、采用埋点的方式获取 APP 相关数据2、采用云测平台推荐的 TOP 机型+版本3、采用行业内统计的国内主流机型排行二、主流机型的功能验证选好主流机型,接着就是对每一款主流机型进行全功能验证。注意:如果 APP 需要使用到蓝牙、相册等手机自带功能,需要考虑软件与不同机型的蓝牙、相册等手机自带功能的兼容性。三、一款机型做网络测试挑选其中一款主流机型来做网络的兼容性测试。覆盖网...
            0 0 1348
            分享
      • 51testing软件测试圈微信