Raina-软件测试指南
AI测试学习圈
  • 基础测试方向

    • 测试基础理论面试题
    • 测试用例设计面试题
    • 功能测试面试题
    • 性能测试面试题
    • 自动化测试面试题
    • 接口测试面试题
    • 移动端测试面试题
    • 安全测试面试题
    • 测试管理面试题
    • 测试工具面试题
    • 敏捷测试面试题
    • 数据库测试面试题
    • 兼容性测试面试题
    • 测试环境管理面试题
    • 测试文档面试题
    • 测试编程语言面试题
    • 测试最佳实践面试题
    • 项目实战面试题
  • AI 测试方向

    • AI测试基础与AI辅助测试面试题
    • 大模型LLM应用测试面试题
    • AI Agent与AIGC评估面试题
    • 机器学习模型与AI安全测试面试题
    • AI Agent协议与扩展机制测试面试题
  • 业务领域专项

    • 电商交易系统测试面试题
    • IM即时通讯系统测试面试题
    • 支付与金融系统测试面试题
    • 直播与短视频系统测试面试题
    • 社交Feed系统测试面试题
    • 外卖与出行系统测试面试题
    • 在线教育系统测试面试题
    • RTC实时音视频系统测试面试题
    • 办公SaaS与多租户系统测试面试题
关于作者
🌍 知识星球
📕 小红书
📺 B站
AI测试学习圈
  • 基础测试方向

    • 测试基础理论面试题
    • 测试用例设计面试题
    • 功能测试面试题
    • 性能测试面试题
    • 自动化测试面试题
    • 接口测试面试题
    • 移动端测试面试题
    • 安全测试面试题
    • 测试管理面试题
    • 测试工具面试题
    • 敏捷测试面试题
    • 数据库测试面试题
    • 兼容性测试面试题
    • 测试环境管理面试题
    • 测试文档面试题
    • 测试编程语言面试题
    • 测试最佳实践面试题
    • 项目实战面试题
  • AI 测试方向

    • AI测试基础与AI辅助测试面试题
    • 大模型LLM应用测试面试题
    • AI Agent与AIGC评估面试题
    • 机器学习模型与AI安全测试面试题
    • AI Agent协议与扩展机制测试面试题
  • 业务领域专项

    • 电商交易系统测试面试题
    • IM即时通讯系统测试面试题
    • 支付与金融系统测试面试题
    • 直播与短视频系统测试面试题
    • 社交Feed系统测试面试题
    • 外卖与出行系统测试面试题
    • 在线教育系统测试面试题
    • RTC实时音视频系统测试面试题
    • 办公SaaS与多租户系统测试面试题
关于作者
🌍 知识星球
📕 小红书
📺 B站
  • 基础测试方向

    • 测试基础理论面试题
    • 测试用例设计面试题
    • 功能测试面试题
    • 性能测试面试题
    • 自动化测试面试题
    • 接口测试面试题
    • 移动端测试面试题
    • 安全测试面试题
    • 测试管理面试题
    • 测试工具面试题
    • 敏捷测试面试题
    • 数据库测试面试题
    • 兼容性测试面试题
    • 测试环境管理面试题
    • 测试文档面试题
    • 测试编程语言面试题
    • 测试最佳实践面试题
    • 项目实战面试题
  • AI 测试方向

    • AI测试基础与AI辅助测试面试题
    • 大模型LLM应用测试面试题
    • AI Agent与AIGC评估面试题
    • 机器学习模型与AI安全测试面试题
    • AI Agent协议与扩展机制测试面试题
  • 业务领域专项

    • 电商交易系统测试面试题
    • IM即时通讯系统测试面试题
    • 支付与金融系统测试面试题
    • 直播与短视频系统测试面试题
    • 社交Feed系统测试面试题
    • 外卖与出行系统测试面试题
    • 在线教育系统测试面试题
    • RTC实时音视频系统测试面试题
    • 办公SaaS与多租户系统测试面试题

办公 SaaS 与多租户系统测试面试题

本文档包含 18 道办公 SaaS / 多租户(B 端、企业服务)系统方向的高频面试题,覆盖多租户隔离模型、租户开通注销、租户配置定制、用户与组织权限模型、复杂权限(RBAC/ABAC)、单点登录 SSO、第三方账号绑定、跨组织协作、文档协作(CRDT/OT)、工作流引擎、表单引擎、数据导入导出、集成与开放 API、计费与订阅、数据安全合规、灾备、SaaS 监控与 SLA。办公 SaaS(钉钉、飞书、企业微信、Salesforce、Slack、Notion、明道、北森、用友、金蝶、Workday)是企业服务赛道的核心方向,测试岗位的差异化竞争力之一。


一、多租户架构(4题)

Q1: SaaS 多租户的三种隔离模型有什么差异?怎么测?

答案:

多租户是 SaaS 系统的基础架构,"租户"对应一个企业客户,多租户系统让多个企业共享一套软件但数据互相隔离。隔离做不好就是 P0 级数据泄露事故。

维度完全共享Schema 隔离独立数据库
数据隔离字段 tenant_id 区分不同 Schema不同数据库
成本最低中最高
定制能力弱中强
安全风险高(SQL 写错串号)中低
备份恢复全租户一起按 Schema按租户独立
扩展性容易中难(数据库连接池压力大)
升级运维简单简单复杂
适用规模海量小客户中等客户大客户 / 私有化

选型建议:

完全共享。适合中小企业 SaaS(如打卡、CRM、营销 SaaS)。订单量大、客单价低、定制需求弱。

Schema 隔离。适合中型 SaaS(如人力资源、协同办公)。

独立数据库。适合大企业 SaaS、私有化部署(如金融、政府、医疗)。

混合模式。多数大厂 SaaS 用混合:小客户共享、大客户独立。

测试维度:

数据隔离正确性。

跨租户数据查询应被拒绝。租户 A 查询时只看到自己数据,看不到 B 的数据。

每条查询 / 写入都应带 tenant_id,没带的直接拒绝(这是 Bug 防线)。

测试方法:手动调接口,故意省略 tenant_id 或传错 tenant_id,断言被拒。

越权测试。

A 公司用户尝试操作 B 公司数据(修改 URL 中的 ID、伪造请求)。

测试同事 / 上下级越权(详见 Q6 权限)。

性能影响。

多租户下索引设计(tenant_id 一般加在每个索引前面)。

热点租户(某大客户数据量极大)的性能。

租户级限流(防止单租户消耗光资源)。

迁移与扩展。

新租户开通的快速性。

租户从共享模式迁到独立模式(升级时常见)。

租户分库分表(数据量大的租户单独分)。

灾备。

按租户的备份恢复。

某租户数据损坏的恢复不应影响其他租户。

成本归属。

各租户使用资源的统计(带宽、存储、计算)。

按租户计费的准确性(详见 Q15)。

实战中"租户数据串号"是 SaaS 系统 P0 事故的最常见原因,测试同学要把"租户隔离"作为最高优先级,所有接口都要专门跑越权测试。

Q2: 租户开通、注销和迁移怎么测?

答案:

租户生命周期管理是 SaaS 平台的基础能力,关系到客户开发、客户成功、合规退出。

租户开通流程:

注册申请。

填写企业基本信息(公司名、统一社会信用代码、行业、规模、地区)。

填写联系人信息(管理员姓名、邮箱、手机号)。

选择套餐 / 试用模式。

资质审核。

营业执照上传。

法人 / 联系人身份核验。

部分行业额外资质(如金融、医疗)。

开通。

创建租户实例(数据库 / Schema / 资源分配)。

