【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

  • 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:3137571
用户头像

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

关注

评论

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

【文本检测与识别-白皮书】第二章:文本检测与识别技术发展历程

合合技术团队

人工智能 文字识别 OCR

现代化车企——零束科技DevOps研发数字化体系建设实践

嘉为蓝鲸

#DevOps #研发 #汽车 #科技

Ventana Research|是时候把指标中台纳入企业数据架构了!

Kyligence

数据架构 数据管理 指标中台

你看过字符画吗?用 Python 自己实现一个吧

梦想橡皮擦

9月月更

YYEVA动效播放器--动态元素完美呈现新方案

百度Geek说

移动端 企业号九月金秋榜 动画特效 AE插件

大数据培训和大学相关专业哪个更好

小谷哥

5 行 Python 爬虫代码,就能采集每日资讯@_@

梦想橡皮擦

9月月更

Seal 软件供应链防火墙 v0.2 发布,提供依赖项全局洞察

SEAL安全

DevSecOps 开源安全 软件供应链 软件供应链安全 软件供应链防火墙

三三复制公排互助系统开发技术详情

开发微hkkf5566

用区块链思维让可信数据流动起来

旺链科技

区块链 产业区块链 供应链金融 企业号九月金秋榜

北京Java培训收费标准是什么

小谷哥

惊艳!阿里内部JDK源码剖析知识手册,由浅入深堪称完美

了不起的程序猿

Java 编程 程序员 jdk源码 JAVA开发

想要优化K8S集群管理?Cluster API帮你忙 | K8S Internals系列第5期

BoCloud博云

云原生 容器云 K8s 多集群管理

4步成功将三方库——speexdsp移植到OpenHarmony

OpenHarmony开发者

OpenHarmony

这篇文章教会我用 Python 读取 PDF 文件【收藏即会】

梦想橡皮擦

9月月更

Vue入门指北——渲染函数和jsx

Augus

Vue 9月月更

跨模态学习能力再升级,EasyNLP电商文图检索效果刷新SOTA

阿里云大数据AI技术

深度学习 PyTorch 图文检索 企业号九月金秋榜

前端培训学习哪种方式比较靠谱

小谷哥

Python 中的 super 函数怎么学,怎么解?

梦想橡皮擦

Python 9月月更

新来个阿里 P7,仅花 2 小时,撸出一个多线程永动任务,看完直接跪了,真牛逼!

程序知音

BGP劫持原理及如何防御

郑州埃文科技

网络安全 BGP 安全防御

都 2022 年了,你真的会用 Python 的 pip 吗?

梦想橡皮擦

9月月更

Vue入门指北——css中的js变量

Augus

Vue 9月月更

前端培训学习有哪值得注意的呢?

小谷哥

什么是架构,什么是架构师?

源字节1号

软件开发 软件架构

阿里P8手写Spring Cloud Alibaba实战学习手册,架构师养成必备

Geek_0c76c3

Java 数据库 开源 程序员 架构

因为K8s,阿鹏遇到了人生中第一次职业危机....

嘉为蓝鲸

#运维

Python 几行代码实现一键抠图,收费应用 BYEBYE

梦想橡皮擦

9月月更

Vue3入门指北(一)组件API风格

Augus

Vue 9月月更

ShareSDK HarmonyOS集成指南

MobTech袤博科技

sdk HarmonyOS

中秋发祝福?一套程序让你成为【相亲相爱一家人】群里最靓的仔

梦想橡皮擦

Python 9月月更

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