# software_testing **Repository Path**: a251376784/software_testing ## Basic Information - **Project Name**: software_testing - **Description**: 软件测试面试题整理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-24 - **Last Updated**: 2026-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 软件测试学习与实践知识库 一套面向真实岗位能力、可持续更新、可在本地复现的软件测试学习教程。内容覆盖功能测试、接口测试、接口自动化、Web 与移动端 UI 自动化、性能测试、质量工程,以及生成式 AI / LLM / RAG / Agent 测试和 AI 提效;另设“测试转人工智能开发”模块,衔接 Java AI 应用与 Python Agent 开发。 > 当前路线核对日期:**2026-07-29**。教程只使用公开资料和合成数据,严禁上传任何公司的需求、代码、日志、截图、账号或业务数据。默认启动流程只读取仓库内已登记的资料,不会扫描电脑上的其他目录;只有主动运行导入命令并显式指定路径时,才会读取对应文件。提交内容前请先阅读 [内容边界](内容与隐私边界.md)。 先看 [项目架构与内容治理](项目架构与内容治理.md):它说明这套指南如何同时服务计算机专业小白、功能测试转自动化、测试开发拔高、AI 测试和测试转 AI 开发等学习者,以及如何通过公开市场、开源项目、可运行实验和版本核对建立可信度。 ## 文件命名约定 仓库自有、可自定义的文件均使用中文名称,方便初学者见名知意。以下名称因代码托管 平台或工具链会自动识别而保留行业约定:`README.md`、`.gitignore`、 `pyproject.toml`、`pom.xml`、`package.json`、`Dockerfile`、`__init__.py` 和 `conftest.py`。Python/Java/TypeScript 源文件、包、类名和环境变量也遵守各语言的 行业规范;强行改成中文会破坏工具链、团队协作和真实岗位学习。面向学习者的教程、 架构说明和自有清单继续使用中文名称。 ## 这套教程要解决什么 学习不是记住一堆工具名,而是完成一条可以展示和复现的质量闭环: ```text 理解需求 → 识别风险 → 设计测试 → 执行与取证 → 自动化回归 → 性能与可靠性验证 → CI 质量门禁 → 线上观测 → 复盘改进 → 对 AI 系统建立数据集、评测器、安全测试和持续评估 ``` 完成主线后,你应该能: - 从需求和系统设计中提取风险,使用边界值、等价类、判定表、状态迁移、组合测试和探索式测试; - 独立分析 HTTP API,验证鉴权、契约、幂等性、并发、错误处理和数据一致性; - 用 Python、pytest 与 requests 组织可维护的接口自动化工程; - 用 Playwright 完成稳定的 Web UI 关键路径测试,理解 Selenium 的适用场景; - 用 Appium 设计 Android / iOS 的跨平台移动端自动化; - 将业务目标转换为负载模型,用 k6、JMeter 或 Locust 找到性能风险,而不只是“压一个并发数”; - 把测试接入 CI/CD,管理测试数据、环境、报告、失败分诊和质量门禁; - 为 LLM、RAG 和 Agent 建立离线评测集、确定性检查、模型评分、人工复核、安全红队和线上持续评估; - 安全地使用 AI 辅助需求分析、用例设计、脚本生成和失败归因,并对结果负责。 - 在完成普通后端能力后,使用 Spring AI 或 FastAPI/LangGraph 开发可评测、可观测、权限受控的 RAG 与 Agent 应用; - 把测试能力转化为开发作品中的自动化测试、故障注入、AI 评测、安全门禁和可靠性证据。 ## 主线技术选择 “主线”用于形成一套完整作品;“选修”用于适配不同团队,不要求全部学完。 | 领域 | 建议主线 | 选修 / 对照 | 学习结果 | |---|---|---|---| | 功能测试 | 风险驱动 + 探索式测试 + 系统化设计方法 | Pairwise、模型测试、可访问性 | 能解释为什么测、测什么、何时停止 | | 接口探索 | HTTP、OpenAPI、Postman | curl、Bruno、GraphQL 客户端 | 能定位请求、协议、数据和服务端问题 | | 接口自动化 | Python + pytest + requests + JSON Schema | Postman CLI、HTTPX、Newman(存量)、Schemathesis、Pact | 可维护、可并行、可进 CI 的测试工程 | | Web UI | Playwright(Python) | Selenium | 聚焦用户关键旅程,减少脆弱等待与定位器 | | 移动 UI | Appium 3 | 平台原生框架 | 掌握真机/模拟器、上下文、手势与稳定性治理 | | 性能 | k6 + 指标/阈值/场景模型 | JMeter、Locust | 从容量问题出发设计并解释测试结果 | | 质量工程 | Git + CI + Docker 基础 + 可观测性 | 契约测试、服务虚拟化、混沌工程 | 让反馈更快、失败可诊断、门禁可执行 | | AI 测试 | 数据集 + 多层评测 + 安全测试 + 持续评估 | promptfoo、DeepEval、Ragas、Inspect AI、garak | 评测 LLM/RAG/Agent,而非凭聊天体验判断 | | 复杂 Python 被测系统 | FastAPI + React + MySQL + Redis | 搜索、对象存储、消息队列 | 构建并测试社区问答系统的完整业务闭环 | | 复杂 Java 被测系统 | Java 21 + Spring Boot + Vue + MySQL + Redis | RabbitMQ、Spring AI | 构建并测试多租户客服、工单与知识库 | | AI 应用开发 | Python AI 中间件 + 版本化 HTTP 契约 | Spring AI、LangChain4j、Spring AI Alibaba | 让 Java/Python 业务安全调用可评测、可降级的 AI 能力 | | Agent 开发 | Python + FastAPI + LangGraph + MCP | OpenAI Agents SDK、Google ADK、Microsoft Agent Framework | 能构建有状态、可恢复、有人审、权限受控的 Agent | ## 导航 ### 0. 开始学习 - [项目架构、受众与内容质量标准](项目架构与内容治理.md) - [学习路线与阶段验收](docs/00-学习指南/01-学习路线.md) - [市场需求与技术选型](docs/00-学习指南/02-市场需求与技术选型.md) - [BOSS 直聘最新软件测试与 AI 测试岗位调研](docs/00-学习指南/04-软件测试与人工智能测试招聘需求调研.md) - [环境准备与学习方法](docs/00-学习指南/03-环境准备与学习方法.md) - [Windows / macOS 测试工具安装与快速使用知识库](docs/00-学习指南/05-测试工具安装与快速使用/README.md) - [公开资料与隐私边界](内容与隐私边界.md) ### 1. 功能测试 - [功能测试:从需求到风险覆盖](docs/01-功能测试/README.md) - [测试分析与用例设计方法](docs/01-功能测试/01-测试分析与用例设计.md) ### 2. 接口测试与接口自动化 - [HTTP 与 API 测试基础](docs/02-接口测试/01-网络请求与接口基础.md) - [接口测试实战方法](docs/02-接口测试/02-接口测试实战.md) - [pytest 接口自动化工程](docs/02-接口测试/03-接口自动化测试框架.md) ### 3. UI 自动化 - [Playwright Web UI 自动化](docs/03-UI自动化/01-现代网页自动化测试.md) - [Appium 移动端 UI 自动化](docs/03-UI自动化/02-跨平台移动端自动化测试.md) - [Selenium 选修与迁移判断](docs/03-UI自动化/03-传统网页自动化测试选修.md) ### 4. 性能测试 - [性能测试方法与容量模型](docs/04-性能测试/01-性能测试方法.md) - [k6、JMeter、Locust 工具实践](docs/04-性能测试/02-工具实践.md) ### 5. 质量工程 - [CI/CD、测试分层与质量门禁](docs/05-质量工程/01-持续集成持续交付与质量门禁.md) - [测试数据、环境与可观测性](docs/05-质量工程/02-数据环境与可观测性.md) ### 6. AI 测试与 AI 提效 - [AI 系统测试总览](docs/06-AI测试/README.md) - [LLM、RAG 与 Agent 评测](docs/06-AI测试/01-大语言模型检索增强生成与智能体评测.md) - [AI 安全与红队测试](docs/06-AI测试/02-人工智能安全与红队.md) - [用 AI 提升测试效率](docs/06-AI测试/03-人工智能提效工作流.md) - [AI 测试五类岗位能力与实战路线](docs/06-AI测试/04-人工智能测试岗位能力与实战路线.md) ### 7. 综合作品 - [demo-shop 综合实验](labs/demo-shop/README.md) - [复杂系统测试实战:FastAPI + React 社区与 Spring Boot + Vue 智能客服](labs/复杂系统测试实战/README.md) - [API、Web、Android、iOS 自动化综合练习工程](labs/automation-practice/README.md) - [自动化实战学习地图与七篇全流程教程](docs/09-自动化实战/README.md) - [项目任务与验收清单](docs/07-综合实战/README.md) - [公开资料索引](references/README.md) - [分类开源项目参考库:项目内容、学习价值、使用场景与组合路线](references/开源项目参考库/README.md) - [精选开源项目学习地图](references/开源项目学习地图.md) ### 8. 求职备考 - [岗位能力地图:招聘要求到作品证据](docs/08-求职备考/01-岗位能力地图.md) - [作品集、简历与面试表达](docs/08-求职备考/02-作品集简历与面试.md) - [十二周求职备考计划](docs/08-求职备考/03-十二周备考计划.md) - [独立面试题库:310 道详解题、历史题逐项追踪与全流程模拟](docs/08-求职备考/04-面试题库/README.md) - [FastAPI + Vue 面试学习网站:筛选、收藏、错题、笔记与模拟面试](apps/interview-bank/README.md) - [小林 Coding 测试/测开资料:21 页覆盖审计、62 道去重原创题与纠错指南](docs/08-求职备考/04-面试题库/16-小林Coding测试题库整合/README.md) 原仓库中的两版面试大纲和旧版 HTML 答案已迁入题库的[历史资料目录](docs/08-求职备考/04-面试题库/历史资料/README.md)。构建器会逐项记录历史题意的当前答案去向;旧答案中的个人/项目陈述不会进入网站。备考以新版专题答案为准。 ### 9. 自动化实战专项 - [接口自动化:公开 API、本地靶场、契约与 Mock](docs/09-自动化实战/01-接口自动化全流程.md) - [Web 自动化:TodoMVC、SauceDemo 与 Playwright 框架](docs/09-自动化实战/02-网页自动化全流程.md) - [App 自动化离线 Mock:Android/iOS 统一契约、故障注入、证据与清理](docs/09-自动化实战/07-移动端自动化模拟框架全流程.md) - [Android 真机:ApiDemos、UiAutomator2 与完整运行链路](docs/09-自动化实战/03-安卓真机自动化全流程.md) - [iOS:UIKitCatalog、Simulator、XCUITest 与 WDA](docs/09-自动化实战/04-苹果移动端自动化全流程.md) - [框架设计、跨端项目与进阶任务](docs/09-自动化实战/05-框架设计与进阶项目.md) - [API、浏览器、Android、iOS 故障排查](docs/09-自动化实战/06-故障排查.md) ### 10. 测试转人工智能开发 - [模块总览:按目标岗位选择 Java AI 或 Python Agent 主线](docs/10-测试转人工智能开发/README.md) - [转岗定位、能力迁移与路线选择](docs/10-测试转人工智能开发/01-转岗定位与路线选择.md) - [两门课程拆解:AI 应用开发](docs/10-测试转人工智能开发/02-人工智能应用开发课程拆解与补充.md) / [Agent 开发](docs/10-测试转人工智能开发/03-智能体开发课程拆解与补充.md) - [共同基础能力](docs/10-测试转人工智能开发/04-共同基础能力学习清单.md) / [开源项目学习地图](docs/10-测试转人工智能开发/05-开源项目学习地图.md) - [Java AI 应用实战路线](docs/10-测试转人工智能开发/06-人工智能应用开发实战路线.md) / [Python Agent 实战路线](docs/10-测试转人工智能开发/07-智能体开发实战路线.md) - [24 周学习计划](docs/10-测试转人工智能开发/09-二十四周学习计划.md) - [公开软件测试知识助手与缺陷分诊 Agent](docs/10-测试转人工智能开发/08-智能测试助手综合项目.md) - [公开岗位需求](docs/10-测试转人工智能开发/11-人工智能开发岗位需求调研.md) / [作品集与转岗验收](docs/10-测试转人工智能开发/10-作品集与转岗验收标准.md) 该模块是完成测试主线后的进阶路径,默认需要额外 24 周。没有通过普通后端关卡时,不建议直接学习多 Agent、微调或 GPU 推理。 ## 推荐学习节奏 按每周 8~10 小时设计,完整主线约 20 周;有经验可按验收项跳级。 | 阶段 | 周数 | 主题 | 必须交付 | |---|---:|---|---| | A | 1~2 | 环境、Git、Linux、网络、SQL、Python 基础 | 环境自检记录与 20 个基础练习 | | B | 3~5 | 功能测试与测试设计 | 一份风险清单、测试模型、探索式测试记录 | | C | 6~8 | HTTP、API 探索与接口用例 | 一套含鉴权/异常/幂等/并发的 API 用例 | | D | 9~11 | pytest 接口自动化 | 可在 CI 运行的接口测试项目和报告 | | E | 12~14 | Playwright + Appium | Web 关键旅程与至少一个移动端公开 Demo 真正运行 | | F | 15~16 | 性能测试 | 负载模型、脚本、指标、瓶颈证据与结论 | | G | 17~18 | CI/CD、数据、环境、可观测性 | 分层流水线与失败分诊手册 | | H | 19~20 | AI 测试与综合项目 | 评测集、评分规则、安全用例和项目复盘 | 每一阶段都按同一个循环学习: 1. 用自己的话解释概念和适用边界; 2. 在 `demo-shop` 或公开练习服务上运行最小示例; 3. 主动制造一个失败并保留诊断证据; 4. 把重复步骤自动化; 5. 写出结论、限制和下一步,而不只贴截图; 6. 按阶段验收清单自评,未通过就补实验。 ## 快速开始综合实验 ```bash cd labs/demo-shop python3 -m venv .venv source .venv/bin/activate python -m pip install -e '.[test]' uvicorn app.商城服务:app --host 127.0.0.1 --port 8000 ``` 另开一个终端: ```bash cd labs/demo-shop source .venv/bin/activate pytest tests/api tests/ai -q ``` UI 和性能实验需要额外依赖,具体命令见 [实验说明](labs/demo-shop/README.md)。示例只监听本机回环地址,数据全部在内存中,重启服务即可重置。 ## 内容维护规则 - 普通测试岗位每季度、AI 测试与 Agent/评测岗位每月检查一次 BOSS 公开样本;工具状态、官方链接和学习路线至少每季度复核; - 工具热度不是唯一标准,优先选择可迁移的原理与能形成闭环的主线; - 新工具先放入选修,完成真实实验和对比后再决定是否进入主线; - 引用数据必须标明来源与核对日期;无法获得可靠统计时,只写“样本观察”,不伪造百分比; - 所有教程以可运行实验和明确验收项结束; - 不直接推送未经复核的 AI 生成内容。 欢迎通过 Issue 提出勘误或学习需求。公开交流时同样不要粘贴公司信息、生产日志或真实凭据。