创建初始管理员账号。

发送开通通知(邮件、短信)。

引导用户登录、配置。

初始化。

默认权限配置。

默认数据导入(部门模板、岗位模板)。

新手引导。

试用 / 转正。

试用期(一般 7~30 天)。

试用到期前提醒。

试用结束的处理(暂停 vs 关闭)。

转正后的数据延续(试用期数据可用、不可用)。

测试维度:

开通流程的顺畅。

各步骤无卡顿、字段校验合理。

异常处理。重复企业名、企业已存在、企业被封禁。

资质审核流程的合规与时效。

新租户的隔离正确性(详见 Q1)。

新租户的默认配置正确。

并发开通(运营批量创建租户)的性能。

租户注销流程:

注销原因。

客户主动注销(不续费、改用其他产品)。

强制注销(违规、欠费、监管要求)。

注销影响。

数据导出。客户要求导出所有数据(合规要求)。

数据保留期。注销后数据保留多久(一般 30~90 天可恢复,之后永久删除)。

数据销毁。永久删除的数据真正不可恢复(包括备份)。

关联清理。第三方集成、数据共享的关联清理。

费用结算。

退还预付费余额(按合同条款)。

最后一次发票。

财务对账。

测试要点。

数据导出完整性(所有用户、文档、消息、文件都能导出)。

数据保留期内能否恢复。

数据销毁后真不可恢复(包括备份、缓存)。

第三方关联的清理(避免悬空依赖)。

注销不影响其他租户。

租户迁移:

迁移场景。

升级套餐(从共享模式升级到独立部署)。

降级套餐(独立部署降为共享)。

跨地区迁移(从国内服务器迁到海外,或反过来)。

合并租户(公司被收购)。

拆分租户(公司分立)。

迁移流程。

迁移前评估(数据量、风险)。

迁移窗口(一般凌晨低峰)。

数据迁移(在线 / 离线)。

切换流量。

迁移后验证。

回滚预案。

测试要点。

数据完整性。迁移后所有数据都在新位置。

业务连续性。迁移期间客户能否继续用(在线迁移)。

性能。大客户的迁移时长(百 GB 数据要几小时)。

回滚。迁移失败能否回到原状态。

并发迁移。多个租户同时迁移的资源管控。

权限与审计:

租户开通 / 注销 / 迁移的权限(一般是平台运营 + 销售 + 客户成功才能操作)。

每次操作的审计日志(操作人、时间、原因)。

敏感操作的二次确认(如永久删除数据)。

实战中租户生命周期管理是平台运营的基础设施,测试同学要保证每个环节都"无遗漏、可追溯、可回滚"。

Q3: 多租户数据隔离怎么测?越权测试用例怎么设计?

答案:

数据隔离测试是多租户系统的"红线"测试,要求 100% 覆盖、0% 遗漏。

测试理论:

水平越权。同级用户互相访问(A 公司用户访问 B 公司数据)。

垂直越权。低权限用户访问高权限功能(普通员工访问管理员功能)。

数据越权。访问数据的边界(详见 Q6)。

接口越权。

跨租户接口访问。

跨部门接口访问。

跨用户接口访问。

数据越权测试用例设计:

URL 篡改。

接口 URL 中带 ID(如 /api/document/123),尝试修改 ID 为其他租户的资源。

预期:返回 403 或 404,不能返回数据。

请求参数篡改。

请求体中的 tenantId、organizationId、userId 等字段。

修改为其他租户的值。

预期:服务端从 session / token 取真实 tenantId,不信任前端传值。

文件上传 / 下载。

上传到其他租户的文件夹。

下载其他租户的文件(猜文件 URL)。

预期:拒绝。

API 接口。

直接调用其他租户能调用的 API。

通过 API 列表(/api/list)尝试获取其他租户的资源。

预期:每个 API 都有租户级权限校验。

水平越权测试用例:

同级数据访问。

A 部门员工尝试访问 B 部门员工的工资单。

A 项目成员尝试访问 B 项目的文档。

A 客户的销售尝试访问 B 客户的销售数据。

预期:除非有明确授权(数据共享、跨部门协作),否则拒绝。

被授权后的数据范围。

被授权访问 B 项目,但只能看到指定文档,不能看其他文档。

被授权查看薪资,但只能看自己直接下属,不能看其他。

预期:权限范围精确。

垂直越权测试用例:

权限提升尝试。

普通员工尝试创建部门(管理员功能)。

部门管理员尝试创建租户(超级管理员功能)。

API 直接调用。

知道高权限接口的 URL,直接调用。

预期:所有高权限 API 都有权限校验。

UI 元素绕过。

UI 上隐藏的按钮,通过 API 直接调用对应功能。

预期:UI 隐藏只是视觉效果,后端必须有权限校验。

测试方法:

用例矩阵。

按"角色 × 数据 × 操作"建立用例矩阵。

每个组合都有正向和反向用例。

自动化越权测试。

写自动化脚本,伪造各种身份调用 API。

可用 Burp Suite、自研工具。

每次发版本前跑全量越权回归。

红队测试。

模拟黑客攻击,专门找越权漏洞。

第三方安全公司渗透测试。

代码审查。

每个新接口的代码审查重点关注权限校验。

数据库查询是否都带 tenant_id。

合规:

GDPR / 个保法对数据隔离有明确要求。

越权访问可能违反法律法规。

监管检查时要展示越权防护测试报告。

实战中越权 Bug 是 SaaS 系统的高频严重 Bug,建议测试同学把越权测试作为"硬性专项",每月跑一遍全量回归。

Q4: 多租户配置个性化(界面/字段/流程)怎么测?

答案:

SaaS 的核心竞争力之一是"标准化产品 + 个性化定制",让每个租户都能按自己需求配置界面、字段、流程,但又不脱离平台的统一架构。

可定制维度:

UI 定制。

Logo(每个租户上传自己的 Logo)。

品牌色(按 CI 规范调整)。

界面布局。

字体、字号。

国际化(多语言、多时区)。

字段定制。

自定义字段(在标准字段基础上添加业务字段)。

字段类型(文本、数字、日期、下拉、多选、关联、附件、富文本)。

字段属性(必填、唯一、默认值、校验规则)。

字段权限(部分字段对部分角色可见 / 不可见 / 可编辑)。

流程定制。

工作流(详见 Q11)。

审批流。

通知规则。

权限策略。

数据视图定制。

列表视图(显示哪些列、排序、过滤、分组)。

详情页布局。

报表 / 仪表盘。

集成定制。

第三方系统集成(详见 Q14)。

自定义按钮(调用外部 API)。

测试维度:

定制能力的完整性。

每个可定制项都按预期工作。

定制后立即对该租户的所有用户生效。

不同租户的定制互不影响。

定制的合理性约束。

不能定制成"看不到核心功能"。

不能定制成"权限漏洞"(如把"敏感字段"设为所有人可见)。

平台保留某些字段不允许删除(如 ID、创建时间)。

定制的版本管理。

定制后能查看历史版本。

定制错了能回滚。

定制的导入导出(一个租户配置好后导出,另一个租户导入复用)。

定制对升级的影响。

平台升级时(新增标准字段、改名等)不能破坏租户的定制。

要测各种升级场景下的兼容性。

定制的性能。

复杂定制(百个自定义字段、复杂流程)下的性能。

定制查询的性能(不能因为定制让查询超时)。

低代码 / 无代码:

部分 SaaS 提供"低代码"能力,让客户自己开发应用(如钉钉宜搭、飞书多维表格、Salesforce Lightning)。

测试要点:

