陈祉伊 · 弘成科技(ChinaEdu)实习测试工程师
定制面试手册
依据「实习-测试工程师」JD 与本人简历逐条对齐 · 在线教育 / 学历继续教育 / 教育信息化赛道
0JD 拆解:他们真正想招什么样的人
这份 JD 写了 3 条职责、6 条资格,看着很虚,其实信息量很大——它不是招「点点点」,是招「能理解业务、能沉淀标准、能做测评」的测试。
三条职责翻译成人话
| JD 原文 | 真实含义 | 你要怎么接 |
|---|---|---|
| 研究教育行业业务特点和 IT 软件需求,运用先进测试方法和框架,保障 IT 系统质量 | 不是给你写好用例让你执行,是让你先搞懂「继续教育/教务/考试」这套业务,再自己拆测试点 | 面试里主动讲「我是怎么把一个业务流程拆成测试点的」,举校园 APP 的例子 |
| 参与教育行业 IT 测试标准建设,负责教育科技产品和应用软件的认证测评 | 公司要给院校/客户交付,需要一套可复用的测试规范 + 第三方测评式的验收报告 | 说清「标准 = 用例库 + 缺陷分级 + 准入准出 + 报告模板」,说清「测评 = 依据标准逐项验证出报告」 |
| 提供教育行业 IT 质量热点难点的测试解决方案 | 教育系统有几类老大难:多角色权限、学时学分规则、报名考试高并发、视频兼容、数据一致性 | 准备 3 个「难点 + 我的解法」,这是最能加分的一题 |
六条资格里,哪几条是真门槛
- 统招本科及以上、计算机相关专业——你是大连海洋大学计算机科学与技术,统招本科,直接过。
- 中共党员优先——是「优先」不是「必须」,不是党员也不用慌,别主动解释,问到了再说。
- 创新能力、逻辑思维、条理清晰——这是软门槛,面试官会通过「你怎么拆一个问题」来判断,不是听你自夸。→ 第 8 章专门准备。
- 了解软件工程、测试流程与测试方法论——注意 JD 只要求「了解」,但你必须能成体系地说出来,不能只说「等价类边界值」。→ 第 3 章。
- 了解编程语言、数据库——大概率会问 SQL 和一两道语言基础题,甚至会让你写。→ 第 5、6 章。
你的匹配度(面试开场可以只用一句)
1自我介绍:三个版本,背到能脱口而出
自我介绍决定面试官后面问什么。你要主动把「钩子」抛出去,让他在你准备好的地方追问,而不是在他随机想到的地方追问。
千万不要用「我性格开朗、学习能力强、希望得到锻炼」占掉一半时间,那是所有人都会说的废话。
我先说实习。2025 年 11 月到 2026 年 1 月,我在北京多拓世纪科技做测试实习生,负责校园生活类移动端 APP 的功能测试。我做的事情分三块:一是梳理业务测试点并写用例,覆盖正常流程、异常输入和边界场景;二是执行用例、提缺陷、跟踪 bug 生命周期,一直到回归验证关闭;三是跟着产品看线上问题,配合研发定位、推动闭环。这段实习让我明白一件事:测试的价值不是「点了多少下」,而是能不能在开发之前想到他想不到的场景。
项目方面,校园生活 APP 我重点做了三件事:用 Postman 测登录和消息推送接口,发现未登录状态下访问消息接口仍然返回数据这个越权问题;用 MySQL 查库核对前端展示和数据库是否一致;在不同安卓机型上做兼容性测试,发现了布局错乱和闪退。另一个图书借阅系统,我用 Fiddler 抓包定位到借阅接口请求超时,配合后端调完逻辑后复测通过。两个项目加起来提交了20 多个缺陷,其中 8 个高危,绝大部分两天内完成修复复测。
工具上我会禅道、Postman、Fiddler,能用 MySQL 做数据校验,Git 和 Linux 命令有基础,测试方法上等价类、边界值、场景法这些是能直接上手用的。
我关注弘成,是因为你们做的是学历继续教育和院校信息化这条线,业务比普通 C 端 App 复杂得多——多角色、多端、学时学分规则还跟政策挂钩,这种业务对测试的严谨度要求更高。我现在的短板是没有教育行业经验,但我能保证的是流程熟、文档能写、bug 能说清楚,业务上的东西我上手很快。
【我对这个岗位的理解】我看 JD 里提到三点:研究教育业务、参与测试标准建设、做认证测评。我的理解是,这个岗位不是被动接需求执行用例,而是要先搞懂「学生怎么报名、怎么学、怎么考、成绩学时怎么算」这条链路,把共性的问题沉淀成规范和用例库,最后能输出一份站得住脚的测评结论。这正好是我愿意做的方向——我个人不太喜欢只按别人的用例点,更喜欢自己去拆业务。
【我和岗位的三点匹配】第一,专业和基础课对口,软件工程、数据库原理、Java、Python 都学过,SQL 能写多表关联和分组统计;第二,我有真实项目的完整闭环经验,缺陷不是我提完就结束,是我跟到关闭;第三,我做事偏细,学校自管会做寝室巡检的时候,我是按标准一条条核查、记录、汇总上报的,这种「按标准逐项核对」的习惯,和做测评其实是同一件事。
【收尾】我知道自己现在缺的是行业经验和自动化、性能的深度,但实习期我希望能先把业务测透、把文档写规范,能独立负责一个模块的测试。如果给我这个机会,我上手不会慢。
- 「我性格比较内向,但做事认真」——先给自己贴负面标签,面试官只会记住前半句。
- 「我虽然没经验,但我学习能力很强」——整段都在讲态度,没有一件事作为证据。
- 背简历流水账:「2023 年入学……2025 年实习……2026 年项目……」——时间线不是重点,结果才是。
- 把项目说成「我参与了」——「参与」在面试里等于「没干」。要说「我负责哪一块、怎么做的、发现了什么」。
- 「未登录也能拿到消息数据」→ 引到接口鉴权、越权测试、安全测试意识。
- 「用 MySQL 核对前后端数据一致性」→ 引到 SQL 和数据库知识,正好对上 JD 第 6 条。
- 「按标准逐项核查、记录、汇总」→ 引到认证测评和标准建设,正好对上 JD 第 2 条。
2教育行业业务认知本岗位核心差异点
普通测试面试只考测试;这个岗位一定会考「你懂不懂教育业务」。这一章不用全背,但要能讲出框架,并且至少准备 3 个难点。
Q1你了解在线教育 / 教育信息化这个行业吗?弘成是做什么的?必问
分三层说:行业是干什么的 → 弘成在这条链路的哪个位置 → 这对测试意味着什么。不要背公司简介,要落到「所以对测试有什么要求」。
口语版这种 To B + To C 混合的模式,对测试的要求跟纯 C 端不一样:一是角色多,学生、教师、教务、学习中心、管理员,权限必须切得很干净;二是规则重,学时、学分、成绩、毕业条件都是硬规则,算错一个学生就可能毕不了业;三是数据要留痕,学习记录、考试成绩属于要长期存档甚至要接受检查的数据,不能错也不能丢。所以我理解这个岗位强调「业务特点」和「标准建设」,是因为这类系统的质量事故代价比一般 App 高得多。
不要编造弘成的具体客户名、营收、上市板块。不确定就说「我了解到的是……可能不全面,您能不能补充一下」,反而显得诚实。
Q2一个在线教育平台通常有哪些模块和角色?
按「人 → 事 → 数据」三条线讲,能画出来最好(面试时可以在纸上画)。
角色:学生(学员)、教师(主讲/辅导)、教务管理员、院校管理员、学习中心/招生老师、平台运营、系统管理员。
主流程模块:
- 招生报名:注册、实名认证、报读层次/专业、缴费、审核、学籍注册
- 教学:课程资源、直播/录播、学习计划、课件上传与转码、学习进度记录
- 学习:看课、计时、作业提交、讨论答疑、互评
- 考试:题库、组卷、预约考试、在线答题、交卷、判分(客观自动/主观人工)、成绩发布
- 教务:排课、选课、学分认定、成绩管理、毕业审核、证书发放
- 支撑:消息通知、支付、短信、文件存储、统计报表、权限与日志
Q3教育行业系统测试,和电商、社交 App 测试最大的区别是什么?高分题
四个区别,能说出三个就算过关:
| 维度 | 教育系统的特点 | 测试上要注意什么 |
|---|---|---|
| 角色与权限 | 一个学生可能同时是某门课的助教;教师只能看自己班的成绩;学习中心只能管自己招的学生 | 做权限矩阵测试:角色 × 功能 × 数据范围,重点测越权(横向:看别人班;纵向:学生调教师接口) |
| 业务规则 | 学时学分、成绩权重(平时 30% + 期末 70%)、补考重修、毕业条件,规则还随政策变 | 规则用判定表穷举;边界重点测(59.5 分算不算及格、学时差 1 分钟算不算完成) |
| 数据一致性 | 看课时长累计、成绩汇总、缴费与学籍联动,一处错就是学生投诉 | 每个写操作都要查库核对,不能只看页面提示成功 |
| 并发峰值 | 开学选课、期末集中交卷、成绩查询开放瞬间,流量是平时的几十倍 | 关注重复提交、超卖(课容量)、排队、幂等 |
Q4如果让你负责一个「继续教育学习平台」的测试,你从哪几个维度切入?
这道题考的是「结构化思维」,用固定的六维框架答,条理立刻出来。
- 业务流程维度:报名→缴费→学籍→选课→学习→作业→考试→成绩→学分→毕业,逐段验证主流程能走通。
- 角色权限维度:做权限矩阵,重点测越权与数据隔离。
- 规则算法维度:学时统计、成绩计算、学分认定、毕业判定,用判定表 + 边界值。
- 数据维度:字段校验、精度(成绩保留几位)、一致性(前端/接口/库三处对齐)、历史数据兼容。
- 异常与容错维度:断网、弱网、重复提交、超时、并发、断电中断续考、文件过大。
- 非功能维度:性能(选课/交卷峰值)、兼容性(浏览器 + 安卓/iOS + 分辨率)、安全(越权、SQL 注入、敏感信息脱敏)、易用性。
Q5你认为教育行业 IT 质量的热点和难点有哪些?JD 第 3 条原题
准备 5 个,每个都能说到「难在哪 + 怎么测」。
| 难点 | 难在哪 | 怎么测 |
|---|---|---|
| 多角色权限与数据隔离 | 角色多、层级多(院校/学习中心/班级),权限还随流程状态变化 | 权限矩阵 + 接口层越权测试(改 ID、改 role 参数) |
| 学时学分等规则计算 | 规则由政策决定,会变;累计、去重、跨学期、退课回退都影响结果 | 判定表穷举 + 边界值 + 造历史数据回归 |
| 集中高峰并发 | 选课抢容量、期末集中交卷,瞬时流量极大,还要防重复提交 | JMeter 压测 + 幂等校验 + 超卖检查 |
| 音视频与多端兼容 | 直播/录播依赖浏览器、机型、网络、编码格式,问题极难复现 | 机型/浏览器矩阵 + 弱网模拟(Fiddler/限速)+ 记录环境信息 |
| 数据合规与安全 | 学生身份、成绩属敏感信息;等保、个人信息保护法有明确要求 | 敏感字段脱敏、越权、日志留痕、密码策略、导出权限 |
| 第三方对接 | 支付、短信、人脸识别、学历核验,出问题往往在对方 | Mock + 异常返回(超时、重复回调、签名错) |
被追问「你压测过吗」——不要硬吹。答:没独立做过,只用 JMeter 跟着教程跑过简单脚本,思路清楚但没实战,这是我实习期最想补的。
Q6JD 里说「参与教育行业 IT 测试标准建设」,你觉得标准应该包含什么?拉开差距的一题
把「标准」拆成 5 个可交付物,说得出具体内容,就比 90% 的候选人强。
- 流程标准:需求评审 → 测试方案 → 用例评审 → 执行 → 缺陷管理 → 回归 → 测试报告 → 上线检查,每一步的输入输出和责任人。
- 用例标准:用例模板(前置条件/步骤/预期/优先级/关联需求)、用例分级(P0 主流程 / P1 重要 / P2 一般)、公共用例库(登录、权限、导入导出、分页、文件上传这些可复用场景)。
- 缺陷标准:缺陷分级定义(P0 阻塞/P1 严重/P2 一般/P3 建议)+ 缺陷单必填要素 + 什么情况必须挂起/打回。
- 准入准出标准:提测准入(冒烟通过率 100%、无 P0/P1 遗留)、上线准出(P0/P1 清零、用例执行率、回归通过率)。
- 测评与报告标准:按质量特性(功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性、可移植性)逐项给结论,附环境、用例、问题清单、结论与建议。
Q7「认证测评」你了解吗?如果让你做一份测评报告,你会怎么组织?
认证测评 = 依据某个标准/规范,对软件逐项验证并出具结论。核心是「有依据、有过程、有证据、有结论」。
报告结构:
- 测评概述:被测系统、版本、委托方、测评目的与依据(引用的标准号和条款)
- 测评环境:服务器配置、客户端环境、网络、数据量、工具
- 测评内容与方法:按质量特性分项,说明每项用什么方法(功能验证/压力测试/兼容性矩阵)
- 测评结果:逐项「符合 / 部分符合 / 不符合」,附用例执行记录和截图、日志作为证据
- 问题清单:编号、描述、复现步骤、严重程度、影响
- 结论与建议:总体是否通过,遗留问题与风险,改进建议
软件质量模型 GB/T 25000.51(对应国际 ISO/IEC 25051)是测评类工作最常引用的标准之一;教育领域还有教育管理信息化系列标准、JY/T 系列教育行业标准。说得出「25000 的八大质量特性」,会让人明显感觉你做过功课。
Q8教育系统的合规和安全,你知道哪些要求?
- 等级保护 2.0:教育类系统一般要过等保测评,涉及身份鉴别、访问控制、安全审计、数据完整性与保密性、备份恢复。
- 个人信息保护法 / 数据安全法:学生姓名、身份证、手机号、成绩属个人信息,需最小必要收集、明确授权、加密存储、脱敏展示。
- 未成年人保护:涉及未成年学员时,信息处理有更严格要求。
- 数据留痕与不可篡改:成绩修改、学籍变更要有操作日志(谁、什么时候、改前改后)。
Q9学时 / 学分这类规则,你会怎么设计测试?最能体现专业度
先讲方法(判定表 + 边界值 + 状态迁移),再讲要注意的坑。
第一步,把规则问清楚:学时怎么算(只看有效播放?拖动进度算不算?倍速算不算?后台挂机算不算?);学分怎么给(学时达标 + 作业完成 + 考试及格,三者关系是「且」还是「或」)。
第二步,列判定表:条件(学时分 达标/不达标、作业 已交/未交、成绩 及格/不及格、是否退课)→ 动作(给学分/不给/待定)。
第三步,打边界:要求 30 学时 → 测 29:59、30:00、30:01;成绩 60 分及格 → 测 59、59.5、60;累计学时跨天、跨设备、断点续看是否重复计时。
第四步,测状态回退:退课、重修、成绩复议后,学分和学时要不要回退?已发的证书怎么办?
Q10教育系统里的「导入导出」为什么容易出问题?怎么测?
为什么难:Excel 模板字段多、格式杂(日期、数字、身份证前导零、合并单元格),用户不会按模板填;数据量大时超时;部分成功部分失败的提示不清;重复导入造成脏数据。
测试点:
- 模板正确时正常导入;字段缺失/多列/顺序打乱
- 类型错误(日期写成文本、成绩写成中文)、超长、空值、特殊字符
- 身份证号、学号前导零是否被 Excel 吃掉
- 重复数据(同学号二次导入)是覆盖还是报错
- 大数据量(1 万条)耗时与超时提示
- 部分失败时:成功的入库了没有?失败原因能不能定位到第几行?能否下载错误清单?
- 导出:字段是否脱敏、导出条数上限、文件名与编码(中文乱码)、大数据量是否异步
3测试流程与方法论JD 第 5 条
这一章是「必须成体系说出来」的部分。不要只报方法名,每个方法要能配一个自己项目的例子。
Q11说说你们公司/项目的完整测试流程。开场必问
- 需求评审:读需求文档/原型,提问澄清,输出「需求疑点清单」,同时开始想测试点。
- 测试计划/方案:范围、策略、资源、环境、排期、风险。
- 用例设计:按模块拆测试点 → 用等价类/边界值/场景法写用例 → 用例评审(开发、产品一起过)。
- 提测与冒烟:开发提测先跑冒烟,主流程不通直接打回。
- 执行测试:按优先级执行,发现问题提缺陷单,跟踪修复。
- 回归测试:验证已修复缺陷 + 跑核心用例集防止引入新问题。
- 测试报告与上线:统计用例执行率、通过率、缺陷分布,给出是否可上线的结论;上线后跟进线上问题。
Q12一条好的测试用例应该包含什么?
八要素:用例编号、所属模块/关联需求、用例标题、优先级、前置条件、测试步骤、测试数据、预期结果(+ 实际结果、执行状态)。
好的标准:
- 可执行:换个人照着做也能跑,不依赖写用例的人的记忆
- 可判定:预期结果明确,不是「正常显示」而是「显示『提交成功』toast,列表新增一条记录,状态为待审核」
- 独立:一条用例验证一个目的,不要一条用例里塞 10 个检查点
- 可复用:公共场景(登录、分页、上传)抽成公共用例
差:「测试登录功能是否正常」。
好:「输入正确手机号和验证码,点击登录 → 跳转首页,右上角显示用户昵称,token 写入本地,数据库 last_login_time 更新」。
Q13等价类、边界值怎么用?举个教育场景的例子。必考
等价类:把输入划分成若干区间,每个区间取一个代表值,用最少的用例覆盖最多的场景。分有效等价类(合法输入)和无效等价类(非法输入)。
边界值:bug 最容易出在边界上,所以专门取边界的值(等于、略大于、略小于)。
实例:考试成绩录入(0~100,支持一位小数)| 方法 | 取值 | 预期 |
|---|---|---|
| 有效等价类 | 0、45、89.5、100 | 保存成功 |
| 无效等价类 | -1、101、abc、空、两个小数点、超长数字 | 提示「请输入 0-100 的数字」并不落库 |
| 边界值 | -0.1 / 0 / 0.1 / 99.9 / 100 / 100.1 | 0 和 100 可保存,两侧越界被拦 |
Q14场景法 / 流程分析法怎么用?
先把业务流程画成流程图(节点 + 判断),再从中提取两条线:
- 基本流:一条路走到底的正常路径(借书成功)
- 备选流:每个判断点的异常分支(库存不足、超期未还、被冻结、余额不够罚款)
然后把基本流和各个备选流组合,得到完整场景集。
以图书借阅为例基本流:登录 → 检索图书 → 点击借阅 → 校验库存/借阅上限/账户状态 → 扣库存 → 生成借阅记录 → 提示成功。
备选流:库存为 0、已达借阅上限(比如 5 本)、有超期未还、账户被冻结、并发同时借同一本、提交中断网。
Q15判定表 / 因果图什么时候用?
当多个输入条件组合起来决定输出时用,典型就是「规则类」需求:报名资格、优惠、学分认定、毕业审核。
判定表四部分:条件桩(有哪些条件)、条件项(每个条件取真/假)、动作桩(有哪些结果)、动作项(每个组合对应的结果)。
例:报名资格条件:学历符合? / 年龄满 18? / 已缴费? / 材料齐全? → 动作:审核通过 / 驳回并提示原因 / 待补充材料。
4 个条件 2⁴=16 种组合,去掉不可能的(未缴费但材料齐全仍可待缴),剩下的逐一验证提示是否准确。
Q16什么是错误推测法?你怎么培养这种「感觉」?
基于经验直接猜哪里容易错,比如:空值、超长、特殊字符、0、负数、重复提交、并发、越权、断网、返回后退、刷新、跨时区、大小写、emoji。
Q17缺陷的生命周期是什么?一个合格的 bug 单包含什么?高频
新建(New)→ 指派(Assigned)→ 开发确认/修复中 → 已解决(Resolved)→ 测试验证 → 关闭(Closed)。
分支:打回/重新打开(Reopen)(没修好或复现)、延期(Deferred)、不予修复(Won't fix)、重复(Duplicate)、非缺陷(Not a bug/By design)。
- 标题:模块 + 条件 + 现象(「图书借阅-已借满 5 本时仍可继续借阅」),一眼能看懂
- 环境:系统/版本/浏览器或机型/账号/数据
- 前置条件:比如账号已借 5 本
- 复现步骤:编号、可重复、不夹带推测
- 预期结果 / 实际结果:分开写,别混在一起
- 严重程度 + 优先级
- 附件:截图/录屏/日志/接口请求响应
Q18缺陷等级怎么划分?
| 等级 | 定义 | 教育系统里的例子 |
|---|---|---|
| P0 致命 | 系统崩溃、主流程阻断、数据丢失或错乱、安全漏洞 | 交卷后答案丢失;学生能改已发布成绩;未登录能拿到他人数据 |
| P1 严重 | 核心功能不可用或结果错误,无绕行方案 | 成绩汇总算错;选课扣了容量但没生成记录 |
| P2 一般 | 非核心功能异常,有绕行方案 | 导出文件名乱码(可改名解决);提示文案错 |
| P3 建议 | 体验、UI、文案优化 | 按钮间距、错别字、加载无 loading |
注意:「严重程度」看影响面,「优先级」看修复急迫性,两者可以不一致——比如首页错别字影响所有人(优先级高)但严重程度低。
Q19开发说「这不是 bug,是设计如此」,你怎么办?情商题
- 先确认事实:翻需求文档/原型/接口文档,看有没有明确说明。有依据就摆依据,别争论。
- 没依据就升级判断标准:从「用户会不会被误导/数据会不会错」的角度讲影响,而不是「我觉得不合理」。
- 拉产品定:产品和开发、测试三方确认,结论写进需求或缺陷单备注,留痕。
- 接受结论但要留记录:如果最终不改,把风险写进测试报告,注明「已知问题,产品确认为设计如此」。
Q20冒烟测试、回归测试、验收测试、α/β 测试有什么区别?
- 冒烟:新版本提测时先跑核心主流程,快速判断「这个版本值不值得测」,不通就打回。
- 回归:修改缺陷或加新功能后,重跑相关用例 + 核心用例集,确认没引入新问题。分全量回归和选择性回归。
- 验收:由用户/业务方按需求确认「做的是不是他要的」,偏业务验收;也有正式验收测试(如第三方测评)。
- α 测试:开发环境内、由内部人员模拟用户使用。β 测试:真实用户在真实环境使用,收集反馈。
Q21测试计划、测试报告分别写什么?
测试计划:测试目标与范围(含不测什么)、测试策略与方法、模块划分与人力排期、环境与数据准备、准入准出标准、风险与应对。
测试报告:版本与环境、测试范围、用例执行情况(总数/执行/通过/失败/阻塞)、缺陷统计(按模块/等级/状态分布)、遗留问题与风险评估、结论(建议上线/有条件上线/不建议上线)、附件(缺陷清单)。
关键报告不是流水账,核心是「结论 + 支撑结论的数据 + 遗留风险」。面试官问这个,是在看你有没有「对结论负责」的意识。
Q22准入和准出标准你会怎么定?
准入(能不能开始测):需求/设计文档已评审、开发自测完成、冒烟用例 100% 通过、测试环境与数据就绪、提测说明(改动点/影响范围)齐全。
准出(能不能上线):P0/P1 缺陷清零、P2 有明确处理计划、用例执行率 100%(未执行需说明原因)、核心用例通过率 100%、回归通过、性能与兼容性达标、测试报告已出。
Q23V 模型、W 模型、敏捷测试的区别?
- V 模型:开发一侧从需求→概设→详设→编码逐层下降,测试一侧从单元→集成→系统→验收逐层上升,需求与验收对应、概设与系统测试对应、详设与集成测试对应。强调测试阶段与开发阶段一一对应。
- W 模型(双 V):在需求、设计阶段就同步开展测试准备(需求分析→测试方案,设计→用例),把测试提前,本质是测试左移。
- 敏捷测试:迭代内持续测,强调自动化、持续集成、全员质量、快速反馈,用例轻文档、重沟通。
Q24什么是测试左移和测试右移?
左移:把质量活动提前到需求和设计阶段——参与需求评审、做需求可测性分析、写用例前置、代码评审、单元测试、静态检查。目的是「缺陷发现得越早,修复成本越低」。
右移:把质量活动延伸到上线之后——灰度发布、线上监控告警、日志分析、用户反馈跟踪、线上问题复盘。目的是「线上才是真实的测试环境」。
Q25怎么保证测试覆盖率?
三个层次:
- 需求覆盖:做需求-用例追踪矩阵(RTM),每条需求至少对应一条用例,评审时逐条核对,防止漏测功能。
- 场景覆盖:主流程 + 分支流程 + 异常流程,用流程图检查每个判断点是否都有对应用例。
- 代码覆盖(更高阶):语句覆盖、分支覆盖、条件覆盖,通常配合单元测试和工具统计,实习层面了解概念即可。
4简历深挖:每一个字都可能被问决定成败
面试官手里只有你这一张纸。你写上去的每个数字都会被追一句「具体说说」,所以每个数字后面都要有故事。
Q26介绍一下你的校园生活 APP 测试项目。必问第一题
S 背景:校园生活 APP,面向在校学生,有注册登录、消息通知、校园服务、个人中心四个核心模块,我在项目里负责测试。
T 任务:功能、接口、兼容性三个维度都要覆盖,还要保证缺陷能闭环。
A 行动:
① 功能上,按模块拆测试点写用例,覆盖正常流程、异常输入、边界值;执行完到 MySQL 查库核对页面和数据库是否一致。
② 接口上,用 Postman 测登录和消息推送接口,重点试了鉴权相关的场景,发现未登录状态访问消息接口仍然返回数据。
③ 兼容性上,在不同安卓机型上跑,发现部分机型页面布局错乱和闪退。
④ 缺陷全部走禅道,按严重程度分级,跟到回归关闭。
R 结果:累计提交 12+ 个缺陷,按严重/普通/优化分类,全部完成回归验证;那个未登录越权的问题修复后,我把同类接口都回归了一遍。
别踩不要一上来就说「技术栈是 Postman、MySQL、禅道」——那是工具清单,不是项目。工具要嵌在行动里说。
Q27「未登录也能访问消息接口」这个 bug,你是怎么发现的?你最好的故事
① 怎么想到:写登录用例时我在列「未登录状态下各接口应该返回什么」,就把消息接口也列进去了。因为消息是私人数据,未登录肯定不该拿到。
② 怎么验证:在 Postman 里不带 token(或把 token 删掉、改成过期 token、改成别人的 token)直接请求消息列表接口,返回 200 而且带真实数据;再换另一个用户 ID 请求,也能拿到别人的消息。
③ 怎么定级:这是越权 + 敏感数据泄露,我定的是致命/严重级别(P0-P1),因为不登录就能拿到别人消息,属于安全问题,不是体验问题。
④ 怎么复测:开发加完鉴权后,我回归了三类:无 token、过期 token、他人 token,都返回 401;同时把其他需要登录的接口(个人中心、校园服务)也扫了一遍,确认没有同类问题。
这类问题属于越权访问:横向越权(同级别用户互相访问数据,改 userId)、纵向越权(低权限访问高权限接口,改 role)。防御靠服务端鉴权 + 数据归属校验,不能只靠前端隐藏入口。
Q28图书借阅项目里「借阅接口请求超时」,你怎么定位是接口问题?技术含量最高的一题
- 先确认现象可复现:固定条件(同一本书、同一账号、同样操作)重复操作,看是否稳定超时,排除偶发。
- 用 Fiddler 抓包看请求本身:请求参数对不对、有没有重复请求、请求发出到收到响应各花了多久(Fiddler 的 Timelines 能看出是卡在等待响应还是传输)。
- 用 Postman 单独打接口:绕过页面直接请求同一接口,如果还是超时,说明不是前端问题;再换简单参数(比如借一本库存充足的书)对比,缩小到具体条件。
- 看服务端线索:请后端看日志和慢查询——最后定位到借阅时联表查询库存和借阅记录,数据量上来后 SQL 慢。
- 修复后复测:同样条件连续操作,记录响应时间;再补大数据量场景(比如某本书借阅记录很多)验证。
Q29你说用 MySQL 核对数据一致性,具体怎么核?写个 SQL 我看看。会当场让你写
-- 1. 看这个用户当前的借阅记录(未归还的) SELECT COUNT(*) FROM borrow_record WHERE user_id = 1001 AND status = 'BORROWED'; -- 2. 看图书库存是否被正确扣减 SELECT book_id, stock, total FROM book WHERE book_id = 2001; -- 3. 联表核对:借阅记录里的书,库存和状态是否对得上 SELECT b.book_id, b.title, b.stock, COUNT(r.id) AS borrowing FROM book b LEFT JOIN borrow_record r ON r.book_id = b.book_id AND r.status = 'BORROWED' GROUP BY b.book_id, b.title, b.stock;
如果被问「你会写多复杂的 SQL」——如实说:单表、多表关联、分组统计、子查询都能写,窗口函数和复杂优化还在学。
Q3012 个 bug 都是什么类型的?印象最深的是哪个?
建议这样归类回答:功能类(约 6 个:登录验证码、消息未读数、头像上传、页面跳转、表单校验、列表分页)、接口/安全类(1-2 个:未登录越权)、兼容性类(2-3 个:机型布局错乱、闪退)、体验类(2-3 个:文案、loading、空状态)。
印象最深的:用 Q27 的越权问题回答,因为它体现「靠设计场景而不是靠乱点」。
Q31兼容性测试具体怎么做的?测了哪些机型?
选机原则:覆盖主流品牌 × 不同安卓版本 × 不同屏幕分辨率 × 高中低端配置,不追求数量追求覆盖度。
典型组合:华为/荣耀(鸿蒙或高版本安卓)、小米/红米(中低端走量机型)、OPPO/vivo、三星(海外)、再加一台低配老机型测性能。
测什么:安装卸载升级、启动速度、页面布局(刘海屏/长屏/字体放大)、图片视频显示、权限弹窗、后台切换、弱网、闪退与崩溃日志。
Q32「参与测试文档维护」具体做了什么?
可说三件事:① 用例库按模块重新归类,统一了用例标题和步骤的写法;② 维护缺陷列表/回归清单,每次版本更新同步;③ 整理测试小结,记录本轮范围、缺陷数、遗留问题。
Q33你只做过功能测试,自动化、性能都没做过,我们为什么招你?压力题
① 承认,不含糊:「对,自动化和性能我目前只是了解概念,没有实战。」
② 给替代价值:我这个岗位现阶段要做的是业务测试和测评,核心竞争力是懂业务、拆得细、文档规范、缺陷说得清,这三样我是有实战的;而且我有真实的缺陷闭环经验,不是只会做课程作业。
③ 给路径:我了解自动化是 Python + requests/pytest 做接口自动化,性能是 JMeter 做脚本、加压、看 TPS 和响应时间分布;如果实习有这块,我愿意在下班后补,先从接口自动化开始,因为接口自动化投入产出比最高。
Q34实习那三个月,你最大的收获和最大的失误分别是什么?
失误是早期提过一个 bug,只写了「消息列表显示不对」,没写环境和复现步骤,开发打回来说复现不了,来回折腾了两次。从那以后我提 bug 一定写清环境、账号、步骤,能截图就截图,能录屏就录屏——一个说不清楚的 bug,等于没提。
这个「失误」答得好,因为它证明你会复盘,而不是「我最大的缺点是太追求完美」。
5数据库与 SQLJD 第 6 条 · 大概率笔试
测试岗考数据库,重点不是 DBA 那种深度,而是「会不会查、会不会用 SQL 验证数据」。下面这几类必须能当场写。
Q35内连接和左连接的区别?举例说明。
inner join:只返回两表都匹配上的行。left join:以左表为主,左表全部保留,右表没匹配到的字段为 NULL。
-- 场景:查所有学生及其选课情况,没选课的也要列出来 SELECT s.id, s.name, c.course_name FROM student s LEFT JOIN course_selection cs ON cs.student_id = s.id LEFT JOIN course c ON c.id = cs.course_id; -- 如果换成 INNER JOIN,没选课的学生就查不出来了
Q36写一个 SQL:统计每门课的平均分和及格率。
SELECT course_id,
COUNT(*) AS 总人数,
ROUND(AVG(score), 2) AS 平均分,
ROUND(SUM(CASE WHEN score >= 60 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2) AS 及格率
FROM score
GROUP BY course_id
HAVING COUNT(*) >= 10; -- 只统计人数≥10 的课程
考点:group by 分组、聚合函数、CASE WHEN 做条件计数、HAVING 过滤分组结果(where 过滤行,having 过滤组)。
Q37where 和 having 有什么区别?
where 在分组前过滤行,不能使用聚合函数;having 在分组后过滤组,可以用聚合函数。执行顺序:from → where → group by → having → select → order by → limit。
Q38查出「没有选任何课程的学生」。
写法一:NOT IN SELECT * FROM student WHERE id NOT IN (SELECT student_id FROM course_selection WHERE student_id IS NOT NULL); 写法二:LEFT JOIN + IS NULL(大表时性能更好) SELECT s.* FROM student s LEFT JOIN course_selection cs ON cs.student_id = s.id WHERE cs.student_id IS NULL;坑
NOT IN 的子查询里如果有 NULL,整个结果会变成空——这是很经典的陷阱,测试时如果发现「查不到数据」,先怀疑这个。
Q39索引是什么?什么情况下索引会失效?
索引像书的目录,能让查询不用全表扫描。MySQL InnoDB 默认用 B+ 树。
常见失效场景:
- 在索引列上做运算或函数:
where date(create_time) = '2026-10-01' - 隐式类型转换:字段是 varchar,查询传了数字
like '%关键字'前置模糊匹配- 复合索引不满足最左前缀原则
- 用
or连接了没有索引的列 - 查询结果占全表比例很大时,优化器可能直接选全表扫描
Q40事务的 ACID 和隔离级别是什么?高频
ACID:原子性(要么全成功要么全回滚)、一致性(约束不被破坏)、隔离性(并发互不干扰)、持久性(提交后不丢)。
四种隔离级别:
| 级别 | 能防住 | 防不住 |
|---|---|---|
| 读未提交 Read Uncommitted | — | 脏读、不可重复读、幻读 |
| 读已提交 Read Committed | 脏读 | 不可重复读、幻读 |
| 可重复读 Repeatable Read(MySQL 默认) | 脏读、不可重复读 | 幻读(InnoDB 用间隙锁大幅缓解) |
| 串行化 Serializable | 全部 | —(性能最差) |
Q41delete、truncate、drop 的区别?测试时要注意什么?
delete 是 DML,逐行删、可加 where、可回滚、触发触发器;truncate 是 DDL,清空整表、不能带 where、不可回滚、自增重置、速度快;drop 删表结构和数据。
select 一遍看命中多少行,重要操作先备份。这条规矩比任何技巧都重要——删错生产库是能上新闻的事故。
Q42给你「学生-课程-成绩」三张表,你怎么设计?测什么?
student(id PK, name, student_no UNIQUE, class_id, status) course(id PK, course_name, credit, teacher_id, capacity) score(id PK, student_id FK, course_id FK, score DECIMAL(5,1), exam_type, create_time) UNIQUE KEY(student_id, course_id, exam_type) -- 防重复录入
要测的数据层问题:主键唯一、外键约束、成绩字段精度(DECIMAL 才能存 59.5,FLOAT 会精度丢失)、重复录入被唯一索引拦住、学号唯一、删除学生时成绩怎么处理(级联还是禁删)。
Q43页面显示和数据库不一致,你怎么排查?
- 库:直接查库,数据本身对不对?不对 → 写入逻辑/事务问题。
- 接口:用 Postman/Fiddler 看接口返回,是不是返回了正确数据?返回就对但页面不对 → 前端渲染/缓存/字段映射问题。
- 前端:清缓存、换浏览器、强刷,排除本地缓存和旧版本。
- 时机:是不是异步同步延迟(比如统计表定时任务还没跑)?隔一段时间再看。
6编程基础与接口测试JD 第 6 条
测试岗的编程题不会很难,通常是「读代码说结果」「写个小函数」「写个 SQL」「讲清楚一个接口怎么测」。重点是别卡壳。
Q44Java 基础:== 和 equals 的区别?String 为什么不可变?
== 比较的是引用地址(基本类型比较值);equals 是方法,默认也是比较地址,但 String、Integer 等重写了,比较的是内容。
String 不可变:内部 char/byte 数组被 final 修饰且不对外暴露,任何修改都会生成新对象。好处:可以安全地做常量池复用、hashCode 稳定适合做 Map 的 key、多线程天然安全。
String a = "abc";
String b = "abc";
String c = new String("abc");
a == b // true (常量池同一个对象)
a == c // false (new 出来的新对象)
a.equals(c) // true (比较内容)
Q45Java 集合:List 和 Map 的区别?ArrayList 和 LinkedList?
List 有序可重复、按索引访问;Map 是键值对、key 唯一。ArrayList 底层数组,查询快、中间插入删除慢;LinkedList 双向链表,插入删除快、查询慢。HashMap 用数组 + 链表/红黑树,JDK8 后链表长度超过 8 转红黑树。
Q46Python:列表和元组的区别?可变与不可变?
list 可变、用 [];tuple 不可变、用 (),可作为 dict 的 key。可变对象(list/dict/set)做函数参数时会被原地修改,这是常见 bug 来源。
# 一个测试里常用的小脚本:判断用例是否全部通过
cases = [{"name":"登录","pass":True},{"name":"借阅","pass":False}]
failed = [c["name"] for c in cases if not c["pass"]]
print(f"共 {len(cases)} 条,失败 {len(failed)} 条:{failed}")
Q47接口测试怎么测?会测哪些点?必问
- 正常场景:必填参数正确,返回 200 且业务 code 正确、字段值正确、数据库落库正确。
- 参数校验:必填缺失、类型错误、超长、特殊字符、边界值、多余字段。
- 业务异常:重复提交(幂等)、状态不合法(已交卷再提交)、越权(他人数据)。
- 鉴权:无 token、过期 token、伪造 token、低权限访问高权限接口。
- 异常与容错:超时、下游服务不可用、返回值格式异常时的提示。
- 性能与安全:响应时间、并发、SQL 注入、敏感字段是否明文返回。
Q48常见 HTTP 状态码说一下。背
| 状态码 | 含义 | 测试中的意义 |
|---|---|---|
| 200 | 成功 | 注意:业务失败也可能返回 200,要看业务 code |
| 301/302 | 永久/临时重定向 | 域名切换、https 跳转 |
| 304 | 未修改(走缓存) | 改了内容但页面没变,可能是缓存 |
| 400 | 请求参数错误 | 参数校验失败 |
| 401 | 未认证 | 没登录/token 失效 |
| 403 | 无权限 | 登录了但没权限(越权被拦) |
| 404 | 资源不存在 | 路径错或数据被删 |
| 405 | 方法不允许 | GET 接口用 POST 调 |
| 500 | 服务端异常 | 看日志,多为空指针/未捕获异常 |
| 502/504 | 网关错误/超时 | 下游服务挂了或响应太慢 |
易错点:401 是「你是谁不知道」,403 是「知道你是谁但不让你进」。答反了很扣分。
Q49Cookie、Session、Token 的区别?
Cookie 存在客户端;Session 存在服务端,靠 Cookie 里的 sessionId 关联;Token(如 JWT)是把身份信息签名后放客户端,服务端不用存,适合分布式和前后端分离。
测试关注点:token 过期时间、退出登录后 token 是否失效、多点登录策略、token 能否被篡改(改了签名是否校验)、token 是否出现在 URL 里(有泄露风险)。
Q50GET 和 POST 的区别?
GET 参数在 URL、有长度限制、可被缓存和收藏、幂等;POST 参数在 body、无长度限制(受服务端配置影响)、不缓存、非幂等。语义上 GET 用于查询,POST 用于提交/修改。
Q51Fiddler 你用来做什么?
- 抓包看请求:请求头、参数、响应体、耗时,确认前端到底发了什么
- 改包:改参数/改响应,模拟异常返回、绕过前端校验测后端(Composer / AutoResponder)
- 弱网模拟:限速,测加载慢、超时提示
- 定位问题归属:接口返回对但页面不对 → 前端;接口本身错 → 后端
Q52接口返回 200 但数据不对,怎么排查?
顺序:① 看请求参数是否传对(抓包)→ ② 看返回结构里业务 code 和 message(可能是业务失败但 HTTP 200)→ ③ 查库确认数据源 → ④ 换账号/换数据对比,判断是数据问题还是逻辑问题 → ⑤ 看是否有缓存(同一请求两次结果不同)→ ⑥ 给开发提供请求 ID 和日志。
7测试设计实战题(大概率现场出题)考思维不考记忆
这类题没有标准答案,考的是你的条理:能不能分层、能不能从正常到异常、能不能想到别人想不到的。答题时先说框架,再展开。
Q53设计「登录功能」的测试用例。经典必考
- 功能正常:账号密码正确 → 登录成功跳转、显示用户信息、生成会话
- 账号密码异常:账号不存在、密码错误、密码为空、账号为空、大小写、前后空格是否 trim
- 输入校验:长度边界(最短/最长/超长)、特殊字符、emoji、SQL 注入串
' or 1=1 --、XSS 串<script> - 验证码:正确/错误/过期/复用/不填;图形验证码刷新;短信验证码频率限制(60 秒)、错误次数上限
- 安全与状态:连续错误 5 次是否锁定、密码是否明文传输(https)、是否记住登录、退出后 token 失效、多点登录、越权(改 userId 看别人信息)
- 兼容与体验:不同浏览器/机型、弱网、断网提示、键盘弹起遮挡、loading 与重复点击
Q54设计「在线考试提交试卷」的测试用例。教育场景题
- 正常:答完手动交卷 → 提示确认 → 提交成功 → 显示成绩或待判分 → 数据库答案与试卷状态正确
- 自动交卷:倒计时到 0 自动提交,未答题按空处理;剩余 1 秒时点击提交(边界)
- 中断:提交过程中断网/关浏览器/断电 → 重进是否能续考、已答内容是否保留、剩余时间是否继续走
- 重复提交:连点两次提交、提交成功后退回再提交 → 应幂等,不能生成两份答卷
- 并发:考试结束瞬间大量学生同时交卷 → 不丢卷、响应时间可接受
- 规则:迟到 15 分钟禁止进入、提前交卷限制、切屏次数超限强制交卷、主观题未答能否提交
- 判分:客观题自动判分正确、多选题漏选/错选规则、主观题待人工、成绩精度
- 权限:交卷后不能再改答案、不能看答案、教师端能否看到答卷
Q55设计「选课 / 报名」功能的测试用例。
- 正常:有名额、未选过、时间在开放区间内 → 选课成功、容量 -1、生成记录
- 规则限制:容量为 0、已达选课上限(如 6 门)、时间未开始/已结束、先修课未通过、专业/年级不符、时间冲突(同一时段两门课)
- 重复:已选过再选、退课后重选、并发点击
- 并发:最后一个名额两人同时抢 → 只能一人成功,容量不能为负(超卖)
- 状态回退:退课是否释放名额、退课后记录是删除还是置为已退、已选人数统计是否同步
- 数据:容量字段与已选人数是否一致、选课记录唯一性
Q56设计「文件上传」(作业图片/课件)的测试用例。
- 正常:jpg/png/pdf 正常上传,大小在限制内,回显正确,可预览可下载
- 格式:不支持的类型(exe、txt 改名成 jpg 的假图片)、大小写后缀、无后缀
- 大小边界:0 字节、刚好限值、超 1KB、超大文件(如 100MB)
- 文件名:中文、空格、特殊字符
#&%、超长、同名文件重复上传(覆盖还是并存) - 异常:上传中断网、取消上传、上传中关闭页面、多文件同时上传、重复点击上传
- 安全:能否上传脚本文件、上传后能否直接执行、路径穿越(
../../)、存储是否可公开访问 - 结果:文件存储路径与数据库记录是否一致、缩略图是否生成、并发上传是否串文件
Q57设计「权限」的测试,你怎么保证不漏?
| 角色 \ 操作 | 看自己班成绩 | 看其他班成绩 | 修改成绩 | 导出名单 | 删除课程 |
|---|---|---|---|---|---|
| 学生 | 只能看自己 | ❌ | ❌ | ❌ | ❌ |
| 教师 | ✅ | ❌ | ✅(未发布前) | ✅ | ❌ |
| 教务 | ✅ | ✅ | ✅ | ✅ | ✅ |
三层验证:① 界面层——菜单/按钮有没有隐藏;② 接口层——直接调接口有没有被拦(这才是关键,前端隐藏不等于安全);③ 数据层——改 ID / 改班级参数能不能看到别人的数据。
Q58设计「消息推送」的测试用例。
- 触发:什么事件推(交作业、成绩发布、考试提醒)、推给谁(全班/指定人)、条件是否准确
- 到达:在线 App 内推送、离线推送、已读未读状态、红点数量
- 内容:标题长度、正文超长截断、变量替换(姓名、课程名)是否正确、特殊字符/emoji
- 频次:重复推送、免打扰时段、批量推送(一次推 1 万人)耗时
- 跳转:点通知是否进到对应详情页、登录态失效时跳哪
- 异常:推送服务不可用时业务是否受影响(不能因为推送失败导致交作业失败)
Q59一个列表页,你会测哪些点?
数据(无数据 / 1 条 / 满页 / 多页)、分页(首末页、跳页、每页条数切换、越界页码)、排序(各字段升降序、空值排哪、多字段)、筛选(单条件/组合/清空/筛选后翻页条件是否保留)、搜索(模糊/精确、空结果、特殊字符、超长)、刷新后状态、导出与列表数据是否一致、权限(只看到自己的数据)、性能(万级数据加载)。
Q60只有一天时间,只能测一个模块,你测哪个、怎么测?
先选主流程上、用的人最多、出错代价最大的模块——在教育系统里通常是登录 + 学习/交卷,因为这两个断了整个产品就废了。
怎么测:① 半小时跑冒烟确认主链路通;② 用 P0 用例覆盖核心正向流程;③ 重点补高危场景(权限、重复提交、数据落库);④ 记录未覆盖范围,写在报告里说明风险。
8逻辑思维与创新题JD 第 2、3 条
JD 里写「具备创新能力,提出创新性问题解决思路」「良好的逻辑思维能力,条理清晰」。这两条不会直接问「你创新吗」,而是通过出题看你的思考过程。
Q61估算一下:一个 5 万人的继续教育平台,期末考试那天大概会产生多少并发?费米估算
① 总量:5 万在读学生,假设 80% 参加本次考试 = 4 万人。
② 时间分布:考试窗口假设 3 天,每天 3 场,共 9 场,每场约 4400 人。但实际情况是大家爱赶最后一场,所以按「最后一场占 40%」估,约 1.6 万人。
③ 瞬时:每场 90 分钟,开考后 10 分钟内集中进入,1.6 万人 / 600 秒 ≈ 27 人/秒;交卷更集中,最后 10 分钟交卷 ≈ 27 人/秒,且交卷请求比进入更重(写答案、判分、写日志)。
④ 结论:峰值按 30~50 QPS 量级估,交卷接口是瓶颈;如果系统还带自动保存(每 30 秒存一次答案),那答案保存接口的压力是交卷的十几倍,要先压这个。
Q62三个需求,明天只能测完一个,你怎么排优先级?
- 影响面:涉及多少用户、是不是主流程
- 出错代价:错了是体验问题还是要重考/退费/投诉
- 变更风险:改动大、动了公共模块、动了老逻辑的优先
- 依赖关系:被别人依赖的先测(不然下游全堵住)
- 可回退性:出问题能不能快速回滚,不能回滚的优先
然后给结论并说明遗留风险:先测 A,B 做冒烟,C 明确不测并写进报告。
Q63如果让你从 0 开始建一个项目的测试用例库,你怎么做?对应 JD「标准建设」
- 先定结构:按「模块 → 子功能 → 场景」三级组织,用例编号规则统一(如
LOGIN-001),保证能检索、能追溯需求。 - 再定模板:统一字段(前置条件/步骤/预期/优先级/关联需求/是否自动化),固定写法避免「同一件事三种描述」。
- 抽公共用例:登录、权限、分页、导入导出、上传、消息这些每个模块都要测的,抽成公共库,避免重复写。
- 分级:P0 冒烟集(几十条,每次提测必跑)、P1 核心集(回归用)、P2 全量(版本大回归用)。
- 建立维护机制:需求变更同步更新用例、每次线上问题反补一条用例、定期清理失效用例。
Q64举一个你「想办法解决了一个麻烦事」的例子。创新题的正确答法
可讲的三个真实素材(挑一个讲):
- 用例重排:原来用例按时间顺序堆着,找一条要翻很久 → 我按模块+场景重新编号归类,加了「核心回归」标记 → 后来回归时直接筛标记跑,省了找用例的时间。
- bug 描述模板:早期 bug 被打回两次 → 我给自己定了个固定格式(环境/前置/步骤/预期/实际/附件)→ 后面基本没有被退回说复现不了。
- 巡检表:自管会查寝原来凭印象记 → 我做了个固定检查项的表,一条条打勾 → 汇总上报的时候不会漏,也有据可查。
我不觉得这算什么创新,但我的思路是:同一个麻烦出现两次,就不该再用原来的方法做第三次。做测试尤其这样,因为重复的事情太多了,能固化成模板的就不该靠记性。
Q65线上出了个事故:学生成绩显示错误。你怎么复盘?
五步(5Why 思路):
- 止损:先修数据、先止血(回滚/修正数据/公告),别急着追责。
- 还原:时间线、影响范围(多少学生、哪些课程)、触发条件。
- 追因(连问为什么):为什么显示错 → 统计口径改了 → 为什么没测出来 → 用例里没有这个口径的校验 → 为什么没有 → 需求变更没同步到测试 → 为什么没同步 → 变更流程里没有「影响测试范围」这一环。
- 改进:流程上补(变更必须通知测试)、用例上补(把这条加进回归集)、监控上补(成绩分布异常告警)。
- 沉淀:写成案例,团队过一遍。
Q66需求写得很模糊,只说了「做一个学习进度功能」,你怎么办?
我会列出必须澄清的问题,去找产品确认:
- 进度怎么算:按视频观看时长?按章节完成数?按课件页数?
- 拖动进度条算不算?倍速播算不算?后台挂着算不算?
- 同一节课看两遍算 100% 还是 200%?
- 换设备/换浏览器,进度是否同步?
- 进度 100% 的判定是等于还是大于等于?差 1 秒怎么办?
- 课程更新加了新章节,已 100% 的学员进度怎么处理?
9HR 面与反问最后 15 分钟决定印象
Q67为什么想做测试,不做开发?必问
不要说「我开发学得不好」,也不要说「测试轻松」。要给一个「能力匹配 + 有正向体验」的理由。
我也不觉得测试比开发低级,反而测试要懂业务、懂技术、还得会沟通,是个要求挺综合的岗位。
Q68为什么选择弘成?为什么选教育行业?必问,答不好前面白搭
① 行业:教育系统的业务复杂度高(多角色、强规则、跟政策挂钩),对测试的严谨度要求比一般 C 端产品高,我想在这种环境里练基本功,而不是只做界面点点点。
② 公司:弘成做的是学历继续教育和院校信息化,是 To B + To C 的模式,客户是院校,交付质量直接关系到学校的教学秩序;而且 JD 里提到标准建设和认证测评,说明这个团队是在建体系,不是纯人力外包式执行,这对新人成长更有利。
③ 岗位:JD 要求的三件事——研究业务、参与标准、做测评——正好是我愿意沉下去做的方向,我更喜欢把一件事拆明白、写成文档,而不是每天点页面。
Q69未来三年的规划?
我不太想给自己定「三年做到什么职位」,实习阶段我更在意能不能在真实项目里把一件事做扎实。
Q70你的优点和缺点?缺点必须真实但不致命
优点(给证据,别只给形容词):细 + 有条理。细体现在按标准逐项核对(查寝、查库核对数据);有条理体现在拆业务会先分层再展开。
缺点(真实、可改进、不影响岗位核心):① 技术深度不够(自动化、性能没实战);② 有时候太纠结细节,会在一个不影响用户的问题上花太久,现在会先判断严重程度再决定要不要深挖。
Q71你能实习多久?每周几天?实习岗第一硬指标
这题决定成败,提前算清楚自己的课表,给出明确答案,不要含糊说「看情况」。
如果实际只能每周 3 天,就诚实说 3 天并说明稳定性;虚报后被拆穿更难堪,而且实习岗最怕的是「来了两周就走」。
Q72你是党员吗?敏感但会问
是党员:直接说入党时间 + 一句「组织生活让我习惯了按规矩办事、事情有记录」,别展开讲政治。
不是党员(大概率情况):不解释、不辩护,一句话带过,然后转回能力。
不要说「我准备入党」「我觉得党员不重要」这类话。淡处理,转到「做事有规矩、有记录」,这是测试岗真正在意的。
Q73能接受加班吗?测试经常要陪着上线到很晚。
不过我也想说明一下我的理解:加班如果是发版节点这种客观需要,我完全配合;但如果是白天需求没理清、反复返工导致的加班,我希望能在流程上想办法减少,比如需求评审的时候把规则问清楚。我不太喜欢用加班来补流程的洞。
这个答法比单纯说「能接受」有分寸,显得你有判断力,不是只会说好。
Q74期望薪资是多少?(实习)
实习岗不要报高价,也不要报「都可以」。给一个区间 + 一句「按公司标准」。
(如果在其他城市,把区间换成当地水平;不确定就说「按公司实习标准,我没有特殊要求」。)
Q75你有什么想问我们的?最后一题,答好加分
- 「这个实习岗进来之后,主要会负责哪一类系统的测试?是偏向院校平台,还是偏向测评认证那块?」——显示你认真读了 JD。
- 「团队现在测试用例和规范这块是已经有体系了,还是正在建?如果我进来,能参与到哪部分?」——对上 JD 的「标准建设」,也显得你想干活。
- 「如果我这个实习做得不错,团队对实习生的成长路径大概是怎样的?」——表达长期意愿,不油腻。
不要第一轮就问薪资、转正比例、加不加班、能不能远程。也不要问「公司是做什么的」——官网上有的东西别问。
10考前速记卡
面试前一天只看这一页。剩下的靠说,不靠背。
Linux 常用命令(会问「你用过哪些」)
ls -l/cd/pwd看目录tail -f 日志实时看日志(最常用)grep "关键字" 文件搜日志里的报错ps -ef | grep java看进程netstat -anp | grep 端口看端口占用chmod 755改权限df -h/top看磁盘和资源
测试术语中英对照(外企/规范团队会问)
- 测试用例 Test Case|缺陷 Defect/Bug
- 冒烟测试 Smoke Test|回归测试 Regression
- 等价类 Equivalence Partitioning
- 边界值 Boundary Value
- 验收测试 UAT|准入 Exit/Entry Criteria
- 可追溯性矩阵 RTM
- 缺陷密度 Defect Density
Bug 描述模板(照着填不会错)
- 标题:模块 + 条件 + 现象
- 环境:版本/系统/浏览器/账号
- 前置:数据与状态准备
- 步骤:1→2→3,可复现
- 预期 / 实际:分开写
- 等级:P0-P3 + 附件
教育行业高频词汇(听得懂才接得住)
- 学籍 / 学分 / 学时 / 绩点
- 继续教育、网络教育、成人教育
- 学习中心、函授站、教学点
- 选课、排课、重修、补考
- 题库、组卷、客观题/主观题
- LMS(学习管理系统)、SCORM/xAPI
- 毕业审核、学位申请
被问住时的三句话(救命)
- 「这块我没实际做过,我的理解是……不知道对不对?」
- 「我确认一下,您问的是 A 还是 B?」(争取思考时间)
- 「这个问题我记下来,回去查清楚再答复您。」
面试前一小时 checklist
- 1 分钟自我介绍能不看稿说完
- 12 个 bug 能分类说清,越权那个故事能讲 2 分钟
- 能手写一条 group by 的 SQL
- 准备好 2 个反问
- 实习天数、能实习多久,答案确定
- 简历打印 2 份、笔、纸(可能让你画流程图)