Raina测试学习指南Raina测试学习指南
导读
面试题
对话式面试题
AI 测试教程
软件测试教程
🌍 知识星球
学习交流群
  • Raina测试工具集
  • Raina常用网站&工具合集
  • 小红书
  • B站
  • 作者介绍
导读
面试题
对话式面试题
AI 测试教程
软件测试教程
🌍 知识星球
学习交流群
  • Raina测试工具集
  • Raina常用网站&工具合集
  • 小红书
  • B站
  • 作者介绍
  • 基础测试对话

    • 测试基础理论
    • 测试用例设计
    • 功能测试
    • 接口测试
    • 自动化测试
    • 性能测试
    • 安全测试
    • 移动端与兼容性测试
    • 测试管理与工程实践
    • 综合与开放题
    • 数据库与数据测试
    • Linux 与测试环境
    • 微服务与分布式系统
    • Web 前端专项
    • DevOps 与 CI/CD
    • 业务领域专项
    • 测试工具与效率
    • 质量度量与测试策略
    • 软技能与职业发展
    • 进阶综合题
    • 网络与 HTTP 协议(高频)
    • SQL 与数据库基础(高频)
    • 自动化落地细节(高频)
    • 缺陷与质量过程(高频)
    • 经典业务 / 场景设计题(高频)
    • Web / App 实战补充(高频)
    • 接口与联调实战(高频)
    • 性能与稳定性补充(高频)
    • 编程与工具基础(高频)
    • 行为面试与综合高频
  • AI 测试对话

    • AI 测试基础与方法论
    • 大模型(LLM)功能测试
    • Prompt 与对话质量测试
    • Agent / Skill / MCP 测试
    • RAG 与知识库测试
    • 评测体系与 Eval
    • 自动化测试与 CI/CD
    • 性能、成本与稳定性
    • 安全、合规与伦理
    • 测试工程实践与职业发展

多租户(SaaS)场景下数据隔离怎么验证?

👔 Raina面试官: SaaS 多租户场景,数据隔离你怎么验证?

🙋 候选人:

  • 数据隔离是 SaaS 的安全 P0,要测看不到、改不了、查不出三个维度。
  • 看不到:租户 A 的 token 不能访问租户 B 的 ID(遍历 orderId、userId、文件 URL)。改不了:请求体里偷偷换 tenantId 不能越权更新。查不出:列表接口、搜索、导出、报表聚合不能泄露其他租户数据。
  • 实现层要测:共享表 tenant_id 过滤是否全局生效、缓存 key 是否带租户前缀、异步任务和 MQ 消息是否带租户上下文、定时任务不能跨租户批处理错数据。用两个测试租户互测,自动化里每条 case 固定 tenant fixture。

👔 Raina面试官: 怎么证明没有遗漏的越权接口?

🙋 候选人:

  • 结合API 清单扫描 + 越权用例模板。
  • 从 Swagger 拉全量接口,对含 ID 参数的统一套A 的 token + B 的 ID模板跑一遍。代码侧请安全团队或静态扫描查 missing tenant filter,测试做黑盒验证兜底。


Postman、Apifox、Swagger 在接口测试中各适合什么场景?

👔 Raina面试官: Postman、Apifox、Swagger 这三个,接口测试里各适合什么场景?

🙋 候选人:

  • 三个定位不同,我一般是组合用而不是选一个。
  • Swagger/OpenAPI:看契约、生成文档、做契约一致性校验的参照物,适合前后端对齐和自动生成 client stub,不是执行平台。Postman:个人/小团队快速调试、分享 Collection、Runner 跑批量、 Newman 接 CI——生态成熟,适合已有 Postman 资产的老项目。Apifox:国产一体化,文档+调试+Mock+自动化+协作,适合国内团队从零搭接口测试体系,接口变更同步效率高。
  • 选型看:团队规模、是否要 Mock、CI 集成、是否已有资产。大厂很多用自研+Swagger,中小团队 Apifox 性价比很高。

👔 Raina面试官: 接口自动化最终一定要上代码框架吗?

🙋 候选人:

  • 中长期要。工具适合探索和规范,代码框架适合 CI 门禁。
  • Postman/Apifox 做冒烟和联调,pytest+requests 或 RestAssured 做版本化、可 code review 的回归套件。工具导出的 case 往往是起点不是终点。


Charles / Fiddler 抓包在测试中怎么用?

👔 Raina面试官: Charles、Fiddler 抓包你在测试里一般怎么用?