低代码工具的功能完整性。

生成的应用的稳定性。

生成的应用的性能。

生成的应用的安全(防止用户写恶意逻辑)。

权限管理:

定制功能的权限(一般是租户管理员才能定制)。

跨租户的最佳实践共享(行业模板)。

平台升级与租户定制的兼容性策略。

合规:

定制不能违反平台规则。

定制内容(如自定义字段的命名)的内容审核。

GDPR / 个保法对自定义字段(特别是个人信息字段)的合规要求。

实战中"个性化"是 SaaS 销售的核心卖点,但也是 Bug 的高发地。测试同学要建立"定制场景库"覆盖各种可能的客户配置。


二、权限与组织(5题)

Q5: 用户、组织、角色、权限模型怎么测?

答案:

SaaS 系统的权限模型是测试同学最常面对的"复杂业务",理解错就漏越权 Bug。

核心概念:

用户(User)。账号 + 个人信息。

组织(Organization / Tenant)。企业实体,对应 SaaS 的"租户"。

部门(Department)。组织内的层级结构,多级树形。

岗位(Position)。员工的职位(如"研发工程师""产品经理")。

角色(Role)。权限的集合(如"管理员""普通员工""项目经理")。

权限(Permission)。具体的操作(如"查看薪资""创建项目""发送公告")。

用户组(User Group)。用户的灵活分组(如"项目组成员""紧急联系人")。

关系:

用户 ∈ 部门。一个用户属于一个或多个部门。

用户 ∈ 用户组。

用户 ⊇ 角色。一个用户可拥有多个角色。

角色 ⊇ 权限。一个角色由多个权限组成。

测试维度:

数据模型。

用户的多部门归属。

部门的层级(一般 ≤ 10 层)。

角色的层级(如管理员包含普通员工权限)。

继承关系。

部门的层级继承(上级部门管理员可看下级部门)。

角色的层级继承。

CRUD。

每个对象的增删改查。

批量操作(批量创建用户、批量分配角色)。

异常场景。

用户离职(保留还是删除数据)。

用户调岗(部门变化、角色变化)。

部门解散(人员归属调整)。

角色合并 / 拆分。

权限传播。

新增用户后的默认权限。

调岗后权限的自动调整。

权限变更的实时性(立即生效还是下次登录生效)。

特殊场景。

兼任。一个人在多个部门兼任。

代理。某人请假期间他人代理其工作。

权限委托。临时把权限委托给他人。

外部用户。非组织内的用户(如外部合作伙伴)。

数据范围权限:

可见范围。

仅本人。

本部门。

本部门及下级部门。

全公司。

跨公司(合作伙伴)。

操作范围。

仅自己创建的。

仅分配给自己的。

部门内的。

全公司的。

测试用例:

正向。每种角色 + 数据范围的组合都能正常操作。

反向。每种角色不应做的操作(详见 Q3 越权测试)。

边界。

刚好在范围内 vs 刚好在范围外。

权限变更瞬间的处理(用户正在操作时被收回权限)。

跨组织。

跨部门协作时的权限合并。

外部用户的权限限制。

性能:

大组织(10 万用户、千级部门)的权限计算性能。

权限缓存与失效(权限变更后缓存何时失效)。

权限查询的优化(不能每次操作都全表扫描)。

合规:

权限分配的审计。谁分配了什么权限给谁,可追溯。

最小权限原则。默认给最小权限,按需开放。

定期权限审计。每季度审计权限,清理多余授权。

权限模型是 SaaS 系统的"主干网络",测试同学要把它当作核心保障,全面覆盖各类场景。

Q6: 复杂权限模型(RBAC / ABAC / 数据权限)怎么测?

答案:

复杂 SaaS 系统的权限远不止"角色 + 权限"那么简单,要支持基于属性、上下文、数据的精细化控制。

权限模型分类:

RBAC(Role-Based Access Control,基于角色的访问控制)。

经典模型,按角色分配权限。

简单清晰,多数 SaaS 用这个。

不灵活,不能根据具体数据做权限决策。

ABAC(Attribute-Based Access Control,基于属性的访问控制)。

按"用户属性 + 资源属性 + 环境属性 + 操作"动态决策。

例如:用户在工作时间 + 在公司网络 + 操作的资源是部门内 → 允许。

灵活但复杂。

PBAC(Policy-Based Access Control,基于策略)。

类似 ABAC,按策略表达式决策。

XACML 是典型实现。

ACL(Access Control List,访问控制列表)。

每个资源直接关联可访问的用户列表。

适合"资源稀少、用户多"的场景。

DAC(Discretionary Access Control,自主访问控制)。

资源的所有者决定谁能访问。

适合文档协作(创建者可分享、撤回)。

MAC(Mandatory Access Control,强制访问控制)。

系统统一控制,用户不能改变。

适合高安全场景(军事、政府)。

数据权限的常见场景:

行级权限。

某人只能看自己创建的、自己负责的、自己部门的数据。

按时间维度(只能看最近 N 天)。

按地域(只能看自己负责区域)。

列级权限。

某些字段对部分人不可见(如薪资字段对普通员工不可见)。

字段可见 / 不可见 / 脱敏(如电话号码显示为 138****1234)。

操作权限。

查看、修改、删除、导出、分享、批量操作。

不同人对同一行数据的不同操作权限。

时间权限。

仅工作时间可访问。

某权限有有效期。

测试维度:

策略组合。

多策略叠加(角色权限 + 数据权限 + 时间权限)。

冲突解决(不同策略给出不同结论时谁优先)。

策略评估。

策略评估速度(一次操作的权限检查应 < 50ms)。

策略缓存与失效。

复杂场景。

跨部门协作。A 部门员工被授权访问 B 部门的项目,权限范围。

继承。下级继承上级权限,但有例外。

委托。临时把权限委托给他人。

代理。请假期间他人代理。

应急访问。紧急情况下能否申请临时权限。

边界。

刚好在范围内 vs 刚好在范围外。

权限变更瞬间的处理。

会话过期与权限。

权限审计。

每次访问的权限决策日志。

权限变更日志(谁改了什么权限)。

定期权限审计报告。

测试方法:

矩阵化用例。

按"角色 × 资源 × 操作 × 上下文"建立矩阵。

每个组合都有用例。

自动化覆盖。

正向用例(应允许的)。

反向用例(应拒绝的)。

每次发版本回归。

策略测试器。

如果用 OPA(Open Policy Agent)或自研策略引擎,提供策略测试器。

测试策略规则的正确性。

红队渗透。

模拟攻击者尝试越权。

第三方安全公司做渗透测试。

合规:

最小权限原则。

权限分离(如审批人和申请人不能是同一人)。

权限审计要求。

GDPR / 个保法对数据访问的合规要求。

实战中复杂权限是 SaaS 系统的"硬骨头",越复杂越容易出 Bug。测试同学要保持"勇于复杂但坚守底线"的态度,严防越权 Bug。

Q7: 单点登录 SSO(SAML / OIDC / OAuth2)怎么测?

答案:

SSO(Single Sign-On,单点登录)是企业 SaaS 的标配,让企业员工用统一身份访问多个应用。理解协议是测试的基础。

主流 SSO 协议:

SAML 2.0(Security Assertion Markup Language)。

XML 格式,企业级老牌协议。

适合 Web 应用、跨域单点登录。

复杂,配置项多。

仍是企业 SSO 的事实标准(Salesforce、Workday 等都用)。

OIDC(OpenID Connect)。

基于 OAuth2 的身份层。

JSON 格式,现代友好。

适合移动端、SPA 应用。

