Skip to content

测试理论与测试策略设计

测试开发工程师核心考察 | 理论 + 策略 + 场景


一、测试基础知识

二、测试策略设计(高频场景)

三、测试进阶与策略追问


一、测试基础知识

测试的完整流程是什么?

📖 点击查看答案 > 需求评审(澄清疑问、确认验收标准)→ 测试计划(排期、范围、资源分工)→ 用例设计(方法:等价类/边界值/场景法)→ 用例评审(拉通对齐、确保覆盖)→ 执行测试 → 缺陷提交跟踪 → 回归验证 → 测试报告。其中用例设计和评审是核心环节,决定了测试质量的上限。

黑盒测试和白盒测试的区别?

📖 点击查看答案 > 黑盒测试:不关心内部实现,只验证输入输出是否正确,适用于功能测试、验收测试。测试人员视角,关注用户可见行为。白盒测试:了解内部代码结构/逻辑,针对性设计用例,适用于单元测试、集成测试。开发人员视角,关注代码逻辑覆盖率。灰盒测试介于两者之间,部分了解内部实现,常用于集成测试。

测试用例的设计方法有哪些?

📖 点击查看答案 > 等价类划分:有效+无效等价类,用少量数据覆盖大量场景。边界值分析:测试边界值(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)、风控拦截(大额/异地/频繁)、交易记录一致性(对账)。【接口】支付回调通知机制(必须幂等,防止重复扣款)、异步通知重试。【异常】网络中断、服务器宕机恢复后支付状态。【对账】日终对账文件生成、账不平告警。【兼容】不同银行限额、信用卡/借记卡、境外卡。

💡 技巧: 支付功能涉及资金安全,金额精度和幂等性是重中之重

如何测试搜索功能?

📖 点击查看答案 > 【功能】空搜索(提示)、关键词精确匹配、模糊匹配、分词匹配、无结果场景。【排序】按相关性/销量/价格/时间排序。【筛选】品牌/价格区间/类型多选筛选、重置筛选。【分页】翻页正确性、最后一页边界、跳页。【性能】搜索响应时间(< 500ms)、大数据量(百万级商品)搜索。【安全】SQL 注入、XSS、敏感词过滤。【兼容】特殊字符、emoji、少数民族语言。【网络】弱网下加载提示。【UI】搜索联想词展示、输入框自动补全、搜索结果高亮关键词。

如何测试购物车功能?

📖 点击查看答案 > 【增删改】添加商品(立即购买/加入购物车)、删除商品(单个/批量)、修改数量(边界值:0/负数/超库存)、修改规格。【结算】全选/部分选中、运费计算。【促销】优惠券叠加(叠加规则/不叠加)、满减活动(下单后价格变了吗?)、促销商品数量限制。【库存】购物车中的商品库存不足时的提示。【订单】从购物车下单、从商品详情页立即购买。【兼容】iOS/Android 购物车数据同步。【异常】登录超时、长期未操作(购物车清空)、商品下架提示。

如何测试接口自动化用例设计?

📖 点击查看答案 > 【正向】接口参数正确时返回预期数据。【异常参数】必填参数缺失、参数类型错误、参数格式错误(正则不匹配)、参数边界值(超长/空字符串)。【业务逻辑】符合业务规则的入参(如年龄=-1)、跨模块业务逻辑(先创建再查询)。【安全】未登录访问、越权访问(用A用户token访问B用户数据)、SQL注入/XSS。【性能】接口响应时间、并发请求处理。【幂等】重复提交是否产生重复数据(支付、退款等关键接口必须幂等)。【依赖】依赖接口失败时当前接口行为。

如何测试权限功能?

📖 点击查看答案 > 【页面权限】无权限用户访问被拦截、有权限用户正常访问。【按钮权限】无权限用户按钮被隐藏或禁用。【接口权限】未登录接口返回 401/403。【数据权限】A 用户看不到 B 用户的数据。【角色权限】不同角色看到不同菜单/数据。【越权】普通用户尝试访问管理员接口。【横向越权】同级别用户之间互相访问数据。【纵向越权】低权限用户尝试获取高权限操作。【前端绕过】通过抓包改用户ID等参数尝试越权。

如何测试网络异常场景?

