让DeepSeek Harness自己写测试、跑测试、找Bug,它能做到哪一步?
关注 霍格沃兹软件测试开发 公众号,回复「资料」, 领取人工智能测试开发技术合集
光说不练假把式。我们给 DeepSeek Harness 设计了一场三关闯关实验:第一关写测试用例,第二关自己执行测试,第三关最狠——丢给它一段埋了雷的代码,让它找 Bug。一关比一关难,也正好能摸出这个 Agent 的能力边界在哪里。实验环境和此前实测一致:Node.js 环境,npx @deepseek-ai/dsh web 启动,标准模式,当前 developer preview 版本。三关围绕同一个背景展开:一个订单计价函数。
第一关:写用例
靶子函数如下:
def calc_order_price(items):
"""items: [{"name": str, "price": float, "count": int}, ...]
返回 (总价, 均价);总额超过 100 打 8 折"""
total = 0
for item in items:
total += item["price"] * item["count"]
if total > 100:
total *= 0.8
return round(total, 2), round(total / len(items), 2)
我们只给了这个函数和一句话:"为它编写 pytest 用例,覆盖正常流、边界和异常。"几分钟后 dsh 交卷,挑三条:
def test_normal_order_no_discount():
items = [{"name": "a", "price": 30.0, "count": 2}]
total, avg = calc_order_price(items)
assert total == 60.0 # 60 未超过 100,不打折
def test_over_100_gets_discount():
items = [{"name": "a", "price": 60.0, "count": 2}]
total, avg = calc_order_price(items)
assert total == 96.0 # 120 超过 100,打 8 折
def test_empty_items_raises():
# 边界:空列表,当前实现会除零
with pytest.raises(ZeroDivisionError):
calc_order_price([])
值得说的是后两条:折扣用例的期望值 96.0 算得对,说明它真的按规则推演过,不是抄模板;空列表那条,它不光想到了空输入,还在备注里写明"当前实现对空列表会除零"。边界意识在线。第一关,通过——生成快、方向对。
人工智能技术学习交流群
伙伴们,对AI测试、大模型评测、质量保障感兴趣吗?我们建了一个 「人工智能测试开发交流群」,专门用来探讨相关技术、分享资料、互通有无。无论你是正在实践还是好奇探索,都欢迎扫码加入,一起抱团成长!期待与你交流!👇

第二关:跑用例
第二关让 dsh 执行自己写的用例。它确实能执行命令、读回输出:
python -m pytest test_price.py -v
结果:跑起来了,失败摘要也给得像样,哪个用例挂在哪条断言上都能说清。但两个老毛病都犯了:一是响应速度偏慢,一轮分析要等一会儿;二是我追加"修正后重跑"的组合动作时,它打了一次转,重复读同一份日志,需要我人工提醒才继续推进。另外这种多轮任务越长,API 成本放大得越明显,短循环跑、跑完即结,更划算。第二关,勉强通过——会跑会看结果,但节奏得人来带。
第三关:找埋雷代码的 Bug
重头戏来了。我们把函数升级了一下,埋进三个雷(注释是标给读者看的,喂给 dsh 的是去掉注释的原码):
def calc_order_price(items, discount=0.8):
"""订单总额满 100 打 8 折,返回 (总价, 均价)"""
total = 0
for i in range(1, len(items)): # 雷 1:跳过了第一件商品
total += items[i]["price"] * items[i]["count"]
if total > 100:
total = total * discount # 雷 2:需求其实规定只对超出 100 的部分打折
avg = total / len(items) # 雷 3:空列表时除零
return round(total, 2), round(avg, 2)
提示词只有一句:"审查这个函数,指出所有缺陷。"dsh 的体检报告:
雷 1,抓到了。它指出 range(1, len(items)) 会漏掉第一件商品,还给了修正建议。差一错误是它的强项,静态读码的功夫在线;
雷 3,抓到一半。它提到空列表的除零风险,但归在"建议加防御性判断"里,没当成正经缺陷处理;
雷 2,没抓到。它认为打折逻辑"写得没毛病"——单看代码,total * discount 确实语法正确、逻辑自洽。问题出在业务规则上:我们手里的需求写的是"只对超出 100 的部分打折"。这条规则不在代码里,dsh 看到的只有代码,自然判它无错。
为了验证,我们把需求原文补进提示词又跑了一次。这回雷 2 被抓到了:它明确指出"全额打折与'仅超出部分打折'的规则不符",并给出了分段计价的修正思路。同一个函数,差别只在输入里有没有验收标准——这大概是本次实验最有价值的一个观察。
第三关,部分通过:语法和明显逻辑错误抓得住,业务语义错误只有在规则被明确给出时才抓得到。
边界到底在哪
三关跑完,dsh 找 Bug 的边界很清楚:能抓的是"大家都认的错"——语法问题、差一、除零、明显不合理的控制流;抓不到的是"业务规则分歧"——折扣范围算错、状态码语义不对、字段映射错位,这些的正确答案不在代码里,在需求里。
所以实践建议也很实际:想让它找 Bug,就把验收标准跟代码一起给它,规则写得越具体,命中率越高;只给代码,它只能对"代码写得对不对"负责,没法对"代码做得对不对"负责。
推荐学习
DeepSeek Harnesst智能体公开课,8月20日20:00开讲:
🔥 DeepSeek Agent架构深度拆解——“一切皆插件”到底怎么实现
🔥 四大主流Agent横向对比:Opencode/Codex/Claude Code/Openclaw
🔥 Harness插件体系全解析:Web自动化+App自动化+视觉驱动自动化
一夜5万星的Agent框架,到底能做什么?一次讲透。
扫码进群,报名学习!

本文整理自霍格沃兹测试开发学社的原创分享,更多测试开发与 AI 测试实战内容,我们下一篇见。
关于我们
霍格沃兹测试开发学社,隶属于 测吧(北京)科技有限公司,是一个面向软件测试爱好者的技术交流社区。
学社围绕现代软件测试工程体系展开,内容涵盖软件测试入门、自动化测试、性能测试、接口测试、测试开发、全栈测试,以及人工智能测试与 AI 在测试工程中的应用实践。
我们关注测试工程能力的系统化建设,包括 Python 自动化测试、Java 自动化测试、Web 与 App 自动化、持续集成与质量体系建设,同时探索 AI 驱动的测试设计、用例生成、自动化执行与质量分析方法,沉淀可复用、可落地的测试开发工程经验。
在技术社区与工程实践之外,学社还参与测试工程人才培养体系建设,面向高校提供测试实训平台与实践支持,组织开展 “火焰杯” 软件测试相关技术赛事,并探索以能力为导向的人才培养模式,包括高校学员先学习、就业后付款的实践路径。
同时,学社结合真实行业需求,为在职测试工程师与高潜学员提供名企大厂 1v1 私教服务,用于个性化能力提升与工程实践指导。

浙公网安备 33010602011771号