新一代企业 SSO 标配。

OAuth 2.0。

授权协议,不是认证协议(容易和 OIDC 混淆)。

适合"第三方登录""API 授权"。

CAS(Central Authentication Service)。

老牌协议,国内政企用得多。

LDAP / AD 集成。

直接对接企业目录服务。

属于"传统单点登录",多数 SSO 解决方案能集成。

SSO 流程(以 OIDC 为例):

用户访问应用 A。

应用 A 重定向到身份服务(IdP,如公司的钉钉、Okta)。

身份服务核验用户身份(用户名密码、OTP、人脸)。

身份服务返回带签名的 ID Token 给应用 A。

应用 A 验证 ID Token,登录成功。

后续用户访问应用 B 时,浏览器已有 IdP 的会话,直接 SSO。

测试维度:

正向 SSO 流程。

新用户首次 SSO。

已登录用户 SSO 到第二个应用(真正的"单点")。

不同应用的跳转链路。

身份提供方(IdP)兼容。

主流 IdP(钉钉、企业微信、飞书、AD、Okta、Auth0、Google Workspace)兼容性。

多 IdP(一个企业可能配多个 IdP)。

IdP 故障的兜底。

凭证安全。

Token 加密签名正确。

Token 有效期合理(一般 1 小时)。

Refresh Token 的安全(用一次就失效)。

Token 泄露后能否撤销。

用户绑定。

外部用户(IdP 中的用户)和应用内用户的关联。

用户邮箱 / 手机号变化时的处理。

用户离职后 IdP 删除,应用内如何处理。

登出。

单点登出(一个应用登出,所有应用同时登出)。

全局会话管理。

强制下线某用户的所有会话。

异常路径。

Token 过期。

签名错误。

身份服务返回的字段缺失。

时钟不同步导致 Token 误判过期。

跨域问题。

多端 SSO。

PC 浏览器。

移动 APP。

桌面应用。

移动浏览器。

跨 IdP 切换(如用户从 IdP A 切到 IdP B)。

特殊场景。

JIT(Just-In-Time)provisioning。用户首次 SSO 时自动创建应用账号。

SAML 断言中的属性映射(IdP 字段映射到应用内字段)。

多因素认证(MFA)。

设备绑定。

性能。

SSO 流程的总耗时(一般 < 3 秒)。

高峰期(早上 9 点企业员工同时登录)的承载能力。

身份服务的可用性 SLA。

合规:

身份认证日志(每次登录有审计记录)。

异常登录告警(异地、异常时段、异常设备)。

合规要求(如金融行业的二要素认证)。

测试方法:

真实环境测试。和真实 IdP(钉钉、企微测试租户)联调。

协议解析。Wireshark / 浏览器开发者工具查看 SAML / OIDC 报文。

边界测试。各种异常场景的兜底。

兼容性测试。多浏览器、多平台、多 IdP。

实战中 SSO 是企业 SaaS 上线的"前置条件",做不好客户根本不会买。测试同学要把它做成"开箱即用、各种 IdP 都兼容"的成熟功能。

Q8: 第三方账号绑定(钉钉、企微、飞书)测试

答案:

国内办公 SaaS 一定要支持钉钉、企业微信、飞书三大办公平台的账号集成,让用户用既有账号登录、让组织架构自动同步。

集成方式:

OAuth / 扫码登录。

用户在 SaaS 上点"钉钉登录"。

跳到钉钉确认授权。

回调回 SaaS 完成登录。

JS-SDK 嵌入。

把 SaaS 嵌入到钉钉 / 企微 / 飞书的工作台。

用户在原生应用内打开 SaaS。

通过 JS-SDK 调用原生能力(消息、通知、组织架构)。

OpenAPI 集成。

调用钉钉 / 企微 / 飞书的 API 获取数据。

推送数据到对方平台。

事件订阅(如新员工入职、离职)。

组织架构同步。

把钉钉 / 企微 / 飞书的组织架构(部门、员工)同步到 SaaS。

自动 / 手动同步。

增量 / 全量同步。

冲突解决(一边改了另一边没改)。

消息通知。

SaaS 内的通知推送到钉钉 / 企微 / 飞书。

利用对方的强通知能力。

消息可点击跳回 SaaS。

测试维度:

登录流程。

首次登录(自动创建账号或绑定已有账号)。

非首次登录(直接登录)。

授权撤销后再登录。

多账号场景(同一手机号注册了多个钉钉账号)。

跨企业(一个手机号在多个钉钉企业,要测选择)。

授权范围。

授权信息(手机号、姓名、头像、邮箱)。

授权未授权字段的处理。

授权过期后的处理。

组织架构同步。

全量同步。把整个组织架构拉过来。

增量同步。只同步变更(新增、修改、删除)。

同步频率。实时(webhook)或定时(每小时)。

冲突解决。两边都改的字段冲突(一般以钉钉 / 企微 / 飞书为准)。

大组织。10 万人组织的同步性能。

特殊用户。机器人账号、临时账号、外部联系人。

消息推送。

工作通知。

应用消息。

@用户。

群通知。

卡片消息(带按钮,点击跳回 SaaS)。

消息送达率。

消息点击率。

JS-SDK 集成。

获取登录态。

调用对方 API(如发送消息、获取用户信息、获取部门)。

打开对方页面(如打开聊天界面)。

调用扫码、定位、拍照等设备能力。

跨平台。

iOS、Android、PC、Web 版本的兼容。

不同对方平台版本的兼容。

错误处理。

授权失败的提示。

API 调用失败的兜底。

对方服务故障的降级。

合规。

授权信息的合规使用(按用户授权范围)。

用户撤销授权后的数据清理。

不能滥发消息(钉钉 / 企微 / 飞书都有反垃圾机制)。

成本。

API 调用配额(钉钉 API 有调用上限)。

消息发送配额。

存储和带宽成本。

测试方法:

真实环境测试。注册钉钉 / 企微 / 飞书开发者账号,创建测试应用、测试组织。

事件模拟。模拟新员工入职、离职、调岗等事件,看同步是否正确。

性能测试。大组织同步的性能。

错误注入。模拟对方 API 失败、超时、限流,看 SaaS 的容错。

实战中钉钉 / 企微 / 飞书集成是国内办公 SaaS 的"敲门砖",做好了客户接入门槛低,做不好客户根本不会选你。测试同学要熟悉这三大平台的开放能力。

Q9: 跨组织协作和外部共享怎么测?

答案:

办公 SaaS 不仅是组织内部使用,越来越多需要支持跨组织协作(如和合作伙伴、客户、供应商共享数据)。这是个权限和安全的难题。

跨组织协作场景:

文档共享。

A 公司创建的文档分享给 B 公司的人查看 / 编辑。

类似 Google Docs 共享、飞书文档外部成员。

项目协作。

跨组织项目(如甲方 + 乙方 + 第三方)。

成员来自多个组织。

供应链协作。

订单、库存、物流的跨组织共享。

如制造业的供应商管理系统。

外部访问。

外部用户访问内部资源。

如咨询顾问临时访问客户的系统。

测试维度:

共享方式。

链接分享。生成共享链接,知道链接的人可访问。

实名邀请。邀请特定的外部账号。

域邀请。邀请整个外部域(@company.com 的所有人)。

公开分享。在公开互联网可访问。

权限粒度。

仅查看。

可评论。

可编辑。

可下载。

可分享给他人(二级分享)。

可管理(添加 / 删除成员)。

时效控制。

分享过期时间。

分享密码保护。

分享次数限制。

可随时撤销分享。

权限传播。

外部用户能否再分享给他人。