📖 点击查看答案 > 【弱网】在 Chrome DevTools Network 面板设置网络为 Slow 3G,测试页面加载、提交表单、文件上传。【断网】直接关闭网络,测试是否有友好提示。【网络恢复】断网后恢复,测试数据是否自动刷新。【重试机制】接口超时后是否自动重试,重试次数是否合理。【超时处理】请求超时是否有明确的超时提示(不能一直 loading)。【离线模式】某些功能是否支持离线缓存(H5/小程序常见)。【DNS 解析失败】 hosts 文件配置错误域名。

如何测试消息推送功能?

📖 点击查看答案 > 【推送送达】推送发送成功 -> 设备收到通知栏消息 -> 点击打开 APP。【推送内容】内容正确性、文字长度限制(超长截断)、emoji 展示。【推送策略】定时推送、即时推送。【权限】通知栏权限开启/关闭、iOS 静默推送。【去重】同一用户不应收到多条相同推送。【离线消息】用户离线时的消息累积和恢复。【性能】大量用户同时推送,消息队列是否积压。【内容审核】敏感词过滤。

如何评估一个新功能要不要写自动化用例?

📖 点击查看答案 > 考虑三个维度:① 变更频率(频繁变更的功能做自动化收益高);② 业务重要程度(核心链路必须自动化,决定系统质量底线);③ 实现成本(简单功能手动测更划算)。具体量化:变更频率 > 3次/月的功能 + 核心业务优先做自动化。ROI 公式:自动化投入工时 vs 手动回归节省工时 > 1 则值得做。

三、测试进阶与策略追问

回归测试的策略?如何选择回归范围?

📖 点击查看答案 > 全量回归:系统核心模块变更时全部执行,覆盖广但耗时长(适合大版本发布)。选择性回归:只测受影响功能,通过影响分析法确定回归范围(适合小版本)。敏捷策略:每次迭代只执行与本次变更相关的用例 + 核心冒烟用例 + 高频回归用例。自动化辅助:用自动化覆盖高频回归用例,手工测试聚焦新功能和复杂场景。关键原则:核心链路不能漏、变更部分必须测、关联影响必须验。

测试覆盖率 100% 够吗?还有什么要测?

📖 点击查看答案 > 覆盖率 100% 不代表测试充分。测试覆盖率只衡量"测了多少",不衡量"测得多好"。还需考虑:① 业务场景覆盖(是否覆盖用户真实使用场景);② 异常场景覆盖(边界条件、错误处理);③ 缺陷修复后的回归(避免引入新问题);④ 探索性测试(针对有经验测试人员的自由探索);⑤ 兼容性测试(浏览器/系统/设备);⑥ 真实用户环境的验证。测试质量 = 覆盖率 × 测试有效性。

APP 专项测试有哪些?

📖 点击查看答案 > 【安装卸载】全新安装/覆盖安装/卸载重装。【升级】强制升级/非强制升级、跨版本升级。【权限】摄像头/麦克风/位置等权限弹窗。【网络】2G/3G/4G/5G/WiFi 切换。【后台运行】APP 切到后台再切回。【中断测试】来电/短信/闹钟/低电量。【耗电量】长时间使用耗电。【内存】是否存在内存泄漏(使用 Memory Profiler)。【启动速度】冷启动/热启动时间。【UI】屏幕适配(刘海屏/折叠屏)。【多语言】中文/英文/特殊语言。

性能测试有哪些类型?关键指标?

📖 点击查看答案 > 类型:负载测试(逐步加压,找到最大容量)、压力测试(超出预期负载,测试系统极限)、稳定性测试(长时间运行,观察系统稳定性)、并发测试(同时发起大量请求)。关键指标:响应时间(RT,越短越好)、TPS/QPS(每秒事务数,系统处理能力)、错误率(成功率)、CPU 使用率、内存使用率、GC 频率。测试流程:明确性能目标 → 设计场景 → 执行压测 → 分析结果 → 优化 → 回归。

如何编写好的测试用例?

📖 点击查看答案 > 好用例标准:① 可执行性(步骤清晰,任何人照着做都能执行);② 可复用性(独立,不依赖其他用例的执行结果);③ 可验证性(有明确的预期结果,而非"看看是否正常");④ 可维护性(需求变更时容易更新)。编写原则:标题简洁明了("用户名正确时能正常登录"),前置条件清晰,步骤不超过 5 步,预期结果具体可验证,一个用例测一个场景(避免一条用例测多个维度)。

Powered by VitePress

🔒 需要口令解锁

关注微信公众号
回复关键词 「」 获取口令

解锁后本浏览器长期有效