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

初级测试和高级测试,差的不是工具,是这7个习惯

0
分享至

刚入行时我以为,高级测试工程师厉害在“会得多”——更牛的框架、更花哨的 mock、更高级的压测。我拼命学这些,以为学会就能升级。

后来我跟一群真正的测试老兵共事。我发现他们的用例,一点都不炫。

但奇怪的是——需求变了一轮又一轮,别人用例改崩了,他们的用例永远稳稳跑通,每次都能精准截住回归 Bug。



后来我才明白:初级和高级的差距,根本不在“会多少工具”,而在 7 个习惯。跟用 Pytest 还是 JUnit 没关系,它们决定的就三件事——漏测多不多、报错好不好查、用例别人接手要花多久看懂。

下面这 7 条,每一条配一个真实业务场景,一起来康康。



习惯1、先把“不满足条件”的情况拦在外面

场景:你要测试“退款”功能。前提是:订单已支付、而且还没退过。

新手常常这么写——像套娃一样,每个条件套一层:

def 测试退款():
订单 = 创建订单()
if 订单存在:
支付(订单)
if 订单状态 == "已支付":
if 订单没退过:
退款(订单)
assert 退款成功
else:
报错("已退过")
else:
报错("没支付")
else:
报错("没订单")

刚写完觉得没问题。但后来产品说要加“风控检查”,你再套一层;再过两周加“优惠券退回”,又套一层。最后真正干活的“退款”那行代码被埋在最里面,你自己过两个月回来看都得懵。

高级测试怎么干?反过来——把不满足条件的全部先踢出去:

def 测试退款():
订单 = 创建订单()
assert 订单 is not None, "订单都没生成,跑啥?"
支付(订单)
assert 订单状态 == "已支付", "没付钱不能退"
assert 订单没退过, "重复退了,兄弟"
# 走到这里,说明前面都OK,放心测
退款(订单)
assert 退款成功

TIPS: 前置条件先卡死,主逻辑顶格写,谁看都清楚。

习惯2、给测试用例起个备注名字

场景:你要测“给有效订阅用户发续费提醒”。

新手经常写:

def test_1():
...

半年后你自己看都不知道这是测什么。更可怕的是,跑完自动化测试,报告里一堆 test_1、test_2,失败了都不知道是哪个业务场景挂了。

高级测试这么写名字——直接用业务场景当名字:

def test_给有效订阅发续费提醒_应该成功():
...
def test_给过期订阅发续费提醒_应该跳过():
...

TIPS: 用例名就是你的报告,要让人一眼看懂测的是什么业务。

习惯3、在“外部依赖”外面包一层,别硬编码

场景:你的测试要模拟微信支付的回调。

新手直接硬写:

def 测试微信回调():
请求数据 = {
"user_name": "张三",
"status": "ACTIVE"
}
调用接口(请求数据)
assert 返回成功

一个用例这么写没事,十个用例都这么写就有事了。突然有一天微信把字段名 user_name 改成了 userName,你的十个用例全挂,一个一个改到吐血。

高级测试怎么做?在外面包一个“翻译函数”:

def 造微信数据(用户):
return {
"user_name": 用户.名字, # 如果微信改名,我只改这一行
"status": 用户.状态
}
def 测试微信回调():
请求数据 = 造微信数据(测试用户)
调用接口(请求数据)
assert 返回成功

TIPS: 外部的东西变数大,用一层函数隔开,你的测试代码就稳了。

习惯4、别让“不可能存在”的订单状态出现在测试里

场景:你要测试退款,需要各种状态的订单。

新手图省事,用个字典,所有字段都可填可不填:

订单 = {
"id": None,
"状态": "已支付",
"已退款": False
}

因为全是可选的,你随便乱组合都行。结果有一天你手滑造了一个“已退款”但“状态”还是“已支付”的怪物订单,测试居然跑过了,但线上真实逻辑根本不会出现这种组合,结果漏测了一个严重 Bug。

高级测试会怎么干?用工厂函数,只生成“合法的”订单:

def 造已支付订单():
return 订单(id=生成ID(), 状态="已支付", 已退款=False)
def 造已退款订单():
return 订单(id=生成ID(), 状态="已退款", 已退款=True)

这样你测试退款时,只能传“已支付订单”,你传“已退款订单”的话,写代码时就会报错(或者断言失败),根本轮不到上线才发现。

TIPS: 让测试数据只允许合法的状态,错误在写的时候就暴露,比线上炸了再查强一万倍。

习惯5、把“期望结果”算清楚,和“实际操作”分开来

场景:测试退款成功后,账户余额对不对。

新手这么写:

def 测试退款():
订单 = 造已支付订单(金额100)
退款(订单)
assert 账户余额 == 100 - 手续费 # 这里直接算,但手续费规则可能变

