网易首页 > 网易号 > 正文 申请入驻

测试覆盖了90%的代码,为什么还漏掉了关键bug?

0
分享至

凌晨两点,一条报警短信把开发团队从床上拽起来。打开仪表盘一看,代码覆盖率稳稳停在90%,该跑的单测都跑通了。挖了四十分钟,罪魁祸首藏在没被踏过的else分支里——测试全走了一条路,另一条路连灯都没开过。

代码覆盖率这玩意儿,团队里天天念叨,但真把它用透的没几个。它量的是测试期间有多少代码被真正执行过。如果你的库里有一千行可执行代码,跑完测试触达了九百行,那行覆盖率就是90%。它是一个运行时指标,只跟踪实际运行的路径,跟代码本身长得有多危险毫无关系。跟它搭班子的静态代码分析,擅长在不执行的情况下挑出复杂度、风格、安全气味这些毛病。一个告诉你哪里可能埋着雷,另一个告诉你测试到底有没有踩到那片区域。


这里容易混淆的是“代码覆盖率”和“测试覆盖率”。很多人口中的测试覆盖率,更像是在问:我把要验证的行为都测到了没有。而代码覆盖率只管一个冰冷的数字百分之多少的语句被执行过。一个支付模块,用五个正常流程的用例可能把行覆盖率推到95%,但如果没测余额为负时怎么优雅报错,那行为层面的测试覆盖就是漏的。

光盯着行覆盖率会骗人。绝大多数工具把行覆盖率和语句覆盖率捏成一个百分比,看起来清爽,却藏住了分支、路径这些更细的盲区。假设有个判断 if (a > 0 && b > 0),你只用一个 foo(1,1) 的用例跑过去,每一行都亮了——但 else 分支上的逻辑根本没被碰过。行覆盖率满分,分支覆盖却开了天窗。所以真正有意义的做法不是追着所有指标跑,而是挑几个核心指标死磕,比如行覆盖打个底,分支覆盖查缺口,再结合函数覆盖看哪些模块压根没被测试挂上。

那怎么把力气花在值得测的地方?可以先从认证模块、数据访问层、错误处理这些命门入手。代码覆盖率最常见的价值就是揪出那些从来没跑过的路径和边缘条件,这些地方恰恰是回归缺陷和安全漏洞最爱的藏身处。与其凑一个漂亮的全量数字,不如让关键链路做到“每个分支都有你测过的痕迹”。

下次再看覆盖率面板,别只盯着那个百分数点头。问一句:剩下那一点点没覆盖的,到底长在哪些 if 的后半段?那才可能是下一次凌晨报警的起点。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
国家一级女演员陈丽云被逮捕!

国家一级女演员陈丽云被逮捕!

许三岁
2026-03-28 09:24:30
几乎全是假货,利润高达2400%,为啥消费者还前赴后继争抢购买?

几乎全是假货,利润高达2400%,为啥消费者还前赴后继争抢购买?

云景侃记
2026-07-24 19:12:19
“还不如贾浅浅!这分明是一篇日记啊”!汤家凤怒批海南作协副主席的现代诗,引热议

“还不如贾浅浅!这分明是一篇日记啊”!汤家凤怒批海南作协副主席的现代诗,引热议

火山詩话
2026-07-23 07:57:53
太强了!中国24岁新人轰出第三杆147,差点追上奥沙利文纪录

太强了!中国24岁新人轰出第三杆147,差点追上奥沙利文纪录

里芃芃体育
2026-07-24 00:30:05
再过一年养老真要变天!退了的、上班的、跑外卖的,都给我听两句

再过一年养老真要变天!退了的、上班的、跑外卖的,都给我听两句

朗威谈星座
2026-07-24 09:02:37
绝望4分钟!俄军两大王牌导弹横扫乌防线,普京忍了8年终于爆发

绝望4分钟!俄军两大王牌导弹横扫乌防线,普京忍了8年终于爆发

青青衫书生
2026-07-24 19:21:21
乌克兰对俄罗斯本土的轰炸,造成了俄罗斯多少损失?

乌克兰对俄罗斯本土的轰炸,造成了俄罗斯多少损失?

