Skip to content

【CoStrict校园挑战赛】设计自动化测试工作流 #667

@yetconnie

Description

@yetconnie

Problem (one or two sentences)

大家好,码上AI·CoStrict校园挑战赛已经开始。本次大赛设置了6个技术挑战赛,欢迎大家踊跃参与!

任务一:设计自动化测试工作流

任务目标

使用 CoStrict 的 Custom Modes 、斜杠命令等,设计一套自动化测试工作流,用于对全新的代码仓库自动完成测试流程。

背景描述

随着 AI Coding 与自动编程技术的迅速发展,越来越多的编程任务被交给大语言模型来完成。这一趋势虽然提高了开发效率,但也暴露出了一些潜在的问题。特别是,由于 AI 生成的代码通常缺乏有效的校验手段,导致它们在准确性、可读性和可维护性方面常常存在隐患。因此,自动化测试的重要性日益凸显,成为确保代码质量和功能安全的关键环节。 将自动化测试融入 AI Coding,这种方法允许开发者在代码编写的同时,利用 AI 自动生成相应的测试用例,从而确保代码质量与功能的一致性。这一策略有助于在早期阶段及时发现潜在的问题,避免在后期开发中因缺乏测试而引起的更大麻烦。

指导建议

  1. 建议合理使用 CoStrict 的 Custom Modes 功能,创建专项的 AI 角色来解决测试设计、测试脚本编写的问题。可以考虑组合斜杠命令进行使用,将复杂流程进行有效拆分,避免 AI 会话过长导致超上下文的问题。
  2. 为控制 AI 执行顺序,可考虑使用 CoStrict 的 todo 待办列表、new_task 父子任务、attempt_completion 总结工具,组装复杂工作流。
  3. 不同语言工程的测试流程大同小异,可先思考常见的自动化测试流程有哪些步骤,再分步让 AI 实现。前端自动化可使用 playwright 工具,后端接口自动化可参考不同语言常见测试框架。前端是一个比较难测试的技术高点,需要大家想办法突破。
  4. 在测试生成与执行过程中,难免会遇到执行失败的情况。建议实现问题自动修复流程,提高通过率。
  5. 自动化测试工作流最终预期的结果为:利用 AI 生成适用于当前代码仓库的测试代码、测试用例与测试脚本。

Context (who is affected and when)

测评方案

基础项目(可选其一,也可都做):

项目一:https://gitee.com/y_project/RuoYi-Vue
项目二:https://github.com/pbrong/hrms
项目三:https://github.com/sist2app/sist2/tree/master

建议先手动配置好启动依赖,例如数据库、redis 等。

工作流执行要求:

在代码仓库下,使用 CoStrict 选定设计的 Mode(或使用斜杠命令触发),可自动化开始执行测试代码生成。整个过程无需(或少量)人工参与。

生成测试验收要求:

  1. 生成一个 run_test.bat(或 run_test.sh)测试脚本,用于一键触发前后端测试。
  2. 后端(若有)需进行接口测试,生成至少10个不同接口的测试案例。包含成功请求、异常请求、鉴权通过、无权限验证。
  3. 前端(若有)需进行功能测试,生成至少10个不同功能组件的测试案例。包含正常功能验证、边界场景验证。
  4. 最终生成一份自动化测试报告,内需包含通过用例概况、失败用例与失败描述、通过率等信息。

评分维度:

  • 一次性成功率。一次性执行该工作流,生成可完整通过的测试代码,视为达标。
  • 工作流自动化程度。人工参与越少评分越高。
  • 工作流执行效率。调用次数越少评分越高。
  • 工作流适配程度。工作流同时支持的项目越多评分越高。
  • 用例覆盖度。生成的测试案例覆盖越多评分越高。

Desired behavior (conceptual, not technical)

交付内容

1. 完整的 Mode 提示词/斜杠命令内容

  • 用于生成自动化测试的 Mode 与斜杠命令(若有)完整提示词内容
  • 附带 readme.md 说明文档进行使用说明

2. 生成测试代码后的仓库源码与测试执行报告文件

  • 在选定的项目代码仓库下,执行自动化测试执行,将生成的测试代码与测试报告文件完整压缩打包(统一以 zip 包格式提供)
  • 需完整附带可运行的测试代码与最新执行成功的测试报告文件
  • 需保证 zip 包压缩后,能够正常重新运行测试。可不考虑中间件依赖(数据库、redis 等)

3. 演示材料

  • 从原始代码仓库开始,触发自动化测试生成,并完整执行完测试内容、输出测试报告的过程演示视频(统一以 mp4 格式提供)

Constraints / preferences (optional)

No response

Request checklist

  • I've searched existing Issues and Discussions for duplicates
  • This describes a specific problem with clear context and impact

Acceptance criteria (optional)

No response

Proposed approach (optional)

No response

Trade-offs / risks (optional)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions