使用Agent团队开发课程作业管理程序的过程与思考

使用Agent团队开发课程作业管理程序的过程与思考

一、任务目标

本次作业以课程作业管理桌面程序为例,按照主控Agent协调开发、审查和测试的方式,组织一次软件开发流程。

程序采用Python、Tkinter和SQLite,提供课程管理、作业录入、完成状态切换、条件筛选和截止时间提醒。数据保存在本地,提醒在程序打开期间通过界面展示。

本稿以示例情境说明各角色如何交接任务、发现问题和组织修复,实际调用记录与测试结果需在操作后补充核对。

二、Agent团队的角色分工

主控SOLO Agent负责理解需求、划分任务和安排执行顺序。收到审查意见或测试问题后,主控负责整理问题清单,再交给开发Agent处理,最后汇总交付内容。

CodeWriter负责实现业务代码,包括界面、数据存储和状态计算。它可以修改业务文件,完成基础自检,但不负责编写验收测试。

CodeReviewer负责阅读源码,检查输入校验、数据关联、边界条件和异常处理。它输出问题位置、风险说明及修改建议,不直接修改业务实现。

TestEngineer负责依据需求编写测试,执行测试并记录结果。它可以读取业务代码、写入测试文件与报告,但不修改业务代码。

这样的分工能够减少职责混乱。例如,测试失败后,应由开发角色修复实现,再由测试角色重新验证,而不是由测试角色随意调整预期结果。

三、交给主控Agent的任务提示词

请协调CodeWriter、CodeReviewer和TestEngineer,完成一个课程作业管理桌面程序。

使用Python、Tkinter和SQLite,实现课程新增、作业新增、完成状态切换、作业删除、课程与状态筛选,以及截止时间提醒。作业必须关联有效课程,标题不能为空,截止时间必须能够解析为真实日期时间。

提醒规则如下:已完成作业显示“已完成”;未完成且超过截止时间的作业显示“已逾期”;距离截止时间不超过48小时的作业显示“即将截止”;其余显示“进行中”。

先由CodeWriter完成业务实现,再由CodeReviewer审查。严重问题修复并复审后,由TestEngineer编写和执行测试。发现缺陷时,提供复现步骤、预期结果和实际结果,交回CodeWriter修复。修复后重新审查相关修改,并执行回归测试。

最终汇总源码、测试文件、评审意见和测试报告。没有执行的测试应明确标记,不得写成已经通过。

四、团队协作过程示例

第一阶段:开发Agent实现初版

CodeWriter根据需求建立课程表和作业表,实现界面录入、列表展示与数据库读写。

为了方便后续检查,将输入校验、提醒状态计算和数据库操作分别组织,避免所有逻辑都堆在按钮回调中。主控收到文件清单和实现说明后,将源码交给审查Agent。

第二阶段:审查Agent识别风险

CodeReviewer重点检查作业与课程的关联是否有效、删除是否依赖唯一ID,以及保存失败后界面是否仍然显示成功。

示例审查意见包括:使用列表行号定位作业,在筛选或排序后可能选错记录;删除课程时没有处理关联作业;数据库异常没有向用户说明。

主控将这些意见整理为具体修改任务,要求CodeWriter通过作业ID执行操作,并在课程仍有关联作业时阻止删除。写入操作应在成功后更新界面,失败时保留原有状态并提示原因。

第三阶段:测试Agent检查行为

TestEngineer根据需求建立测试场景,重点覆盖输入校验、时间边界、筛选条件和记录更新。

时间提醒测试使用固定的“当前时间”,避免测试结果随着执行日期变化。数据库测试使用单独的临时数据库,避免影响日常数据。

测试报告需要区分实际执行结果与预期结果。如果环境无法运行图形界面,应标记界面检查未执行,并保留手工验收项目。

第四阶段:修复与回归

假设测试发现已完成作业仍显示逾期,主控应将问题描述为:建立一条已经超过截止时间的作业,将其标记完成,预期显示“已完成”,实际仍显示“已逾期”。

CodeWriter据此调整判断顺序,优先检查完成状态。CodeReviewer检查修改是否影响其他分支,TestEngineer重新执行相关用例,同时检查普通未完成作业的提醒行为。

这样可以让问题从发现到修复都有明确依据。

五、典型问题及处理思路

问题一:筛选后删除错误记录。

复现方式是在两门课程下分别建立作业,筛选其中一门课程后删除记录,再检查全部数据。

处理方式是将每个界面条目绑定到数据库中的作业ID,删除时使用ID定位。预期只有指定记录受到影响。

问题二:提醒状态的判断顺序错误。

复现方式是将一条逾期作业标记完成。

处理方式是先判断是否完成,再判断截止时间。预期该作业显示“已完成”,并从未完成数量中扣除。

问题三:48小时边界处理不一致。

复现方式是分别设置距离截止时间48小时和48小时1分钟的作业。

处理方式是明确临期区间包含48小时,并统一使用日期时间差计算。预期前者显示“即将截止”,后者显示“进行中”。

问题四:删除课程后产生无效关联。

复现方式是在课程下建立作业,再尝试删除课程。

本项目选择阻止删除有关联作业的课程,并给出说明。预期课程和作业均保持原状,避免误删数据。

六、测试与验收安排

自动化测试主要检查能够独立验证的业务逻辑,包括标题校验、时间解析、提醒状态计算、组合筛选和按ID更新记录。

数据库测试检查新增、修改、删除和重新读取是否一致。例如建立5条作业,其中2条完成,预期总数为5、已完成为2、未完成为3。删除一条未完成作业后,预期总数为4、已完成为2、未完成为2。

界面部分通过手工操作检查,包括按钮是否作用于选中记录、删除确认是否有效、错误提示是否清楚,以及重新打开程序后数据是否恢复。

最终报告应记录实际执行的用例、通过或失败情况、修复记录和未完成项目。本示例稿尚未提供真实执行日志,因此不填写通过率,也不将预期结果作为实测结论。

七、经验与思考

这次流程设计让我更清楚地理解了开发、审查和测试之间的区别。开发角色关注功能如何实现,审查角色检查实现中可能存在的风险,测试角色则通过具体输入判断行为是否符合需求。

协作效果取决于信息交接是否明确。只说“提醒功能有问题”,开发Agent很难确定修改方向;给出固定时间、作业状态、实际提示和预期提示,就能够形成可复现的问题,也方便修复后的复测。

另外,多个Agent仍然可能对同一条模糊需求产生相同误解。因此,人工需要提前明确验收规则,并核对测试预期是否合理。Agent团队可以帮助组织开发工作,而需求确认和结果判断仍然需要有人负责。

posted @ 2026-10-20 18:17  so_young_006  阅读(3)  评论(0)    收藏  举报