9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

讨论:测试用例的粒度——粗细之争

  • 2010-08-05
  • 本文字数:1170 字

    阅读完需:约 4 分钟

测试用例的粒度一直是软件测试领域的热点问题,无论是粗粒度还是细粒度,都各有利弊。最近,淘宝测试团队针对该问题举行了内部辩论会,相关内容值得借鉴和思考。

正方观点:测试用例的粒度应该细点,主要体现测试细节。主要论据:

  1. 测试用例的编写就像是织网,而 BUG 就像是鱼,网织得越密,捕捉到的 BUG 就越多。
  2. 测试思想的学习并不是一蹴而就的。对一个新人来说,这种学习是一个渐进的过程,具体到每个项目,更需要用更精细的用例来保证测试的覆盖率。
  3. 设计详细的用例便于执行,便于新人理解,便于知识传承。

反方观点:测试用例的料度应该粗点,主要体现测试思想。主要论据:

  1. 粗并不等于简单。测试用例的粒度粗点,是建立在我们对需求完全理解,对设计完全掌握的基础上的粗粒度。这样我们可以避免繁琐的流程,提高测试执行的效率,把握重点需求。测试粗粒度可以避免陷入机械性的测试。
  2. 粗粒度的测试设计可以使我们把重点关注于设计,可以让测试往前走,在时间,资源有限的情况下,更高效地进行测试,保证产品质量。

随后,双方展开了自由辩论,其中不乏精彩的言论:

反方:思想就像大脑,测试用例是骨骼。在时间有限,资源有限时,必须要有所取舍,抓住主干测试,所以我们会追求白盒覆盖率而不是路径覆盖率。测试技能的提高是测试思想的不断丰富,测试手段的不断完善,而不是用例越写越细。 正方:在测试领域有 8:2 原则,80% 的 bug 源于经常修改的 20% 代码,测试用例的数量提升有利于减少这种 bug 遗漏。并且,越精细的用例越便于定位 BUG。

反方:就是因为我们的用例过细,导致在时间,资源紧张的情况下,导致覆盖率低,没有发现尽可能多的 BUG,相反,如果我们在测试设计的时候,放得粗,可以把主要精力放在测试思想上,这样就可以提高测试覆盖率,发现更多的 BUG。测试用例的设计要先搭一个整体的框架,然后再逐步完善。

最后,评委做了总结发言:

…从管理者角度来看,还是希望测试用例的粒度细点好。 测试用例的粒度取决于项目质量的要求、时间的要求、用户的要求。如果时间充足,就可以把用例写细一些,时间紧张,就写粗些。有个词叫测试艺术家。就是要我们掌握质量与效率之间的平衡。

我们的用例不管是细还是粗,它都是为了达到最终目的——保证产品质量。测试用例写粗点还是细点,可以用一个例子来说明。当我们刚学车的时候,什么时候打方向盘,什么时候踩离合,什么时候踩油门。都需要教练一步步教,要一步步来,这些都很明确的。当开车有一段时间后,什么情况下要做什么动作都会很自然,一气呵成。当我们的新人在进行测试的时候,需要很明确地知道怎么做,这时候用例就得细些。当成为一个很熟练的测试工程师的时候,设计用例时就不必纠结于这些细节了。每个阶段不同,做事方式就不同,只要满足结果就好。

淘宝内部辩论会结束了,但是对于测试用例的粒度的研究还在持续,读者对于这个问题怎么看?欢迎加入到讨论中!

2010-08-05 21:3138094
用户头像

发布了 501 篇内容, 共 277.7 次阅读, 收获喜欢 63 次。

关注

评论

发布
暂无评论
发现更多内容

最新出炉!深度解读《中国DevOps现状调查报告(2022)》

嘉为蓝鲸

DevOps

对话彩生活:“互联网+物业”数智化转型的BI应用实践

观远数据

企业号九月金秋榜

干货 | 通用 api 封装实战,带你深入理解 PO

霍格沃兹测试开发学社

详解 OpenDAL |Data Infra 研究社第三期

Databend

线上直播 大数据 开源 databend OpenDAL Datafuse Labs

使用 vue 开发 YonBuilder移动开发应用的教程

YonBuilder低代码开发平台

荣耀智慧服务开发者扶持计划,百亿曝光你心动了吗?

荣耀开发者服务平台

小程序 大数据 卡片服务 快应用 荣耀

服务网格 实现超时和重试

CTO技术共享

正则表达式中使用-的一个小坑

agnostic

正则表达式

Docker 容器网络配置

CTO技术共享

没有一个顺手的流程绘制工具?好吧,自己动手,丰衣足食!

江南一点雨

Java springboot BPMN

渗透测试 vs 漏洞扫描:差异与不同

SEAL安全

网络安全 渗透测试 软件安全 软件供应链安全

测试右移之logstash完整配置实例

霍格沃兹测试开发学社

支持公有云/私有云平台运维监控工具哪个好?怎么操作?

行云管家

云计算 运维 自动化 云运维

技术分享 | 学做测试平台开发-Vuetify 框架

霍格沃兹测试开发学社

openGauss内核分析:执行计划生成

华为云开发者联盟

数据库 后端

设计模式的艺术 第三章单例设计模式练习(设计一个数据库连接池,能自行提供指定个数实例对象的数据库连接类)

代廉洁

设计模式的艺术

测试左移之Sonarqube scanner使用

霍格沃兹测试开发学社

技术分享 | 测试平台开发-前端开发之Vue router路由设计

霍格沃兹测试开发学社

物联网设备上云难?华为云IoT帮你一键完成模型定义,快速在线调试设备

华为云开发者联盟

后端 物联网 华为云

测试左移之Sonarqube maven项目分析

霍格沃兹测试开发学社

技术分享 | Frida 实现 Hook 功能的强大能力

霍格沃兹测试开发学社

建木×GitLink,解锁高效开发新体验

Jianmu

DevOps 持续集成 CI/CD 自动化运维 建木

从 “搞不清楚” 到 “都明白了” 的费曼

图灵社区

量子力学 物理学家

从 “搞不清楚” 到 “都明白了” 的费曼

图灵教育

量子力学 物理学家

韶关等保测评公司地址在哪里?电话多少?

行云管家

等保 等保测评 韶关

Python实战之用内置模块来构建REST服务、RPC服务

山河已无恙

RPC REST API Python.

kube-schedulersimulator 模拟调度器环境

CTO技术共享

我是一个垃圾

蝉沐风

JVM 老年代 垃圾回收 GC 新生代

技术分享 | 跨平台API对接(Java)

霍格沃兹测试开发学社

技术分享 | 想测试入门就必须要懂的软件开发流程

霍格沃兹测试开发学社

技术分享 | 一步一步学测试平台开发-Vue restful请求

霍格沃兹测试开发学社

讨论:测试用例的粒度——粗细之争_Java_崔康_InfoQ精选文章