🙋 候选人:

  • 抓包是测试的透视眼,我主要用在四类场景。
  • 问题定位:页面展示错但不知道调了哪个接口——看请求参数、响应体、时序。弱网模拟:throttle 限速、断点重放,验加载态和重试。改包测试:Map Local/Rewrite 改响应,模拟边界数据、错误码、第三方异常,不用等后端造数据。HTTPS:装证书解移动端和桌面端加密流量(仅限测试环境)。
  • 安全测试:看敏感字段是否明文传输、token 是否放 URL。配合:抓到的请求一键导出成 Postman case 或自动化脚本模板。

👔 Raina面试官: 移动端抓包有什么坑?

🙋 候选人:

  • 坑不少:证书锁定(SSL Pinning)、代理检测、HTTP/2。
  • App 做了 pinning 要测试包关掉或用调试版本;iOS 高版本要装并信任 Charles 根证书;有些 App 检测代理直接拒绝连接——需要开发给 debug 开关。永远只在测试包和测试环境用,别碰生产用户数据。


测试管理工具(Jira、禅道、TestRail)你怎么选和使用?

👔 Raina面试官: Jira、禅道、TestRail 这些测试管理工具,你怎么选、怎么用?

🙋 候选人:

  • 选型看团队研发流程、预算、是否要独立用例库,没有绝对最好。
  • Jira + Xray/Zephyr:研发全链路都在 Atlassian 的团队,需求和缺陷天然关联,适合敏捷迭代,但用例管理偏重需插件。禅道:国内中小团队一站式,需求-用例-缺陷-测试单闭环,上手快,适合测试驱动流程不复杂的项目。TestRail:专业用例管理,版本和 run 概念清晰,适合重视合规和审计、用例资产庞大的团队,但要和 Jira 集成才完整。
  • 使用原则:工具服务流程,不为工具改流程。用例和缺陷必须关联需求;每次发布有测试报告可追溯;避免用 Excel 平行维护第二套数据。

👔 Raina面试官: 用例维护成本很高,怎么避免用例库腐烂?

🙋 候选人:

  • 定期归档 + 和自动化映射 + 需求变更触发 review。
  • 过时用例标 deprecated 而非删;核心用例绑自动化 case ID;需求 ticket 关闭时检查关联用例是否更新。用例数不是 KPI,能覆盖风险的活跃用例才是资产。


Allure、ExtentReport 等测试报告工具的价值是什么?

👔 Raina面试官: Allure、ExtentReport 这类测试报告,你觉得价值在哪?

🙋 候选人:

  • 价值是让 CI 失败可读、可追溯、可聚合,把日志堆变成决策信息。
  • 比控制台日志强在:按 feature/story 分组、失败截图和请求附件、历史趋势和 flaky 识别、环境信息一目了然。Allure 和 pytest/TestNG 集成好,适合接口和 UI 自动化;ExtentReport 在 Java 生态常见,报表定制灵活。
  • 对团队:开发看失败用例名和 stack 就能定位,不用找测试要截图;管理层看通过率和趋势评估发布风险。报告要接 CI artifact 永久存储,不能跑完就丢。

👔 Raina面试官: 报告很漂亮但没人看怎么办?

🙋 候选人:

  • 说明没嵌进工作流。
  • PR 失败自动评论报告链接;发布门禁引用报告通过率;失败 @ 责任人。报告只保留失败和跳过的详情,全绿的一行带过,减少噪音。


你怎么用 Git 管理测试脚本和用例?

👔 Raina面试官: 测试脚本和用例你怎么用 Git 管理?

🙋 候选人:

  • 和开发代码同仓库或伴生仓库,同一套分支策略,测试资产也是代码。
  • 目录规范:tests/api、tests/ui、testdata、fixtures 分开;用例数据 YAML/JSON 化,避免硬编码。分支:feature 分支写对应用例,PR 里开发和测试一起 review;main 只合通过 CI 的。提交信息写清测什么——fix: 支付回调幂等用例补充重复通知场景。
  • 标签:发版打 tag,报告能对应到具体 commit。大文件(录屏、大 Excel)放 LFS 或对象存储,不进 Git。敏感数据用 .env.example + CI secret,绝不提交真密钥。

👔 Raina面试官: 手工用例也放 Git 吗?

🙋 候选人:

  • 核心域可以 Markdown/CSV 版本化,日常执行仍走 TestRail/禅道。
  • Git 管用例设计源文件,管理工具管执行记录和缺陷关联。两者用需求 ID 做桥梁,别两套各写各的。


测试数据脱敏工具和方法有哪些?

👔 Raina面试官: 测试数据脱敏,你了解哪些工具和方法?

