Jorgeomedinamachuca/ai-quality-lab
GitHub: Jorgeomedinamachuca/ai-quality-lab
一个专注于AI质量工程的研究实验室,通过系列实验探索UI自动化、LLM评估、Agent Skill测试和Shift-Left质量门禁在现代AI驱动应用中的实践方法。
Stars: 0 | Forks: 0
# AI Quality Lab
[](https://github.com/Jorgeomedinamachuca/ai-quality-lab/actions/workflows/playwright-tests.yml)
AI Quality Lab 是一个个人学习与研究实验室,专注于探讨人工智能时代的质量工程的未来。
该项目通过使用 Playwright、Python、Pytest、GitHub Actions、LLM 评估准则、Agent Skills、prompt 注入测试和基于风险的质量门禁等进行的实际实验,探索现代 QA 实践如何适应 AI 驱动的应用程序。
本仓库的主要目的并非展示软件开发的专业能力。其宗旨在于通过实验、自动化、文档记录以及对智能系统的系统性评估,在 AI 质量工程领域积累实用的、基于证据的实践经验。
## 愿景
AI Quality Lab 致力于研究当软件产品变得日益具有概率性、对话化和 AI 辅助化时,质量工程该如何演进。
传统的测试自动化依然不可或缺,但 AI 驱动的系统引入了新的质量风险:
- 非确定性的响应;
- 幻觉或缺乏依据的声明;
- prompt 注入漏洞;
- 数据泄露风险;
- 重复运行中出现的不一致行为;
- 缺乏明确的响应质量验收标准;
- 难以将定性行为转化为可衡量的发布信号。
本实验室旨在从实用的 QA 视角出发,探索这些风险。
## 实验室研究领域
AI Quality Lab 围绕以下几个实用的研究领域进行组织:
| 领域 | 目的 |
|---|---|
| Playwright 自动化 | 针对 AI 风格的应用程序、聊天机器人界面和 SaaS 工作流的 UI 自动化。 |
| Pytest 框架 | 测试结构、断言、fixtures 和可重复的自动化。 |
| AI 评估 | 对 LLM 风格的响应、一致性、幻觉风险和响应质量进行评估。 |
| 安全测试 | Prompt 注入、数据泄露和不安全指令处理。 |
| 测试准则 | 用于评估 AI 输出、需求和 Agent 行为的结构化质量标准。 |
| Claude Skills / Agent Skills | 针对可重用 Agent Skills 的实验,包括其结构、清晰度、安全性和可测试性。 |
| Shift-Left 质量 | 在实现开始前介入的需求质量门禁。 |
| GitHub Actions | 用于自动化测试执行和收集质量证据的持续集成。 |
## 当前实验
| 实验 | 重点 | 状态 |
|---|---|---|
| 实验 001 — Chatbot UI 冒烟测试 | 针对受控 AI 风格聊天机器人界面的 Playwright 自动化。 | 进行中 |
| 实验 002 — Agent Skill 质量评估 | 对 Claude 风格可重用 Agent Skills 的 QA 评估。 | 进行中 |
| 实验 003 — Prompt 注入风险基线 | 用于 prompt 注入风险的结构化 AI 安全测试数据集。 | 进行中 |
| 实验 004 — 安全发布工作流 | 使用 Playwright 和 Page Object Model 验证 SaaS 风格的工作流。 | 进行中 |
| 实验 005 — Shift-Left 需求质量门禁 | 在实现之前进行的需求质量、可测试性和风险验证。 | 进行中 |
## 实验 001 — Chatbot UI 冒烟测试
本实验使用 Playwright 和 Pytest 验证 AI 风格聊天机器人界面的基础 UI 契约。
涵盖内容:
- 聊天机器人页面加载;
- prompt 输入框可见性;
- 发送按钮可见性;
- 响应面板可见性;
- prompt 提交;
- 确定性响应渲染;
- 空 prompt 验证。
相关文件:
- [`demo/chatbot.html`](demo/chatbot.html)
- [`tests/test_demo_chatbot_ui.py`](tests/test_demo_chatbot_ui.py)
- [`docs/experiment_001_chatbot_ui_smoke_test.md`](docs/experiment_001_chatbot_ui_smoke_test.md)
## 实验 002 — Agent Skill 质量评估
本实验将一个可重用的 Claude 风格 Agent Skill 作为可测试的 QA 交付物进行评估。
涵盖内容:
- skill 文件夹结构;
- `SKILL.md` 验证;
- 预期输入和输出的定义;
- 安全性和可靠性规则;
- 示例用户故事及预期测试用例;
- 基于 Pytest 的结构化验证。
相关文件:
- [`skills/qa-test-case-generator/SKILL.md`](skills/qa-test-case-generator/SKILL.md)
- [`skills/qa-test-case-generator/examples/sample_user_story.md`](skills/qa-test-case-generator/examples/sample_user_story.md)
- [`skills/qa-test-case-generator/examples/expected_test_cases.md`](skills/qa-test-case-generator/examples/expected_test_cases.md)
- [`rubrics/agent_skill_quality_rubric.md`](rubrics/agent_skill_quality_rubric.md)
- [`tests/test_agent_skill_structure.py`](tests/test_agent_skill_structure.py)
- [`docs/experiment_002_agent_skill_quality_evaluation.md`](docs/experiment_002_agent_skill_quality_evaluation.md)
## 实验 003 — Prompt 注入风险基线
本实验定义了一个用于 prompt 注入和 AI 安全测试的结构化基线数据集。
涵盖内容:
- 指令覆盖;
- 机密提取;
- 角色操纵;
- 数据泄露;
- 策略绕过;
- 越狱尝试;
- 工具滥用;
- 上下文抽取;
- 预期的安全行为;
- 可观测的失败信号。
相关文件:
- [`data/security_prompts.json`](data/security_prompts.json)
- [`rubrics/prompt_injection_risk_rubric.md`](rubrics/prompt_injection_risk_rubric.md)
- [`tests/test_prompt_injection_dataset.py`](tests/test_prompt_injection_dataset.py)
- [`docs/experiment_003_prompt_injection_risk_baseline.md`](docs/experiment_003_prompt_injection_risk_baseline.md)
## 实验 004 — 安全发布工作流
本实验模拟了一个小型的 SaaS 风格发布工作流,并使用 Playwright 和 Pytest 对其进行验证。
它演示了质量工程师如何在不使用专有数据、私有业务规则或公司特定实现细节的情况下,测试真实的产品行为。
涵盖内容:
- 草稿创建;
- 内容预览;
- 提交审核;
- 发布工作流;
- 必填字段验证;
- 基于角色的发布权限;
- 对潜在不安全内容的安全渲染;
- Playwright Page Object Model。
相关文件:
- [`demo/publishing_workflow.html`](demo/publishing_workflow.html)
- [`pages/publishing_workflow_page.py`](pages/publishing_workflow_page.py)
- [`tests/test_secure_publishing_workflow.py`](tests/test_secure_publishing_workflow.py)
- [`rubrics/publishing_workflow_quality_rubric.md`](rubrics/publishing_workflow_quality_rubric.md)
- [`docs/experiment_004_secure_publishing_workflow.md`](docs/experiment_004_secure_publishing_workflow.md)
## 实验 005 — Shift-Left 需求质量门禁
本实验演示了质量工程如何通过在实现开始前评估用户故事来实现 Shift-Left。
它验证了需求是否包含足够的清晰度、验收标准、业务规则、负面场景、边缘情况、安全考虑因素和可测试性说明,以支持开发与自动化。
涵盖内容:
- 需求清晰度;
- 用户画像、目标和收益;
- 验收标准;
- 业务规则;
- 边缘情况;
- 负面场景;
- 安全考虑因素;
- 可测试性说明;
- 风险分类;
- AI 辅助开发就绪度。
相关文件:
- [`data/user_stories.json`](data/user_stories.json)
- [`rubrics/shift_left_requirement_quality_rubric.md`](rubrics/shift_left_requirement_quality_rubric.md)
- [`tests/test_shift_left_requirement_quality.py`](tests/test_shift_left_requirement_quality.py)
- [`docs/experiment_005_shift_left_requirement_quality_gate.md`](docs/experiment_005_shift_left_requirement_quality_gate.md)
## 仓库结构
```
ai-quality-lab/
├── .github/
│ └── workflows/
├── data/
├── demo/
├── docs/
├── pages/
├── reports/
├── rubrics/
├── skills/
├── tests/
├── README.md
├── pytest.ini
└── requirements.txt
```
## 运行测试
安装依赖项:
```
pip install -r requirements.txt
playwright install
```
运行测试套件:
```
pytest
```
相同的测试套件会在每次推送时通过 GitHub Actions 执行。
## 本项目展示了什么
本仓库展示了如何将二十多年的质量保证和质量工程经验应用于新一代 AI 驱动的产品中。
它展示了在以下方面的实践能力:
- 测试策略设计;
- 探索性与基于风险的思维;
- Playwright 浏览器自动化;
- Python 和 Pytest 实现;
- LLM 响应评估;
- AI 风险建模;
- prompt 注入测试设计;
- 质量门禁与报告;
- 可重复 QA 实践的文档化;
- Shift-Left 质量评审;
- AI 辅助开发就绪度。
## 理念
本实验室中的每一个实验都必须回答一个关于 AI 系统的真实质量问题。
目的并不是单纯为了学习工具。目的是理解如何评估智能应用程序的质量、可靠性、安全性和实用性。
每个实验都应至少产出一个有形的成果:
- 可重用的代码;
- 文档;
- 测试用例;
- 评估准则;
- 技术笔记;
- 最佳实践;
- 自动化示例;
- 基于风险的测试产出物。
标签:AI质量工程, DevOps流水线, LLM评估, Ollama, Playwright, Pytest, 提示词注入测试, 特征检测, 逆向工具