测试要做单元测试吗

首先聊聊第一个问题:测试要做单元测试吗?
我的回答:测试需要做单元测试,但要综合评估团队成员技能、个人意愿、项目迭代周期以及协作默契程度等很多因素,用合适的方法和手段在合适的时机切入,而不是一味强推。
很多同学有一个误区:只要是名字带个测试,就觉得我也要做这件事,而忽略了事物的本质。
比如验收测试,一般指的是QA同学经过多轮测试后,交付给产品同学来进行验收交付的产出物是否满足预期设计。
比如全链路压测,很多测试同学都希望自己能主导落地,但忽略了为什么做全链路压测,怎么做,落地有哪些难点,自己能否解决,需要哪些角色和团队配合。
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证,最初都是由开发来完成,即保障自己所在的环节交付的产出物满足进入下一阶段的标准。
所以关于测试是否要做单元测试这个问题,我的观点是测试需要介入这个环节,尽可能早的去测试验证发现问题,但并不表示测试需要在这个环节什么都自己来做。

单元测试落地的挑战

接下来聊第二个问题:单元测试落地要面临哪些挑战,或者说需要考虑哪些问题?
常见的落地挑战因素有下面几点:
1、开发不知道如何写单元测试
国内大部分公司缺乏单元测试环节,甚至code review都很缺乏,没有实践经验很难推动;
2、单元测试如何有效的进行检查
又回到了最初的问题:做了单元测试,如何有效检查单元测试的执行结果和效果表现呢?
3、如何评估和度量单元测试的质量
没有数据没办法衡量做单元测试的效果,度量的话从哪些维度和指标去评估单元测试的质量?
4、做单元测试对整个项目的交付周期是否有影响
现在的互联网行业大多迭代周期较快,做单元测试意味着需要投入一定时间,对deadline有一定影响;
5、开发个人的意愿(时间投入、个人技能、物质回报)
很简单的一个逻辑,谁愿意吃力不讨好做一件短期内没什么明显收益还没啥好处的事情?

单元测试如何有效落地

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

管理

提高研发对于质量保障的认可度,加强宣讲;
优先选择有意愿和有精力的团队进行推广试点;
自上而下推动,和OKR挂钩,并且是持续的挂钩;
参与的同学在需求和工时评估方面需要做一定调整;
新入职员工或新参与员工的单元测试工作由师兄负责引导实现;

协作

QA和DEV针对单元测试case级别达成共识;
QA和DEV在单元测试环节进行合作共建和职责边界划分;
QA提供用例,DEV进行实现;
QA提供的用例需要经过评审并通过;
QA进行Check和校验(度量维度和评估指标与开发达成一致);

实施

设定优先级,从P0核心模块开始实现;
覆盖范围以service核心模块,新增功能优先;
在code review阶段,对单元测试实现情况进行检查;
需要通过实施前后不同维度的比较度量来评估能否带来收益;
数据度量:覆盖率、通过率;
发现bug数:线上问题、线下发现的block bug;
度量粒度:小到最底层函数级别,大到代码类方法;
测试用例:单元测试的实现和度量,一定是case by case的;

总结

为了进一步提高最终的交付质量,尽可能早的接入并发现软件系统存在的问题,测试需要做单元测试,但要综合评估团队成员技能、个人意愿、项目迭代周期以及协作默契程度等很多因素,用合适的方法和手段在合适的时机切入,而不是一味强推。

测试需不需要单元测试相关推荐

  1. 推荐10款测试员常用的单元测试工具

    前言 随着DevOp的不断流行,自动化测试慢慢成为Java开发者的关注点.因此,本文将分享10款优秀的单元测试框架和库,它们可以帮助Java开发人员在其Java项目上编写单元测试和集成测试. 1. J ...

  2. 光缆单盘检测与光缆线路测试需使用双窗口吗?

    1 引言 光缆线路和宽带接入工程中,通常会涉及光缆单盘检测与光缆线路的测试工作,光缆线路测试包括:中继段测试.用户光缆测试等.这些测试条目,有的只需采用测试仪表的1个波长进行测试,即单窗口测试,有的则 ...

  3. APP测试常见闪退bug以及、测试需关注点

    APP测试常见闪退bug以及.测试需关注点 一. app出现闪退的原因: 1.空指针:对象没有初始化就使用了: 2.空函数:有事件源但没有对应的事件对象: 3死循环:没有合理的循环控制流: 4.内存泄 ...

  4. 自动化测试(一)基本介绍——测试框架的分类 单元测试工具 E2E测试工具

    自动化测试(一)基本介绍--测试框架的分类 & 单元测试工具 & E2E测试工具 5-3 自动化测试 课程介绍 在前端界,浏览器兼容性是让工程师们头疼的问题,对于经验丰富的人来说,很清 ...

  5. 重读《从菜鸟到测试架构师》-- 单元测试测点啥

    上回说到,小艾写了一段产品代码,却由于未做好单元测试而导致过多细微的bug流入到了功能测试阶段,经过组长一番谆谆教诲,小艾明白了单元测试是什么,谁来做单元测试以及为什么要做单元测试,可是对于单元测试测 ...

  6. 机器学习中qa测试_机器学习自动化单元测试平台

    机器学习自动化单元测试平台.零代码.全方位.自动化测试方法/函数的正确性和可用性. 原理 后端不需要写任何单元测试代码(逻辑代码.注解代码等全都不要), 这个工具会自动生成测试参数,并执行方法,拿到返 ...

  7. 新手学测试----Unit Test(单元测试)

    在程序员做项目的过程中,每当完成一个功能,首先自己需要对完成的功能进行测试,我现在正在做的项目用的工具是VS2012,那么接下来,就说一说在VS2012中是如何创建单元测试的. 如何创建单元测试? 在 ...

  8. vue 脚手架测试环境_关于单元测试脚手架的几点思考

    vue 脚手架测试环境 莱昂:Luc Besson的专业人士 当我开始通过创建相同的对象并准备用于运行测试的数据来重复进行单元测试方法时,我对设计感到失望. 带有大量代码重复的长测试方法看起来并不正确 ...

  9. android studio如何编译测试,Android Studio 进行单元测试完整教程

    前言 为了这个AndroidStudio的单元测试,从下午搞到晚上才搞明白咋操作. 我学一个新知识总是那么坎坷,经历无数的错误路径,才可能找到正确的路在哪儿. 我的AndroidStudio 我的An ...

最新文章

  1. mysql数据库优化课程---15、mysql优化步骤(mysql中最常用最立竿见影的优化是什么)...
  2. React Native填坑之旅--动画篇
  3. 【转】grep搜索子目录中包含某字符串的特定文件
  4. 初始python(二)
  5. 关于ASP.NET未能映射路径问题
  6. 程序集信息设置.net
  7. 【eclipse】安装 Gradle 插件
  8. 解决 GDI 贴图的闪烁
  9. Spring Boot-------JPA——EntityManager构建通用DAO
  10. 加速编程效率,你不知道的IDEA功能设置
  11. Node.js:连接 MySQL
  12. 【Tensorflow】【损失函数】交叉熵数据验证(上)---CategoricalCrossentropy多分类
  13. 对象取值操作Object.values()
  14. 牛听听 总是获取音频流出错_又开学了!是时候提醒孩子背诵小学英语必背单词(含音频)...
  15. 【Java3D】Java3D的Demo
  16. wpsa3版面怎么变成a4、排版不变_怎么把wpsa3转变成a4
  17. JavaScript制作游戏摇杆方向盘
  18. Python智能机械助理
  19. 华为鸿蒙新闻短评,科技圈“某高管”发表对华为鸿蒙的看法,遭网友回怼
  20. 谈谈如何判断一个Pop序列是否是一个Push序列的Pop顺序

热门文章

  1. 实现x轴两端对齐操作
  2. 成都IT培训多少钱_IT培训要多久?
  3. IC前端:解决CDC
  4. FastAPI之挂载应用程序
  5. `算法知识` 笛卡尔坐标系, 边长与边权, 曼哈顿距离, 欧几里得距离,外接矩形
  6. [附源码]计算机毕业设计Node.js企源饮料销售网站(程序+LW)
  7. GeoMesa源码学习:空间索引
  8. IDEA 2020 创建Maven项目
  9. Window10升级遇到大坑错误代码:0xc000000e完美解决方案
  10. 面试官:你说一说MySQL查询慢应该怎么办?