二级分享的权限继承。

撤销原分享时二级分享的处理。

数据隔离。

外部用户只能看到被分享的资源,不能看其他。

外部用户不能修改非授权字段。

外部用户的操作有独立的审计日志。

外部用户管理。

外部用户的标识(在 UI 上明显标注"外部")。

外部用户的权限上限。

外部用户的注销。

外部用户的合规管理。

跨组织数据同步。

A 公司的数据更新 → 同步到 B 公司能看到的视图。

数据更新的延迟、一致性。

冲突解决(两边都改)。

合规。

数据出境(如果外部用户在海外)。

数据保留(撤销分享后数据保留多久)。

第三方审计(外部用户的操作可监管)。

特殊场景。

外部用户离职。原组织能否通知 A 公司撤销分享。

A 公司被并购。原分享是否仍有效。

A 公司主动撤销所有外部访问。

测试用例:

正向。各种共享方式都能正常工作。

反向(详见 Q3 越权)。外部用户不能越权访问其他资源。

边界。

刚好在分享范围内 vs 刚好在外。

权限变更瞬间的处理。

时效边界(刚好过期 vs 还在期内)。

异常路径。

外部用户访问已撤销的链接。

外部用户的账号被禁用。

A 公司的资源被删除。

性能。

万级外部用户的承载。

跨组织数据同步的性能。

合规:

外部分享需要内部审批(敏感数据不能随便分享)。

外部分享的审计(谁分享了什么给谁)。

外部用户的数据合规(GDPR、个保法对跨主体数据传输的要求)。

实战中跨组织协作是 SaaS 系统的"高级能力",做好了能进入大客户的供应链,做不好就是数据泄露事故。测试同学要把它作为重点保障,特别是权限和合规。


三、典型 SaaS 功能(5题)

Q10: 文档协作(多人编辑、版本、冲突)怎么测?

答案:

文档协作是办公 SaaS 的杀手锏(Google Docs、飞书文档、腾讯文档、Notion、Coda),多人实时同编辑是技术上最复杂的功能之一。

冲突解决算法:

OT(Operational Transformation)。

中心服务器收集所有操作,按时间顺序"变换"操作以应用。

适合中心化架构,性能好。

实现复杂。

代表:Google Docs。

CRDT(Conflict-free Replicated Data Type)。

每个操作都是"无冲突"的,可以任何顺序应用都得到相同结果。

适合分布式、P2P 架构。

数据大(每个字符可能附带 metadata)。

代表:飞书文档、Notion 部分用 CRDT。

测试维度:

基础编辑。

文字编辑(输入、删除、复制、粘贴)。

格式(粗体、斜体、颜色、字号、对齐)。

样式(标题、列表、引用、代码块)。

图片、视频、文件嵌入。

表格。

链接。

数学公式。

多人协作。

光标显示。每个用户的光标位置实时显示,带姓名标识。

并发编辑。两个人同时在相邻位置编辑,结果应合理。

冲突场景。

两个人同时在同一位置插入文字(结果应有顺序,符合预期)。

一个人删除一段,另一个人在删除范围内编辑(一般以删除为准)。

一个人撤销操作,另一个人继续编辑(撤销是否影响他人)。

实时性。

编辑到对方看到的延迟(一般 < 1 秒)。

弱网下的延迟和体验。

光标显示的实时性。

版本管理。

自动保存。每隔几秒自动保存。

版本快照。每隔几分钟生成快照。

历史版本。能查看任意历史版本。

恢复历史版本。

版本对比。两个版本的差异高亮。

权限。

文档权限(详见 Q9 跨组织共享)。

只读模式。

部分编辑(某些段落锁定)。

评论(不直接修改,只能评论)。

评论与建议。

评论:在文档侧边栏的讨论。

建议模式:修改作为"建议",需作者接受才生效。

@提及。

历史 / 已解决评论的归档。

离线编辑。

无网络时本地编辑。

恢复网络后同步到云端。

离线编辑和他人在线编辑的冲突解决。

性能。

大文档(100 页、几万字)的加载和编辑性能。

多人(10+ 人同时编辑)的性能。

复杂内容(嵌入表格、图片、视频)的渲染。

异常处理。

编辑过程中网络断开,恢复后能接续。

服务端故障的兜底(本地缓存编辑、提示用户)。

格式错误的容错。

跨平台。

PC(Web、桌面)、移动(iOS、Android)的编辑体验。

跨设备同步(PC 上编辑、手机看更新)。

文档格式互通(导入 Word / PDF、导出 Word / PDF)。

测试方法:

多端联调。多人多端同时编辑,看结果一致性。

自动化协作模拟。脚本模拟多用户并发编辑。

混沌测试。编辑过程中注入网络故障、服务端故障。

历史版本回归。每次修改后查看历史,断言历史能恢复。

实战中文档协作是 SaaS 系统的"门面"功能,做不好就是用户流失,做好了是核心竞争力。测试同学要把它当作"超高优先级"功能保障。

Q11: 工作流引擎和审批流测试

答案:

工作流引擎是企业 SaaS 的核心模块(如请假、报销、采购、入职、合同),让企业流程标准化、可追溯、可优化。

工作流核心概念:

流程定义。流程的模板(节点、流转规则、表单字段)。

流程实例。一次流程的运行实例(如张三 5 月请假申请)。

任务。流程中的具体步骤(如领导审批、HR 录入)。

参与者。任务的执行人(具体人 / 角色 / 部门)。

流转规则。从一个节点到下一个的条件(审批通过则去下一个、不通过则退回)。

工作流模式:

顺序。A → B → C → D。

并行。A → (B, C) → D。

条件分支。A → IF 金额 > 1000 → 加签 B → C。

会签。多人都要审批通过才进入下一步。

或签。任一人审批通过就进入下一步。

循环。可能多次走某节点。

测试维度:

流程定义。

可视化流程设计器(拖拽节点、连线)。

各种节点类型(开始、人工任务、自动任务、条件、并行、汇合、结束)。

表单字段配置。

参与者配置(指定人 / 角色 / 部门 / 上级 / 复杂规则)。

流程版本管理。

流程执行。

发起流程。

任务到达执行人。

执行人处理任务(同意、拒绝、转交、退回、加签)。

流程流转到下一节点。

流程结束。

流程取消。

任务管理。

待办列表。

已办列表。

抄送列表。

委托代办。

任务催办(超时未处理)。

异常处理。

执行人离职。

执行人请假。

执行人不在指定角色。

流程节点配置错误。

数据。

流程数据(表单数据、附件、备注)的存储和查询。

流程历史的可追溯。

跨流程的数据传递。

复杂场景。

加签。审批中临时加一个审批人。

退回。退回某个节点重新审批。

知会 / 抄送。流程中通知其他人,但不影响流转。

催办。超时未处理时催办。

分支汇合。条件分支后再汇合到一个节点。

集成。

发送消息(钉钉 / 企微 / 飞书 / 邮件 / 短信)。

调用外部 API(如自动创建工单)。

接收外部触发(如收到客户邮件自动发起流程)。

性能。

大量流程并发的承载(如年底报销季)。

复杂流程(几十个节点)的执行性能。

历史数据的查询性能。

合规。

审批记录的不可篡改。

审批日志的长期保留(一般 5~10 年)。

电子签名的法律效力。

特殊场景。

紧急流程。绕过部分审批(如医院紧急药品)。

定时流程。每月自动发起的流程(如月度报告)。

多语言流程。跨国企业的多语言审批。

测试方法:

流程图穷举。每条流程的每个分支都要走一遍。