高博新视野
2026-07-24 18:13:20
22年,北京老虎被母狗养大,老虎成年后,对狗妈妈的态度令人吃惊

22年,北京老虎被母狗养大,老虎成年后,对狗妈妈的态度令人吃惊

兰姐说故事
2025-01-19 10:10:03
为什么你的AI编程总在烧钱?鹅厂总结了这几个烧Token的大坑

为什么你的AI编程总在烧钱?鹅厂总结了这几个烧Token的大坑

我是一个粉刷匠2
2026-07-23 20:56:59
水利部:坚决拥护党中央决定

水利部:坚决拥护党中央决定

政知新媒体
2026-07-23 23:12:05
广西一公园大树突然倒塌砸中多位路人,殡仪馆称接到3名遗体

广西一公园大树突然倒塌砸中多位路人,殡仪馆称接到3名遗体

映射生活的身影
2026-07-23 20:26:32
港股半导体板块涨幅扩大 澜起科技涨超9%

港股半导体板块涨幅扩大 澜起科技涨超9%

每日经济新闻
2026-07-24 13:28:08
50岁蒋勤勤穿搭太放开,“挂空挡”造型尽显大方底气

50岁蒋勤勤穿搭太放开,“挂空挡”造型尽显大方底气

舊事別提
2026-06-22 10:55:00
贫困女大学生每天一杯9块9瑞幸,被同学蹲守37天实名举报!冤吗?

贫困女大学生每天一杯9块9瑞幸,被同学蹲守37天实名举报!冤吗?

皮蛋儿电影
2026-07-23 19:10:05
中国男篮决战喀麦隆,首发阵容大调整,郭士强重要表态引争议

中国男篮决战喀麦隆,首发阵容大调整,郭士强重要表态引争议

宗介说体育
2026-07-24 11:25:49
台风“红霞”路径最新预测:将于25日晚上到26日早晨在广东潮州到深圳沿海登陆

台风“红霞”路径最新预测:将于25日晚上到26日早晨在广东潮州到深圳沿海登陆

新浪财经
2026-07-24 19:31:32
5800万年轻人不交社保了:断缴的不是懒惰,是生存的算术

5800万年轻人不交社保了:断缴的不是懒惰,是生存的算术

互联网大观
2026-07-21 10:03:18
网传71岁敬一丹去世,博主发文悼念后删帖,还称抢救了一个多月,评论区吵翻了!

网传71岁敬一丹去世,博主发文悼念后删帖,还称抢救了一个多月,评论区吵翻了!

谭谈社会
2026-07-24 14:45:33
国台办发统一强音,12小时内郑丽文请南投女神出山,对赖称呼变了

国台办发统一强音,12小时内郑丽文请南投女神出山,对赖称呼变了

离离言几许
2026-07-24 18:41:42
孙浩窦骁王晓晨共品油泼面,窦骁豪爽笑容引鱼尾纹

孙浩窦骁王晓晨共品油泼面,窦骁豪爽笑容引鱼尾纹

云深不知在何处
2026-07-23 08:04:10
2026-07-24 22:36:49
像素与芯片
像素与芯片
有态度网友ytd
507文章数 53关注度
往期回顾 全部

科技要闻

中国等了90年,王虹邓煜同时摘下菲尔兹奖

头条要闻

浙江一幼儿园女生走光照片被选入毕业相册 家长发声

头条要闻

浙江一幼儿园女生走光照片被选入毕业相册 家长发声

体育要闻

小布泽:越看越不像他爸爸

娱乐要闻

张凌赫公主抱王楚然,比工业糖精好嗑

财经要闻

长鑫科技会成为下一个“中石油”吗?

汽车要闻

吉利的方盒子:来晚了,但打磨得刚好

态度原创

手机
亲子
本地
公开课
军事航空

手机要闻

格科微:高像素图像传感器产品获国际手机品牌订单

亲子要闻

人生最烂的牌不是贫穷也不是欠债!

本地新闻

跟着影视去旅行:西游篇

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

特朗普威胁对伊发动空前打击 伊朗、胡塞武装强势回应

无障碍浏览 进入关怀版