如果手续费计算规则改了,你得改所有测试里的断言,烦不烦?

高级测试会单独写一个“计算期望”的函数:

def 计算退款后余额(原金额, 费率=0.006):
return 原金额 - 原金额 * 费率
def 测试退款():
订单 = 造已支付订单(金额100)
退款(订单)
期望余额 = 计算退款后余额(100)
assert 账户余额 == 期望余额

这样,如果手续费规则变了,我只改一个函数,所有用到这个计算的测试自动跟着变。

TIPS: 把“算期望”和“执行操作”分开,你的测试更好维护,也更容易单独验证规则对不对。

习惯6、测试失败时,让报错信息出提示

场景:你断言接口返回 200,结果返回了 500。

新手报错就是一句话:

AssertionError: assert 500 == 200

你看到这个信息能干嘛?只能去翻日志,猜是哪个订单、什么参数、为什么失败。半夜出问题,简直想哭。

高级测试会这样写断言——把上下文全带出来:

def 断言退款成功(响应, 订单):
if 响应.status != 200:
raise AssertionError(
f"退款失败!订单号:{订单.id},状态:{订单.状态},"
f"请求参数:{请求数据},返回内容:{响应.text},"
f"追踪ID:{响应.headers.get('X-Request-Id')}"
)

这样一失败,你立刻知道是哪个订单、发了什么、返回了什么,拿着追踪 ID 去日志里一搜,分分钟定位问题。

TIPS: 别让你的断言只输出“对还是错”,要让失败信息自带诊断报告。

习惯7、提交测试代码时,一次只干一件事

场景:你完成了一个退款功能,跑通了,很开心,提交了一个 PR,里面塞了:

  • 新增退款测试
  • 改动了订单工厂
  • 顺手重构了登录测试
  • 更新了配置文件
  • 加了个风控测试

审查你代码的同事一脸懵:哪些改动是必须的?哪些是顺手改的?万一出问题要回滚,一撤销把登录测试也给撤了,那不乱套?

高级测试会把这些拆成好几个小 PR:

  1. 第一个 PR:只重构订单工厂(不改任何测试结果)
  2. 第二个 PR:只新增退款测试(依赖第一个)
  3. 第三个 PR:只加风控测试(独立)
  4. 第四个 PR:清理旧配置(独立)

每个 PR 讲一个清楚的故事:“我改了啥,为啥改,对测试有什么影响”。审查的人看得清楚,出问题回滚也安全。

TIPS: 代码不是在你电脑上跑通了就算完,而是要“别人能看懂、能审查、能安全回滚”才算完。

别急着学那些高大上的工具。从今天起,写下一个测试用例时,挑一个习惯用上。半年后再看,你写的用例会稳定、好懂、不坑人。

这,就是变强的样子。想涨薪、想走得更远,最稳妥的办法永远是投资自己的技能。

☑想涨薪、想走得更远,最稳妥的办法永远是投资自己的技能。

☑可如果行业的天花板已经压到头顶,与其在原地内卷,不如借AI的东风换个赛道。

☑AI,正是个低门槛、高成长的方向。

可以戳⬇️⬇️⬇️

公主号【Atstudy技术社区】,内含项目实战等各种资料包

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

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-10-27 04:25:53
杂交车撞灯杆这件事,最终将会怎样收场?

杂交车撞灯杆这件事,最终将会怎样收场?

神不隆通
2026-10-27 09:22:59
被古代人的早熟程度震惊了,十几二十几岁他们就已经搅动天下风云

被古代人的早熟程度震惊了,十几二十几岁他们就已经搅动天下风云

夜深爱杂谈
2026-10-14 09:44:40
10万亿!中国或将成为全球,乃至人类历史上,第1个“电力王国”

10万亿!中国或将成为全球,乃至人类历史上,第1个“电力王国”

兴趣知识
2026-10-28 04:51:22
令人愤怒的“卖1元火鸡面”视频,炸出了多少被毁掉的中国小孩

令人愤怒的“卖1元火鸡面”视频,炸出了多少被毁掉的中国小孩

小椰子专栏
2026-10-26 13:02:17
自媒体人"徽剑" 因曝光电诈骨干被灭口,谁透露了他的地址、照片、车牌号?

自媒体人"徽剑" 因曝光电诈骨干被灭口,谁透露了他的地址、照片、车牌号?

新商业派
2026-10-27 13:52:30
“徽剑”之死,不能止于一声叹息!

“徽剑”之死,不能止于一声叹息!

梳子姐
2026-10-27 10:49:06
存储巨头业绩超预期,“供不应求持续到2030年”

存储巨头业绩超预期,“供不应求持续到2030年”

第一财经资讯
2026-10-28 09:56:56
武汉一名家长月均花费约3000元“住酒店陪读”:孩子能多睡40分钟,周末、节假日不住,综合下来比租房划算