边界测试。各种条件(金额、时间、级别)的边界值。

并发测试。多人并发审批的场景。

异常测试。各种异常(断网、超时、参与者变更)的处理。

实战中工作流是企业 SaaS 的"血管",做不好就是审批积压、流程失控。测试同学要把每个流程模板都跑通,建立长期回归。

Q12: 表单引擎(动态字段、规则)测试

答案:

表单引擎是 SaaS 系统的"瑞士军刀",让客户能自定义业务表单(请假单、报销单、订单、客户信息),是低代码能力的核心。

表单核心能力:

字段类型。

基础:文本、数字、日期、时间、单选、多选、下拉、富文本。

关联:关联其他表(如选择某个客户)。

附件:图片、文件、视频。

特殊:地理位置、签名、二维码、流水号、计算字段、公式字段。

字段属性。

必填 / 选填。

唯一性。

默认值。

可见性条件(按条件显示)。

可编辑性条件(按条件可编辑)。

校验规则。

文本长度。

数字范围。

日期范围。

正则表达式。

自定义校验函数。

依赖关系。

字段 A 选择某值后字段 B 显示 / 隐藏。

字段 A 变化时字段 B 自动计算。

字段 A 和字段 B 的值必须满足某条件。

布局。

分组、分页、Tab。

响应式布局(PC、手机适配)。

打印布局(生成纸质表单)。

测试维度:

字段功能。

每种字段类型的输入、显示、编辑、保存。

字段属性(必填、默认值、校验)的生效。

关联字段的下拉数据加载、搜索、分页。

附件上传的格式、大小限制。

依赖与规则。

字段间依赖的实时性(A 变化立即触发 B)。

复杂依赖(A、B 都变化才触发 C)。

循环依赖的避免。

规则配置错误的兜底。

校验。

各种校验规则正确触发。

校验错误的提示明确。

服务端二次校验(前端校验可被绕过)。

提交。

正常提交。

部分填写的草稿保存。

提交后的状态机变更。

提交失败的兜底(不丢数据)。

查询与列表。

按字段过滤、排序、分组。

复杂条件组合。

性能(百字段、万条数据)。

权限。

字段级权限(某些字段对部分角色不可见)。

数据级权限(看哪些行)。

操作权限(查看、编辑、删除)。

数据迁移。

表单结构变更(新增字段、删除字段、改字段类型)后,已有数据如何迁移。

数据导入(Excel 导入)的兼容。

历史数据的查询。

集成。

表单作为工作流的开始节点。

表单数据作为其他系统的输入。

API 读写表单数据。

性能。

大表单(百字段)的渲染。

万条数据的列表性能。

复杂查询的性能。

复杂场景。

表单嵌套表单。

表单字段动态加载(按条件加载选项)。

跨表单数据联动。

测试方法:

模板用例。每种字段类型、每种规则都有标准测试模板。

随机表单生成。生成大量随机配置的表单,跑回归。

数据驱动。把测试数据做成 CSV / Excel,批量测。

边界与异常。极端配置、错误配置的处理。

实战中表单引擎是 SaaS 系统的"血管",几乎每个功能都用它。测试同学要把它当作核心组件保障。

Q13: 数据导入导出和批量操作测试

答案:

企业 SaaS 经常处理大量数据,数据导入导出和批量操作是高频功能,也是 Bug 高发区。

导入功能:

来源。

Excel / CSV / JSON。

从其他系统迁移(如旧 CRM、旧 HR)。

模板下载(提供标准模板)。

测试维度:

格式兼容。

各 Excel 版本(97、2003、2007+)。

CSV 编码(UTF-8、GBK、BOM)。

特殊字符(中文、emoji、引号、换行)。

数据校验。

字段校验(必填、类型、范围)。

业务校验(如手机号格式、身份证号)。

唯一性校验(不能重复)。

外键校验(关联的部门必须存在)。

错误处理。

部分行错误的处理(成功的入库、失败的报告)。

错误报告(具体行号、错误原因)。

部分回滚(要么全成功、要么全失败 vs 部分成功)。

性能。

万行 / 十万行 / 百万行的导入时长。

服务端资源占用。

异步导入(大量数据后台处理)。

进度通知。

并发。

多个用户并发导入。

同一用户多次导入。

各种异常。

文件太大。

文件损坏。

中途断网。

导出功能:

格式。

Excel / CSV / JSON / PDF / Zip。

包括所有数据 vs 仅当前视图。

测试维度:

数据完整性。

导出的内容和系统数据一致。

格式化正确(日期、数字、公式)。

权限控制。

只能导出自己有权限看的数据。

字段级权限(不能导出无权限的字段)。

敏感字段脱敏(导出时也要脱敏)。

性能。

大量数据的导出(百万行)。

异步导出。

下载链接的有效期。

合规。

导出审计(谁导出了什么)。

敏感数据导出的水印。

监管要求的数据脱敏。

批量操作:

批量删除。

批量编辑(统一修改某字段)。

批量分配(如批量分配给某负责人)。

批量审批。

批量导出。

测试维度:

正确性。

每个对象都正确处理。

部分失败的报告。

权限。

只能操作有权限的对象。

批量操作的权限严格于单个操作(如普通员工不能批量删除)。

性能。

万级对象的批量操作。

异步处理(避免超时)。

进度反馈。

事务。

要么全成功、要么全失败 vs 部分成功(按业务定义)。

回滚(万一操作错了能否撤销)。

确认。

二次确认(特别是删除、修改重要字段)。

操作前的影响范围预览。

异步处理:

任务队列。

进度查询。

任务结果通知。

任务取消。

历史任务记录。

测试方法:

数据生成。生成各种规模、各种字段值的测试数据。

性能压测。导入大量数据测系统承载。

异常注入。中途中断、各种错误数据。

并发测试。

实战中导入导出和批量操作是 SaaS 系统的"重活",做不好就是用户流失(用户数据迁不进来、数据导不出去)。测试同学要重视。

Q14: 集成与开放 API 测试

答案:

SaaS 的开放能力(API、Webhook、应用市场、低代码)是平台型 SaaS 的核心竞争力,让客户和第三方能扩展系统。

开放能力:

OpenAPI。

提供 RESTful / GraphQL API。

第三方应用通过 API 读写数据。

API 文档、SDK、示例代码。

Webhook。

事件订阅。

事件发生时回调第三方 URL。

如订单创建、用户注册、审批通过。

应用市场。

第三方应用在 SaaS 内集成。

用户安装即用。

平台对应用做审核和管理。

低代码 / 无代码。

客户自己开发简单应用。

测试维度:

API 测试。

接口功能。每个 API 按规范工作。

参数校验。各种边界、异常参数的处理。

返回格式。标准化的成功 / 失败响应。

错误码。明确的错误码体系。

版本管理。新老版本兼容。

API 性能。

接口响应时间。

并发能力。

限流。每个客户的调用配额。

防 DDoS。

API 安全。

认证(OAuth、API Key、JWT)。

签名校验。

加密(HTTPS 强制)。

防重放。

数据权限(API 调用方能访问的数据范围)。

API 文档。

文档准确性。

示例代码可运行。

SDK 完整性。

文档版本和 API 版本对应。

Webhook 测试。

事件触发。事件发生时正确触发 Webhook。

重试机制。回调失败的重试(一般指数退避)。

幂等性。多次触发不应导致业务错乱。

签名校验。第三方能验证 Webhook 来源。

事件顺序。多个事件按顺序到达(或带时间戳)。

应用市场。

应用提交流程。

应用审核(功能、安全、合规)。