🙋 候选人:

  • 脱敏目标就一条:保留测试价值,去掉可识别真实身份的信息。
  • 方法:静态脱敏——从生产 dump 后批量替换(手机号掩码、姓名 hash、身份证/faker 生成);动态脱敏——测试环境查询层实时掩码,开发看不到明文。工具:开源如 ARX、Jailer+脚本;商业 ETL 脱敏平台;简单场景用 SQL 脚本 UPDATE 也行。
  • 注意:可逆脱敏要控权限;关联关系保留(同一用户的订单和地址仍关联);日期分布和统计特征别太假导致测不出性能问题。合规:GDPR/个保法要求测试环境不能用未授权的生产明文。

👔 Raina面试官: 没有生产数据,怎么造逼真测试数据?

🙋 候选人:

  • 用Faker + 业务规则生成器自建造数平台。
  • 按领域模型生成用户、订单、商品,保证外键关联正确。核心是高风险路径的真实分布——比如 80% 正常单、15% 促销单、5% 异常单,而不是纯随机。

你用过哪些 Mock 平台或服务虚拟化工具?

👔 Raina面试官: Mock 平台或服务虚拟化你用过哪些?分别解决什么问题?

🙋 候选人:

  • 我按轻量 Mock 到全链路虚拟化分几档用过。
  • WireMock/MockServer:HTTP 接口 Mock,适合第三方 API 不稳定或测试环境没有下游服务,可配动态响应和延迟。Postman/Apifox Mock:文档驱动快速 Mock,适合前后端并行开发。Mountebank:多协议 Mock(HTTP/TCP),适合遗留系统。服务虚拟化平台(如 Hoverfly、商业 ServiceV):录制生产流量回放,适合复杂依赖链。
  • 选型:单接口用 WireMock 够;要录放用 Hoverfly;大团队统一治理用平台化 Mock 服务注册发现。关键是 Mock 契约和真实服务同步更新,否则测的是假绿。

👔 Raina面试官: Mock 测过了,还需要联调吗?

🙋 候选人:

  • 必须。Mock 保回归速度,联调保真实集成。
  • 发布前要有去 Mock的联调环境和冒烟清单,Mock 覆盖不了的签名、证书、限流行为只能在真实或沙箱验证。


如何用 AI 工具辅助写用例、写脚本?有什么坑?

👔 Raina面试官: 现在 AI 工具很多,你怎么用它辅助写用例和脚本?有什么坑?

🙋 候选人:

  • AI 适合扩思路、写骨架、改样板,不适合无脑当最终交付物。
  • 好用场景:给需求文档让 AI 列测试点 checklist;把接口文档生成 pytest 骨架;把失败日志解释成可能原因;正则/XPath 写法提示。工作流:AI 出草案 → 人工补业务规则和 P0 边界 → 评审 → 入库。
  • 坑:幻觉用例——测了不存在的字段或错误业务规则;过时 API——训练数据旧,生成的 Selenium 代码跑不起来;泄露敏感——把生产数据贴进公网模型;过度泛化——测试登录给 50 条重复用例。原则:AI 是副驾驶,责任人和评审不能省。

👔 Raina面试官: 团队推行 AI 写用例,质量怎么控?

🙋 候选人:

  • 定prompt 模板 + 抽样人工 audit + 和自动化绑定。
  • 模板里强制输入需求 ID、验收标准、排除范围;每周抽 10% AI 用例评审;能自动化的必须落地跑通才算数,写在纸上的不算。


代码覆盖率工具(JaCoCo、Istanbul)测试工程师需要会用吗?

👔 Raina面试官: JaCoCo、Istanbul 这些覆盖率工具,测试工程师需要会用到什么程度?

🙋 候选人:

  • 需要会看、会解读、会推动补洞,不必会改 JVM 字节码插桩原理。
  • JaCoCo(Java)、Istanbul/nyc(JS)在 CI 里很常见。测试要会:跑覆盖率报告、区分行覆盖 vs 分支覆盖、找到核心业务低覆盖模块、在评审里用数据说话——支付模块分支覆盖 40%,缺退款异常路径。
  • 也要会泼冷水:覆盖率高 ≠ 测得好,100% 行覆盖可能只是 assert true。覆盖率适合当门禁下限(比如新代码 ≥70%),不是唯一质量指标。测试和开发共同对核心模块覆盖率负责。

👔 Raina面试官: 开发不愿意补单测怎么办?

🙋 候选人:

  • 用事故案例 + 门禁 + 测试补接口层组合推。
  • 线上 bug 复盘指出有单测 5 分钟能拦住;CI 设新代码覆盖率不降;测试先把 P0 接口自动化补上,单测作为长期目标而不是一夜达成。

最近更新: 2026/8/21 08:07
Contributors: weixin_55062269
Prev
移动端与兼容性测试
Next
综合与开放题