真实操作案例软件开发与编程

Bug 定位与修复:Tokeny 实操案例

复现账单函数在字符串金额上出错的问题,定位根因并修复,补充有效输入、空列表、非法金额的测试并真实运行。

作者:Tokeny 团队 · Windows · Tokeny 1.7.8 · gpt-6-sol

准备这次任务的输入

在 Tokeny 中新建工作空间,将下载的样例解压到工作空间,选择支持工具调用的模型。本例使用合成演示数据或文中列出的公开资料。

  • billing.py
  • error.txt
下载输入样例

把任务交给 Tokeny

复现账单函数在字符串金额上出错的问题,定位根因并修复,补充有效输入、空列表、非法金额的测试并真实运行。

交付文件:billing_fixed.py、test_billing.py、diagnosis.md。
验收要点:
- 字符串金额合计 20.00
- 用 Decimal 或整数分避免浮点误差
- 测试真实通过
这是使用合成演示输入或指定公开资料的真实操作案例。请先读取工作空间输入,再实际生成文件并自检。所有写入、脚本与临时服务限于当前工作空间;临时服务只监听 127.0.0.1,执行后关闭;不触达外部收件人、不发布、不付款、不更改系统设置,不调用子智能体。需要公开资料时可读取给定 URL。只启用完成任务必需的工具。另写 report.md(中文)和 report.en.md(英文),简洁、完整,包含输入、处理步骤、真实结果、检查方式和局限;失败或未验证部分如实记录,不能宣称成功。最终回复用中文列出产物、关键结果与待核实项。

本次使用独立演示工作空间。复现时,请根据自己的文件与权限设置检查操作,确认后继续。

实际执行过程

任务从 Tokeny 输入框提交,由在线模型读取资料并调用工具实际执行。本例核对本地演示任务与实际生成的文件,结果和检查方法见下文。

Tokeny 1.7.8 中「Bug 定位与修复」的真实执行会话与生成文件。点击可查看原图。
Tokeny 1.7.8 中「Bug 定位与修复」的真实执行会话与生成文件。点击可查看原图。

产物、结果与复核

输入

读取了工作空间中的 billing.py、error.txt 和 ENVIRONMENT.md。复现输入为:

[{"amount":"12.30"},{"amount":"7.70"}]

原函数以整数 0 累加字符串金额,报 TypeError。

处理步骤

  1. 定位到 billing.py 中 total += row["amount"] 的类型不匹配。
  2. 新建 billing_fixed.py,使用 Decimal(str(value)) 解析和累加金额。
  3. 将结果量化到两位小数;空列表返回 Decimal("0.00")。
  4. 对非法、非有限和缺失金额抛出 ValueError。
  5. 新建 test_billing.py,覆盖有效输入、空列表、非法金额、缺失金额和浮点误差场景。

真实结果

执行 python -m unittest -v test_billing.py:5 个测试全部通过。

额外手工执行复现输入,输出为:

manual checks: PASS 20.00

因此字符串金额合计为 Decimal("20.00")。

检查方式

使用 Python 标准库 unittest 实际运行测试,并用独立命令断言合计结果和空列表结果。

局限

未定义负数、币种、舍入模式和金额上限等业务规则;当前实现默认金额按两位小数处理。原始 billing.py 未改动,修复代码在 billing_fixed.py。

下载产物,自己核对

压缩包保存本次执行生成的文件。替换成自己的资料后,可以按下面的检查点验收。

  • 字符串金额合计 20.00
  • 用 Decimal 或整数分避免浮点误差
  • 测试真实通过
billing_fixed.py · 1 KBtest_billing.py · 1 KBdiagnosis.md · 1 KBreport.md · 1 KBreport.en.md · 1 KB
下载本次实际产物

继续探索同类场景