应用安装与卸载。

应用计费。

应用更新与回滚。

应用市场的搜索、推荐。

数据权限:

API 调用方的权限范围。

代表用户调用(OAuth 模式)vs 应用自身调用(应用 Token 模式)。

权限范围(Scope)的细粒度。

监控。

API 调用量。

API 错误率。

API 慢请求。

应用使用情况。

异常告警。

合规:

数据出境(API 调用方在海外)。

数据传输加密。

数据使用审计。

第三方应用的合规(个保法、GDPR)。

测试方法:

API 测试工具。Postman、Apifox、Swagger UI、自动化测试框架。

模拟客户端。脚本模拟各种调用场景。

模拟 Webhook 接收方。建一个回调接收服务,验证调用正确性。

性能压测。

安全扫描。OWASP Top 10 漏洞扫描。

实战中开放能力是 SaaS 平台的"长城",做好了形成生态优势,做不好就是安全事故。测试同学要保证开放接口的稳定、安全、易用。


四、稳定性、合规与计费(4题)

Q15: SaaS 计费与订阅怎么测?

答案:

SaaS 的核心商业模式是订阅制,计费和订阅是 SaaS 平台的"金库",错算就是资损,测试要求极严。

计费模式:

按用户数。每个员工每月 N 元,常见模式。

按使用量。按存储、API 调用、消息数等使用量计费。

按功能。基础版、专业版、企业版,按套餐包月 / 包年。

按合同。大客户走年度合同,可能有定制价。

混合。基础月费 + 超额按量计费。

订阅生命周期:

试用。

试用期(7~30 天)。

试用功能限制(部分高级功能不可用)。

试用到期后的转化。

正式订阅。

按月 / 按年订阅。

提前续费的折扣。

预付费 vs 后付费。

到期。

到期前的提醒(30 天、7 天、1 天)。

到期不续费 → 进入宽限期(7~30 天)。

宽限期不续费 → 订阅取消(数据保留 / 删除)。

升级 / 降级。

升级(从基础升到专业)的差价计算。

降级(从专业降到基础)的处理(一般立即生效或下个周期生效)。

取消。

用户主动取消。

平台强制取消(违规、欠费)。

测试维度:

计费正确性(核心)。

每月按时计费。

按使用量的计费精度(小数点几位、精度)。

混合计费的累加(基础月费 + 超额)。

特殊情况(中途升级、退费、活动优惠)的计算。

幂等性(多次重复计费请求只产生一次费用)。

边界。

月底注册的当月计费。

跨月升级的计费。

跨年订阅的计算。

闰年的处理。

时区差异(按客户当地时间还是平台时间)。

订阅状态机(详见上面的图)。

每个状态变更触发条件正确。

状态变更的副作用(如取消后功能停用)。

异常状态(如支付失败、欠费)的处理。

退费。

部分退费(按未使用天数)。

全额退费。

退费到原支付方式。

退费的时效。

发票。

合规的发票(增值税专票、普票、电子发票)。

发票抬头管理。

发票寄送地址。

财务对账。

按客户、按时间的账单查询。

充值、消费、退费的明细。

财务报表准确。

总额对账(系统总收入 = 财务系统收入)。

升级 / 降级。

升级的差价计算(按未使用时间分摊)。

降级的处理(功能限制、数据保留)。

试用转正。

试用期数据的延续。

试用期内的活动赠送。

转化激励。

异常路径。

支付失败的重试和提示。

欠费的功能限制。

强制取消后的数据处理。

恶意刷取(如反复试用骗免费)。

通知。

到期前的多次提醒。

支付成功 / 失败的通知。

订阅状态变更通知。

合规。

定价透明(不能临时改价)。

免费试用条款明示。

取消订阅的便利性(不能复杂流程阻挠取消)。

发票合规。

测试方法:

数据驱动。建立"计费场景库",覆盖各种套餐、各种状态、各种边界。

并发测试。多个客户同时升级、降级、续费。

时间穿越。模拟时间快进(用 mock 时间),跑完整生命周期。

对账。计费数据和支付数据、财务系统数据的对账。

实战中计费 Bug 是 SaaS 平台最致命的 Bug 之一,少算 1 元都是真金白银的资损,多算 1 元都是客户投诉。测试同学要把它当作"金融级"严谨度对待。

Q16: SaaS 数据安全、审计和合规测试

答案:

企业 SaaS 处理大量敏感数据(员工信息、合同、财务、客户数据),数据安全和合规是平台的"基础设施",做不好客户根本不会用。

数据安全维度:

传输安全。

HTTPS 强制(HTTP 自动跳转 HTTPS)。

TLS 版本(禁用 TLS 1.0 / 1.1)。

证书校验。

API 加密(OAuth Token、Signature)。

存储安全。

敏感字段加密(身份证号、银行卡号、密码)。

数据库密码用 KMS 管理(不能明文)。

磁盘加密。

备份加密。

访问控制(详见 Q3 越权)。

权限校验。

数据范围隔离(详见 Q1 多租户)。

最小权限原则。

会话管理(超时、强制下线)。

审计与日志:

操作审计。

所有用户操作记录(登录、查看、修改、删除、导出)。

记录时间、用户、IP、设备、操作内容、操作结果。

不可篡改(写入后只读)。

长期保留(一般 5~10 年)。

系统审计。

后台运维操作(数据库直接修改、权限变更、配置变更)。

API 调用记录。

异常事件(登录失败、越权尝试)。

合规审计。

按监管要求的审计报告生成。

异地审计备份。

第三方审计接入。

数据合规:

数据分类。

公开数据。

内部数据。

敏感数据(个人信息、商业秘密)。

机密数据(核心机密)。

不同级别的访问控制和处理流程。

数据留存。

业务数据按合规要求留存(如合同 10 年)。

日志按要求留存。

到期自动归档或删除。

数据销毁。

注销账号后的数据销毁("被遗忘权")。

到期数据的自动删除。

物理销毁(磁盘消磁、粉碎)。

数据可携带。

用户能导出自己的全部数据。

按通用格式(JSON、CSV)。

数据更正。

用户能更正错误信息。

国内合规要求:

个保法(个人信息保护法)。

数据收集明示用途、最小化。

用户授权。

数据主体权利(查询、更正、删除、导出)。

跨境传输的合规。

数据安全法。

数据分类分级。

重要数据出境审批。

数据安全事件报告。

网络安全法。

网络运行安全。

关键信息基础设施保护。

等级保护。

不同级别的安全保护要求(一级到五级)。

每年自评估、第三方测评。

行业监管。

金融行业(金标准)。

医疗行业(HIPAA)。

教育行业(双减、未成年人保护)。

国际合规:

GDPR(欧盟)。

数据主体权利。

数据保护影响评估(DPIA)。

数据保护官(DPO)。

罚款最高 4% 全球营收。

CCPA(加州)。

类似 GDPR。

SOC 2 / ISO 27001。

国际信息安全认证。

大客户经常要求。

PCI-DSS(支付卡行业)。

涉及支付卡数据的强制标准。

测试方法:

安全扫描。OWASP Top 10、第三方安全扫描工具。

渗透测试。第三方安全公司模拟攻击。

合规审计。模拟监管检查,验证可追溯性。

代码审查。重点关注权限、加密、审计的实现。

数据流分析。绘制数据流图,识别敏感数据流转路径。

特殊场景:

数据泄露应急。

发现泄露的快速响应。

通知用户和监管(按法规要求时限)。

止损措施。

修复和加固。

跨境数据传输。

合规审批。

数据加密传输。

数据本地化备份。

