测试理论与测试策略设计
测试开发工程师核心考察 | 理论 + 策略 + 场景
一、测试基础知识
- 1. 测试的完整流程是什么?
- 2. 黑盒测试和白盒测试的区别?
- 3. 测试用例的设计方法有哪些?
- 4. 如何判断一个缺陷是前端问题还是后端问题?
- 5. 软件测试的分类?
- 6. 什么是冒烟测试?什么是回归测试?
- 7. 什么是测试左移和测试右移?
- 8. 测试计划包含哪些内容?
- 9. 缺陷的核心要素?缺陷等级如何划分?
- 10. 什么是测试覆盖率?有哪些指标?
二、测试策略设计(高频场景)
- 1. 如何设计微信朋友圈的测试用例?
- 2. 如何测试一个登录页面?
- 3. 如何测试第三方支付功能?
- 4. 如何测试搜索功能?
- 5. 如何测试购物车功能?
- 6. 如何测试接口自动化用例设计?
- 7. 如何测试权限功能?
- 8. 如何测试网络异常场景?
- 9. 如何测试消息推送功能?
- 10. 如何评估一个新功能要不要写自动化用例?
三、测试进阶与策略追问
一、测试基础知识
测试的完整流程是什么?
📖 点击查看答案
> 需求评审(澄清疑问、确认验收标准)→ 测试计划(排期、范围、资源分工)→ 用例设计(方法:等价类/边界值/场景法)→ 用例评审(拉通对齐、确保覆盖)→ 执行测试 → 缺陷提交跟踪 → 回归验证 → 测试报告。其中用例设计和评审是核心环节,决定了测试质量的上限。黑盒测试和白盒测试的区别?
📖 点击查看答案
> 黑盒测试:不关心内部实现,只验证输入输出是否正确,适用于功能测试、验收测试。测试人员视角,关注用户可见行为。白盒测试:了解内部代码结构/逻辑,针对性设计用例,适用于单元测试、集成测试。开发人员视角,关注代码逻辑覆盖率。灰盒测试介于两者之间,部分了解内部实现,常用于集成测试。测试用例的设计方法有哪些?
📖 点击查看答案
> 等价类划分:有效+无效等价类,用少量数据覆盖大量场景。边界值分析:测试边界值(0、最大值、最大值±1),边界值出 bug 概率最高。因果图/判定表:多条件组合场景,输出结果依赖多个输入条件。场景法:正常业务流程+异常分支,强调用户使用场景。正交试验法:用最少用例覆盖最多组合。错误推断法:凭经验补充高风险用例,适合补充边界场景。如何判断一个缺陷是前端问题还是后端问题?
📖 点击查看答案
> 抓包(Charles/Fiddler)分析接口返回:① 接口返回 HTTP 500/502/503 → 后端问题;② 接口返回 200 但数据格式/内容错误 → 后端问题;③ 接口正常但页面展示异常(错位/样式问题/动画异常)→ 前端问题;④ 请求没发出去(表单验证拦截)→ 前端问题。也可以让前端同事配合看控制台(Console)报错。软件测试的分类?
📖 点击查看答案
> 按阶段:单元测试、集成测试、系统测试、验收测试(Alpha/Beta)。按方向:功能测试、性能测试、安全测试、兼容性测试、UI 测试、API 测试。按方法:黑盒测试、白盒测试、灰盒测试。按性质:手工测试、自动化测试。按对象:App 测试、Web 测试、小程序测试、接口测试、数据库测试。什么是冒烟测试?什么是回归测试?
📖 点击查看答案
> 冒烟测试(Smoke Test):针对系统核心功能的基本验证,快速判断系统是否"可测",也叫构建验证测试(BVT)。一般选取 10-20 条用例,覆盖核心业务流程。回归测试(Regression Test):系统发生变更后,验证原有功能是否正常,确保本次变更没有引入新问题。根据变更范围选择全量回归或部分回归。什么是测试左移和测试右移?
📖 点击查看答案
> 测试左移(Shift Left):在需求分析和设计阶段就参与,提前发现需求缺陷,降低修复成本(需求阶段的 bug 修复成本是开发阶段的 1/10)。具体做法:参与需求评审、编写测试用例、进行威胁建模(分析风险)、和开发对齐验收标准。测试右移(Shift Right):将测试活动延伸到生产环境,比如监控线上错误率、日志分析、灰度发布、A/B 测试、收集用户反馈。测试计划包含哪些内容?
📖 点击查看答案
> 测试范围(测什么/不测什么,明确边界)、测试目标、资源分配(人员/测试环境/工具)、进度安排(里程碑和交付时间点)、测试策略(方法/工具/准入准出标准)、风险评估与应对(人员变动/需求变更/技术风险)、测试环境说明、交付物清单(用例/报告/缺陷统计)。缺陷的核心要素?缺陷等级如何划分?
📖 点击查看答案
> 缺陷报告包含:标题(简洁描述)、步骤(复现路径)、预期结果 vs 实际结果、环境信息(操作系统/浏览器版本/APP版本)、截图/日志附件、缺陷编号。缺陷等级:P0(致命:系统崩溃、数据丢失、安全漏洞)、P1(严重:核心功能不可用、业务无法推进)、P2(一般:功能缺陷但有替代方案)、P3(轻微:UI 问题、体验问题、优化建议)。优先级和严重程度不一定对应。什么是测试覆盖率?有哪些指标?
📖 点击查看答案
> 测试覆盖率是衡量测试充分性的指标。代码覆盖率:行覆盖率、分支覆盖率、路径覆盖率(用 Jacoco 等工具)。需求覆盖率:用例覆盖的需求条数 / 总需求条数。接口覆盖率:已测试接口数 / 总接口数。UI 覆盖率:已测试页面数 / 总页面数。覆盖率不是越高越好,重点是覆盖核心场景和高风险路径。二、测试策略设计(高频场景)
如何设计微信朋友圈的测试用例?
📖 点击查看答案
> 【发布功能】文字/图片/视频/链接/位置/@好友。【互动功能】点赞(自己/他人点赞样式不同)、评论(普通评论/回复评论/表情评论)、删除、屏蔽、举报。【展示】时间线排序、翻页加载、上拉刷新。【可见性】公开/私密/部分可见(分组)。【兼容性】iOS/Android 不同版本、不同机型。【性能】大量图片加载速度、刷新响应时间。【安全】XSS 过滤、敏感词过滤、SQL 注入、权限校验。【网络】弱网上传、断网恢复。【异常】频繁操作限制、内容重复检测、emoji 兼容性。💡 技巧: 分层思路:发布 → 互动 → 展示 → 可见性 → 兼容 → 性能 → 安全 → 网络 → 异常
如何测试一个登录页面?
📖 点击查看答案
> 【功能】账号密码正确登录、错误密码(提示具体信息)、空账号/空密码/空两者、账号不存在、密码大小写、前后空格处理、特殊字符、超长输入、记住登录态、自动登录、登录超时。【安全】密码加密传输(HTTPS)、暴力破解防护(验证码/限流/锁定账号)、SQL 注入、XSS。【兼容性】Chrome/Safari/Edge/Firefox 多浏览器、不同分辨率。【性能】登录接口响应时间(通常 < 2s)。【UI】输入框对齐、错误提示文案、按钮 loading 状态、键盘遮挡输入框。【网络】弱网提示、超时处理。💡 技巧: 回答公式:正向 + 3种以上异常 + 安全 + 兼容 + 性能 + UI + 网络异常
如何测试第三方支付功能?
📖 点击查看答案
> 【核心流程】支付成功、支付失败、取消支付。【金额】边界值(0.01/0.99/99999)、超限额。【安全】金额精确到分(不能用浮点数,必须用整数或 BigDecimal)、风控拦截(大额/异地/频繁)、交易记录一致性(对账)。【接口】支付回调通知机制(必须幂等,防止重复扣款)、异步通知重试。【异常】网络中断、服务器宕机恢复后支付状态。【对账】日终对账文件生成、账不平告警。【兼容】不同银行限额、信用卡/借记卡、境外卡。💡 技巧: 支付功能涉及资金安全,金额精度和幂等性是重中之重