2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

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

关注

评论

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

MySQL8.0 优化器介绍(三)

GreatSQL

MySQL greatsql greatsql社区

MobPush Android SDK厂商通道申请指南

MobTech袤博科技

“分割一切”大模型SAM、超轻量PP-MobileSeg、工业质检工具、全景分割方案,PaddleSeg全新版本等你来体验!

飞桨PaddlePaddle

计算机视觉 飞桨 图像分割

《社区人员管理》实战案例设计&个人案例分享

京东科技开发者

架构 测试 编码 在线设计平台 企业号 4 月 PK 榜

Springboot如何手动连接库并获取指定表结构|超级详细,建议收藏

bug菌

springboot 三周年连更

通过小程序容器技术让App实现灰度发布

没有用户名丶

《设计模式之禅》Proxy_Pattern--代理模式

浅辄

设计模式 代理模式 三周年连更

跨平台图像浏览器:XnViewMP 中文激活版

真大的脸盆

Mac Mac 软件 图像查看 图像浏览

漫谈前端自动化测试演进之路及测试工具分析

京东科技开发者

前端 自动化测试 前端测试 企业号 4 月 PK 榜

MySQL到ClickHouse数据同步产品对比推荐

NineData

MySQL Clickhouse dba bifrost NineData

Java枚举和注解

timerring

Java 三周年连更

企业微信接入系列-自建应用

六月的雨在InfoQ

企业微信 应用配置 三周年连更 自建应用

SAP Emarsys 的前后台技术栈

汪子熙

SaaS Cloud SAP 思爱普 三周年连更

一篇神文就把java多线程,锁,JMM,JUC和高并发设计模式讲明白了

Java 多线程 高并发

leetcode-2335. 装满杯子需要的最短总时长

肥晨

三周年征文

全网已经疯传90多万次的java修炼指南!已帮我拿下11个大厂offer

ChatGPT,音乐,与数据库

沃趣科技

数据库 云原生 音乐 ChatGPT

如何在业务开发中使用适配器模式?

DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

汀丶人工智能

人工智能 自然语言处理 深度学习 ChatGPT

极光笔记 | 让运营“从心”出发,打造身临其境的客户体验!

极光GPTBots-极光推送

运营 消息推送 极光推送

Flink CDC 在易车的应用实践

Apache Flink

大数据 flink 实时计算

基于 Flink CDC 的现代数据栈实践

Apache Flink

大数据 flink 实时计算

Intents ,快速完成任务的最强辅助

鼎道智联

AI

实习生疑问:为什么要在需要排序的字段上加索引呢?

架构精进之路

MySQL 数据库 索引 三周年连更

Typescript-类型检测和变量的定义

格斗家不爱在外太空沉思

typescript 三周年连更

再聊 MySQL 聚簇索引

江南一点雨

Java MySQL

软件架构生态化-多角色交付的探索实践

京东科技开发者

架构 架构师 交付能力 企业号 4 月 PK 榜

缓存与数据库双写一致性几种策略分析

京东科技开发者

数据库 缓存 高并发 数据一致性 企业号 4 月 PK 榜

Spring @Import注解的使用和源码分析

Java你猿哥

Java spring import SSM框架

Karmada v1.5发布:多调度组助力成本优化

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

CentOS7 离线安装 Zabbix5.0

A-刘晨阳

Linux zabbix 三周年连更 离线安装

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