武汉一名家长月均花费约3000元“住酒店陪读”:孩子能多睡40分钟,周末、节假日不住,综合下来比租房划算

环球网资讯
2026-10-27 19:23:11
“爷爷黄毛,奶奶满背!”一家五口火了,网友:孩子小学毕业就算高学历!

“爷爷黄毛,奶奶满背!”一家五口火了,网友:孩子小学毕业就算高学历!

林林先生
2026-09-12 12:25:03
原来,在境内揭露电诈也是会没命的

原来,在境内揭露电诈也是会没命的

不主流讲话
2026-10-27 22:42:03
大爷往某APP充值112万余元 一月内显示盈利超1000万元 提现1100元后被索要89万元分红 民警连夜追回111万

大爷往某APP充值112万余元 一月内显示盈利超1000万元 提现1100元后被索要89万元分红 民警连夜追回111万

每日经济新闻
2026-10-27 02:35:54
孙俪晒出家常晚餐,全网沉默了。你敢信吗?孙俪家的晚饭就是桌上这几盘菜,有人说明星这是作秀,有人说这才是真会过日子。

孙俪晒出家常晚餐,全网沉默了。你敢信吗?孙俪家的晚饭就是桌上这几盘菜,有人说明星这是作秀,有人说这才是真会过日子。

LULU生活家
2026-10-27 17:44:26
今天 10 月 28 日,全体退休人员注意:10 月养老金发放,必查三项!

今天 10 月 28 日,全体退休人员注意:10 月养老金发放,必查三项!

白昼说故事
2026-10-28 09:14:13
家长用“微商女强人”形象,接送女儿放学,被嘲:好紧绷的松弛感

家长用“微商女强人”形象,接送女儿放学,被嘲:好紧绷的松弛感

妍妍教育日记
2026-10-27 14:32:19
杨议演出时骂人被叫停,一面说“杨老五”是骂人,一面把“杨老五”和自己图像印到火腿肠上

杨议演出时骂人被叫停,一面说“杨老五”是骂人,一面把“杨老五”和自己图像印到火腿肠上

Mr王的饭后茶
2026-10-28 10:55:26
大冷!14亿欧阿森纳遭英乙第18名淘汰:身价是对方500倍 无缘4冠王

大冷!14亿欧阿森纳遭英乙第18名淘汰:身价是对方500倍 无缘4冠王

风过乡
2026-10-28 06:35:40
油价调整!“插翅”上涨,10月26日全国92,95汽油“大涨2375元/吨”,接近今年“峰值”后“又大涨”,10月29日调价,预涨超0.27元/升!

油价调整!“插翅”上涨,10月26日全国92,95汽油“大涨2375元/吨”,接近今年“峰值”后“又大涨”,10月29日调价,预涨超0.27元/升!

猪友巴巴
2026-10-26 14:40:06
存款利率突然上涨了,2%的大额存单瞬间被秒空,钱突然就有地方去了

存款利率突然上涨了,2%的大额存单瞬间被秒空,钱突然就有地方去了

房产有点意思
2026-10-26 23:12:51
15岁高中生确诊甲状腺癌,且已转移!家长:从初中开始就没在凌晨一点前睡过觉;医生提醒

15岁高中生确诊甲状腺癌,且已转移!家长:从初中开始就没在凌晨一点前睡过觉;医生提醒

极目新闻
2026-10-25 22:14:37
2026-10-28 12:31:00
51Testing软件测试网 incentive-icons
51Testing软件测试网
中国软件测试人的精神家园
1668文章数 13285关注度
往期回顾 全部

头条要闻

媒体:东盟防长扩大会中国防长不去 中方代表身份披露

头条要闻

媒体:东盟防长扩大会中国防长不去 中方代表身份披露

体育要闻

0胜4负与篮网国王一桌 热火字母哥赌错了?

娱乐要闻

王心凌近况!分手已9年,如今还是单身

财经要闻

解密 “速成车”:一辆车怎样更快造出来?

科技要闻

AI世界开口说话!谷歌新模型Genie 4有多神

汽车要闻

宾利MULLINER再展定制实力 推哥白尼主题限量版车型

态度原创

游戏
旅游
时尚
手机
数码

宁愿出实体收藏书也不出光盘 索尼PS实体策略引争议

旅游要闻

太行染秋色 诗风阅千年——鹤壁2026“淇韵金秋”文旅促消费活动正式启动

「初代恶女」的选择:比起做母亲,我更想先做自己

手机要闻

iPhone Duo屏幕翻车:换机要排队 售后缺货

数码要闻

科赋发布CRAS V RGB PRIME DDR5内存模组,可选6000CL26、8000CL38

无障碍浏览 进入关怀版