实战中数据安全和合规是 SaaS 平台的"生命线",做不好可能面临监管处罚和品牌损失。测试同学要把它作为最高优先级。

Q17: SaaS 灾备和数据可用性测试

答案:

企业 SaaS 的 SLA 一般要求 99.9% ~ 99.99%(年故障时间 9 小时 ~ 53 分钟),核心客户可能要求 99.999%。灾备能力直接关系到合同和品牌。

可用性目标:

99%(年故障 87.6 小时)。基础级,多数业务可接受。

99.9%(8.76 小时)。中级,多数 SaaS 起步目标。

99.99%(53 分钟)。高级,企业级 SaaS 标配。

99.999%(5 分钟)。极高级,金融、医疗等关键业务。

灾备架构:

单机房。基础,单机房故障就完蛋。

同城多机房。多个机房在同一城市,应对单机房故障。

同城双活。两个机房同时承载流量,单机房故障切换。

异地灾备。在另一个城市的机房做备份,应对城市级灾难。

异地多活。多个城市的机房都承载流量。

云上多区域。跨云区域部署。

数据备份策略:

实时同步。数据库主从、消息队列副本,实时同步。

定时备份。每日 / 每周全量备份。

增量备份。每小时 / 每天增量备份。

异地备份。备份数据复制到异地。

测试维度:

数据备份测试。

备份完整性。备份的数据完整无缺。

备份频率。按策略执行。

备份存储。备份数据安全(加密、隔离)。

备份保留期。按策略保留。

恢复测试(重点)。

恢复时间。从备份恢复到可用的时长(RTO,Recovery Time Objective)。

恢复点。能恢复到多久前的状态(RPO,Recovery Point Objective)。

恢复操作。流程清晰、可执行。

定期演练。每月 / 每季度演练,避免"备份了不能恢复"。

机房切换测试。

主备切换的时长(一般 < 5 分钟)。

切换过程中的用户感知(短暂卡顿 vs 完全无感)。

数据一致性(不能丢已确认事务)。

切换后的服务能力(备机房能承载主机房的流量)。

回切(主机房恢复后切回)的平滑性。

跨地区灾备。

跨地区延迟(不能太大)。

跨地区带宽(不能太贵)。

合规(数据本地化)。

混沌工程。

随机注入故障:网络分区、磁盘故障、服务挂掉、CPU 满载。

工具:Chaos Mesh、Litmus、ChaosBlade。

每周 / 每月演练,提升系统韧性。

事故演练。

模拟真实事故场景(数据库主库挂、机房断电、勒索病毒)。

全员参与,验证应急响应能力。

数据丢失防护:

幂等性。重复操作不会丢数据或多算数据。

事务。关键业务用事务保证一致性。

补偿机制。失败操作的自动补偿。

监控告警。数据异常立即告警。

异常事件响应:

事件分级。P0 ~ P3。

响应时长。P0 故障 5 分钟内响应。

应急团队。7x24 待命。

通知机制。短信 + 电话 + 邮件 + 群通知。

升级流程。一线 → 二线 → 负责人 → CTO。

监控与告警:

业务指标(订单、用户、交易量)。

技术指标(CPU、内存、磁盘、网络)。

异常告警的准确性(不漏报、不误报)。

告警送达。

合规:

数据备份的合规要求(保留期、加密)。

数据出境(跨境备份)。

事故报告(按要求向监管报送)。

测试方法:

故障注入。在受控环境注入各种故障。

灾难演练。完整流程演练,记录每个环节。

恢复演练。定期演练从备份恢复,确保备份可用。

切换演练。定期演练机房切换。

实战中"备份和恢复"看着简单,实际坑很多。常见的"备份了不能恢复""恢复后数据缺失""恢复时间太长不可接受"都是因为日常没演练。测试同学要把灾备演练作为常态化工作。

Q18: SaaS 监控、SLA 和租户级隔离故障

答案:

SaaS 系统的监控比传统系统复杂,因为要按"租户"维度看:每个租户的可用性、性能、用量,单租户故障不应影响其他租户。

SLA(Service Level Agreement,服务级别协议):

可用性 SLA。99.9% / 99.99% / 99.999%。

性能 SLA。

接口响应时间(P95 < 500ms)。

页面加载时间(< 3s)。

并发能力。

数据 SLA。

数据持久性(如 99.999999999%,即 11 个 9)。

备份和恢复时长。

支持 SLA。

工单响应时间。

紧急问题处理时长。

测试维度:

可用性测试。

服务可用性的实时监控。

接口可用性(5 分钟探测一次)。

跨地区可用性(不同接入点都能访问)。

性能监控。

接口 RT(P50、P95、P99)。

页面加载时长。

API 调用量。

慢请求识别(> 阈值的请求记录)。

资源监控。

服务器 CPU / 内存 / 磁盘 / 网络。

数据库连接数、慢查询。

缓存命中率。

队列堆积。

业务监控。

每个租户的活跃用户数。

每个租户的关键业务指标。

异常监控。

错误率突增。

异常用户行为。

异常调用模式(可疑攻击)。

租户级监控(核心)。

每个租户的可用性单独统计。

每个租户的性能(接口 RT、错误率)。

每个租户的资源使用(计算、存储、带宽)。

按租户的异常检测。

租户隔离故障(关键):

资源隔离。

CPU、内存、带宽按租户限额。

某租户消耗过多资源不影响其他。

测试方法:让一个租户跑大量请求,断言其他租户性能不受影响。

数据库连接隔离。

不能因一个租户的慢查询拖垮整个数据库。

数据库连接池按租户分配。

慢查询隔离(专用连接池)。

异常隔离。

一个租户的 Bug 不应导致整个系统崩溃。

异常处理要 catch 所有可能的异常。

错误日志要包含租户 ID 便于定位。

API 限流。

每个租户的 API 调用配额。

超限后该租户被限流,不影响其他。

测试方法:用脚本压一个租户的 API,看其他租户是否受影响。

存储隔离。

每个租户的存储配额。

满了不影响其他。

测试方法:让一个租户上传超大文件,看其他租户是否能正常上传。

监控大盘:

全局大盘。

整体可用性、性能、用量。

故障告警。

容量水位。

租户大盘。

按租户的健康度(绿 / 黄 / 红)。

按租户的资源使用排行。

按租户的异常事件。

业务大盘。

关键业务指标(用户、订单、营收)。

异常波动检测。

告警体系:

告警分级。P0 / P1 / P2 / P3。

告警路由。不同级别送不同的人。

告警去重。同一故障不重复告警。

告警合并。短时间内的相关告警合并。

告警抑制。维护期间的告警抑制。

升级。未及时响应的告警自动升级。

值班机制:

7x24 值班。

值班轮换。

值班手册。

故障演练。

知识沉淀。

事故管理:

事故分类(P0~P3)。

事故响应流程。

事故复盘机制。

改进项跟踪。

知识库累积。

合规要求:

监管要求的 SLA 报告(金融、医疗)。

按租户的 SLA 报告(大客户合同要求)。

事故信息披露(按法规要求)。

测试方法:

监控完整性。所有关键指标都有监控、告警。

告警准确性。模拟各类故障,验证告警准确触发。

故障演练。注入故障,验证监控和告警。

容量测试。压测到极限,看监控是否能识别。

实战中"租户隔离 + 完善监控"是 SaaS 系统的"运营护城河",做好了客户信任度高、故障恢复快、客户成功率高。测试同学要把这块作为系统级保障的核心。

最近更新: 2026/5/13 10:01
Contributors: raina
Prev
RTC实时音视频系统测试面试题