陈祉伊 · 弘成科技(ChinaEdu)实习测试工程师
定制面试手册

依据「实习-测试工程师」JD 与本人简历逐条对齐 · 在线教育 / 学历继续教育 / 教育信息化赛道

招聘方:弘成科技发展有限公司(已上市 · 1000-9999 人 · 在线教育) 需求专业:计算机 / 软件相关 关键词:教育业务 · 测试标准 · 认证测评 · 数据库

0JD 拆解:他们真正想招什么样的人

这份 JD 写了 3 条职责、6 条资格,看着很虚,其实信息量很大——它不是招「点点点」,是招「能理解业务、能沉淀标准、能做测评」的测试。

三条职责翻译成人话

JD 原文真实含义你要怎么接
研究教育行业业务特点和 IT 软件需求,运用先进测试方法和框架,保障 IT 系统质量 不是给你写好用例让你执行,是让你先搞懂「继续教育/教务/考试」这套业务,再自己拆测试点 面试里主动讲「我是怎么把一个业务流程拆成测试点的」,举校园 APP 的例子
参与教育行业 IT 测试标准建设,负责教育科技产品和应用软件的认证测评 公司要给院校/客户交付,需要一套可复用的测试规范 + 第三方测评式的验收报告 说清「标准 = 用例库 + 缺陷分级 + 准入准出 + 报告模板」,说清「测评 = 依据标准逐项验证出报告」
提供教育行业 IT 质量热点难点的测试解决方案 教育系统有几类老大难:多角色权限、学时学分规则、报名考试高并发、视频兼容、数据一致性 准备 3 个「难点 + 我的解法」,这是最能加分的一题

六条资格里,哪几条是真门槛

  • 统招本科及以上、计算机相关专业——你是大连海洋大学计算机科学与技术,统招本科,直接过。
  • 中共党员优先——是「优先」不是「必须」,不是党员也不用慌,别主动解释,问到了再说。
  • 创新能力、逻辑思维、条理清晰——这是软门槛,面试官会通过「你怎么拆一个问题」来判断,不是听你自夸。→ 第 8 章专门准备。
  • 了解软件工程、测试流程与测试方法论——注意 JD 只要求「了解」,但你必须能成体系地说出来,不能只说「等价类边界值」。→ 第 3 章。
  • 了解编程语言、数据库——大概率会问 SQL 和一两道语言基础题,甚至会让你写。→ 第 5、6 章。
这份 JD 的一个隐藏考点 它反复出现「标准」「认证测评」「解决方案」三个词,说明这个实习岗不只是执行用例,还要产出文档和规范。所以你简历里那句「参与测试文档维护」要重点准备,能讲出「我维护了什么文档、格式是什么、给谁用」,比多背 10 道题有用。

你的匹配度(面试开场可以只用一句)

我的情况和这个岗位有三点是对得上的:第一,专业对口,计算机科学与技术,软件工程、数据库、Java、Python 都系统学过;第二,我在公司做过 3 个月测试实习,不是只在学校做课程项目,缺陷从提交到回归关闭我是走完整流程的;第三,我做过两个完整项目,一个移动端一个 Web 端,功能、接口、兼容性、数据库校验都碰过,所以您说的「研究业务再拆测试点」,我是有方法也有习惯的。

1自我介绍:三个版本,背到能脱口而出

自我介绍决定面试官后面问什么。你要主动把「钩子」抛出去,让他在你准备好的地方追问,而不是在他随机想到的地方追问。

结构公式(记住这个就够了) 我是谁(10%)→ 我做过什么、做出了什么结果(55%)→ 我会什么(20%)→ 我为什么来这个岗位(15%)
千万不要用「我性格开朗、学习能力强、希望得到锻炼」占掉一半时间,那是所有人都会说的废话。
版本 A · 30 秒(HR 初面 / 电话沟通)约 130 字
面试官您好,我叫陈祉伊,大连海洋大学计算机科学与技术专业 2027 届本科生。我在北京多拓世纪做过 3 个月测试实习生,负责移动端 APP 的功能测试,从梳理测试点、执行用例到提交缺陷、跟进回归,整套流程都独立走过;在校期间还完整做过校园生活 APP 和图书借阅系统两个项目,接口和数据库校验也做了一部分。我比较擅长把业务流程拆成测试点,也习惯把缺陷写得让开发一眼能复现。看到咱们这个岗位是做教育行业的系统和测评,我很想把测试基本功放到更复杂的业务里去练。
版本 B · 1 分钟(业务面 / 技术面主推)约 300 字,建议背这一版
面试官您好,我是陈祉伊,大连海洋大学计算机科学与技术专业 2027 届本科。

我先说实习。2025 年 11 月到 2026 年 1 月,我在北京多拓世纪科技做测试实习生,负责校园生活类移动端 APP 的功能测试。我做的事情分三块:一是梳理业务测试点并写用例,覆盖正常流程、异常输入和边界场景;二是执行用例、提缺陷、跟踪 bug 生命周期,一直到回归验证关闭;三是跟着产品看线上问题,配合研发定位、推动闭环。这段实习让我明白一件事:测试的价值不是「点了多少下」,而是能不能在开发之前想到他想不到的场景。

项目方面,校园生活 APP 我重点做了三件事:用 Postman 测登录和消息推送接口,发现未登录状态下访问消息接口仍然返回数据这个越权问题;用 MySQL 查库核对前端展示和数据库是否一致;在不同安卓机型上做兼容性测试,发现了布局错乱和闪退。另一个图书借阅系统,我用 Fiddler 抓包定位到借阅接口请求超时,配合后端调完逻辑后复测通过。两个项目加起来提交了20 多个缺陷,其中 8 个高危,绝大部分两天内完成修复复测。

工具上我会禅道、Postman、Fiddler,能用 MySQL 做数据校验,Git 和 Linux 命令有基础,测试方法上等价类、边界值、场景法这些是能直接上手用的。

我关注弘成,是因为你们做的是学历继续教育和院校信息化这条线,业务比普通 C 端 App 复杂得多——多角色、多端、学时学分规则还跟政策挂钩,这种业务对测试的严谨度要求更高。我现在的短板是没有教育行业经验,但我能保证的是流程熟、文档能写、bug 能说清楚,业务上的东西我上手很快。
版本 C · 2 分钟(终面 / 部门负责人)在版本 B 上加「理解 + 匹配」两段
前面和版本 B 完全一致,讲完项目和工具后,接以下两段:

【我对这个岗位的理解】我看 JD 里提到三点:研究教育业务、参与测试标准建设、做认证测评。我的理解是,这个岗位不是被动接需求执行用例,而是要先搞懂「学生怎么报名、怎么学、怎么考、成绩学时怎么算」这条链路,把共性的问题沉淀成规范和用例库,最后能输出一份站得住脚的测评结论。这正好是我愿意做的方向——我个人不太喜欢只按别人的用例点,更喜欢自己去拆业务。

【我和岗位的三点匹配】第一,专业和基础课对口,软件工程、数据库原理、Java、Python 都学过,SQL 能写多表关联和分组统计;第二,我有真实项目的完整闭环经验,缺陷不是我提完就结束,是我跟到关闭;第三,我做事偏细,学校自管会做寝室巡检的时候,我是按标准一条条核查、记录、汇总上报的,这种「按标准逐项核对」的习惯,和做测评其实是同一件事。

【收尾】我知道自己现在缺的是行业经验和自动化、性能的深度,但实习期我希望能先把业务测透、把文档写规范,能独立负责一个模块的测试。如果给我这个机会,我上手不会慢。
四个千万别说的
  • 「我性格比较内向,但做事认真」——先给自己贴负面标签,面试官只会记住前半句。
  • 「我虽然没经验,但我学习能力很强」——整段都在讲态度,没有一件事作为证据。
  • 背简历流水账:「2023 年入学……2025 年实习……2026 年项目……」——时间线不是重点,结果才是。
  • 把项目说成「我参与了」——「参与」在面试里等于「没干」。要说「我负责哪一块、怎么做的、发现了什么」。
三个可以主动埋的钩子(面试官大概率会追)
  1. 「未登录也能拿到消息数据」→ 引到接口鉴权、越权测试、安全测试意识。
  2. 「用 MySQL 核对前后端数据一致性」→ 引到 SQL 和数据库知识,正好对上 JD 第 6 条。
  3. 「按标准逐项核查、记录、汇总」→ 引到认证测评和标准建设,正好对上 JD 第 2 条。

2教育行业业务认知本岗位核心差异点

普通测试面试只考测试;这个岗位一定会考「你懂不懂教育业务」。这一章不用全背,但要能讲出框架,并且至少准备 3 个难点。

Q1你了解在线教育 / 教育信息化这个行业吗?弘成是做什么的?必问
答题思路

分三层说:行业是干什么的 → 弘成在这条链路的哪个位置 → 这对测试意味着什么。不要背公司简介,要落到「所以对测试有什么要求」。

口语版
我理解的教育信息化大概分三块:一块是院校的教学教务系统,比如选课、排课、成绩、学籍;一块是在线学习平台,课程、直播录播、作业、考试;还有一块是继续教育和职业培训,面向成人学历提升和企业培训。弘成我了解到的是国内做得比较早的一批,主要是给高校的继续教育、网络教育提供平台和运营服务,也做教育信息化和职业培训这块,客户以院校和机构为主,不是纯 C 端产品。

这种 To B + To C 混合的模式,对测试的要求跟纯 C 端不一样:一是角色多,学生、教师、教务、学习中心、管理员,权限必须切得很干净;二是规则重,学时、学分、成绩、毕业条件都是硬规则,算错一个学生就可能毕不了业;三是数据要留痕,学习记录、考试成绩属于要长期存档甚至要接受检查的数据,不能错也不能丢。所以我理解这个岗位强调「业务特点」和「标准建设」,是因为这类系统的质量事故代价比一般 App 高得多。
别踩

不要编造弘成的具体客户名、营收、上市板块。不确定就说「我了解到的是……可能不全面,您能不能补充一下」,反而显得诚实。

Q2一个在线教育平台通常有哪些模块和角色?
答题思路

按「人 → 事 → 数据」三条线讲,能画出来最好(面试时可以在纸上画)。

角色:学生(学员)、教师(主讲/辅导)、教务管理员、院校管理员、学习中心/招生老师、平台运营、系统管理员。

主流程模块:

  • 招生报名:注册、实名认证、报读层次/专业、缴费、审核、学籍注册
  • 教学:课程资源、直播/录播、学习计划、课件上传与转码、学习进度记录
  • 学习:看课、计时、作业提交、讨论答疑、互评
  • 考试:题库、组卷、预约考试、在线答题、交卷、判分(客观自动/主观人工)、成绩发布
  • 教务:排课、选课、学分认定、成绩管理、毕业审核、证书发放
  • 支撑:消息通知、支付、短信、文件存储、统计报表、权限与日志
口语版
我会按「人、事、数据」来拆。人就是角色,学生、老师、教务、管理员;事就是一条主链路——报名缴费、学籍注册、选课学习、作业考试、成绩学分、毕业发证;数据就是这条链路上产生和流转的东西,学习时长、成绩、库存一样的余量、审批状态。测试的时候我会顺着这条链走一遍,把每个环节的输入、规则、输出、状态变化列出来,基本测试点就出来了。
Q3教育行业系统测试,和电商、社交 App 测试最大的区别是什么?高分题

四个区别,能说出三个就算过关:

维度教育系统的特点测试上要注意什么
角色与权限一个学生可能同时是某门课的助教;教师只能看自己班的成绩;学习中心只能管自己招的学生做权限矩阵测试:角色 × 功能 × 数据范围,重点测越权(横向:看别人班;纵向:学生调教师接口)
业务规则学时学分、成绩权重(平时 30% + 期末 70%)、补考重修、毕业条件,规则还随政策变规则用判定表穷举;边界重点测(59.5 分算不算及格、学时差 1 分钟算不算完成)
数据一致性看课时长累计、成绩汇总、缴费与学籍联动,一处错就是学生投诉每个写操作都要查库核对,不能只看页面提示成功
并发峰值开学选课、期末集中交卷、成绩查询开放瞬间,流量是平时的几十倍关注重复提交、超卖(课容量)、排队、幂等
口语版
我觉得最大的区别是「错了的代价不一样」。电商下单失败,用户重下就行;但成绩算错、学时没记上,学生可能直接毕不了业,而且是能追溯到具体人的责任问题。所以我测这类系统会多两个动作:一是每个操作都去数据库确认落库结果,不只信页面提示;二是把权限和数据范围当成重点,学生能不能看到别人的成绩、老师能不能改已发布的成绩,这些在 C 端产品里不是重点,在这里是红线。
Q4如果让你负责一个「继续教育学习平台」的测试,你从哪几个维度切入?
答题思路

这道题考的是「结构化思维」,用固定的六维框架答,条理立刻出来。

  1. 业务流程维度:报名→缴费→学籍→选课→学习→作业→考试→成绩→学分→毕业,逐段验证主流程能走通。
  2. 角色权限维度:做权限矩阵,重点测越权与数据隔离。
  3. 规则算法维度:学时统计、成绩计算、学分认定、毕业判定,用判定表 + 边界值。
  4. 数据维度:字段校验、精度(成绩保留几位)、一致性(前端/接口/库三处对齐)、历史数据兼容。
  5. 异常与容错维度:断网、弱网、重复提交、超时、并发、断电中断续考、文件过大。
  6. 非功能维度:性能(选课/交卷峰值)、兼容性(浏览器 + 安卓/iOS + 分辨率)、安全(越权、SQL 注入、敏感信息脱敏)、易用性。
我会先按业务主链路走一遍,保证「能跑通」;再按角色做权限矩阵,因为教育系统最容易在这块出事;然后把学时、成绩这类硬规则单独拎出来用判定表和边界值穷举;最后补异常场景和非功能。顺序上我会先做冒烟确认主流程可用,再分模块深入,因为实习期时间有限,得先保证主链路是通的。
Q5你认为教育行业 IT 质量的热点和难点有哪些?JD 第 3 条原题

准备 5 个,每个都能说到「难在哪 + 怎么测」。

难点难在哪怎么测
多角色权限与数据隔离角色多、层级多(院校/学习中心/班级),权限还随流程状态变化权限矩阵 + 接口层越权测试(改 ID、改 role 参数)
学时学分等规则计算规则由政策决定,会变;累计、去重、跨学期、退课回退都影响结果判定表穷举 + 边界值 + 造历史数据回归
集中高峰并发选课抢容量、期末集中交卷,瞬时流量极大,还要防重复提交JMeter 压测 + 幂等校验 + 超卖检查
音视频与多端兼容直播/录播依赖浏览器、机型、网络、编码格式,问题极难复现机型/浏览器矩阵 + 弱网模拟(Fiddler/限速)+ 记录环境信息
数据合规与安全学生身份、成绩属敏感信息;等保、个人信息保护法有明确要求敏感字段脱敏、越权、日志留痕、密码策略、导出权限
第三方对接支付、短信、人脸识别、学历核验,出问题往往在对方Mock + 异常返回(超时、重复回调、签名错)
我个人觉得最典型的是权限和规则这两个。权限难在角色和数据范围是组合出来的,靠人工点很难覆盖全,我倾向于做成矩阵去对;规则难在它会变,而且算错不容易被发现,所以我会把每条规则单独列出来做成判定表,再专门造一批边界数据去跑。另外像选课抢课这种并发场景,虽然我还没做过压测,但我知道思路是先看有没有做库存扣减的原子性和重复提交的幂等。
诚实边界

被追问「你压测过吗」——不要硬吹。答:没独立做过,只用 JMeter 跟着教程跑过简单脚本,思路清楚但没实战,这是我实习期最想补的。

Q6JD 里说「参与教育行业 IT 测试标准建设」,你觉得标准应该包含什么?拉开差距的一题
答题思路

把「标准」拆成 5 个可交付物,说得出具体内容,就比 90% 的候选人强。

  1. 流程标准:需求评审 → 测试方案 → 用例评审 → 执行 → 缺陷管理 → 回归 → 测试报告 → 上线检查,每一步的输入输出和责任人。
  2. 用例标准:用例模板(前置条件/步骤/预期/优先级/关联需求)、用例分级(P0 主流程 / P1 重要 / P2 一般)、公共用例库(登录、权限、导入导出、分页、文件上传这些可复用场景)。
  3. 缺陷标准:缺陷分级定义(P0 阻塞/P1 严重/P2 一般/P3 建议)+ 缺陷单必填要素 + 什么情况必须挂起/打回。
  4. 准入准出标准:提测准入(冒烟通过率 100%、无 P0/P1 遗留)、上线准出(P0/P1 清零、用例执行率、回归通过率)。
  5. 测评与报告标准:按质量特性(功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性、可移植性)逐项给结论,附环境、用例、问题清单、结论与建议。
我理解「标准」不是写一份制度放在那儿,而是把大家各自的做法固化成可以照着做的模板和判定口径。比如同一个 bug,有人觉得是致命,有人觉得是建议,最后统计出来的质量数据就没意义了,所以缺陷分级必须先统一。如果让我参与,我会先从公共用例库和缺陷分级入手,因为这两块最容易落地,也最容易看出效果。我在上一个项目里维护过测试文档,格式统一之后,别人接手我的用例基本不用问人。
Q7「认证测评」你了解吗?如果让你做一份测评报告,你会怎么组织?
答题思路

认证测评 = 依据某个标准/规范,对软件逐项验证并出具结论。核心是「有依据、有过程、有证据、有结论」。

报告结构:

  1. 测评概述:被测系统、版本、委托方、测评目的与依据(引用的标准号和条款)
  2. 测评环境:服务器配置、客户端环境、网络、数据量、工具
  3. 测评内容与方法:按质量特性分项,说明每项用什么方法(功能验证/压力测试/兼容性矩阵)
  4. 测评结果:逐项「符合 / 部分符合 / 不符合」,附用例执行记录和截图、日志作为证据
  5. 问题清单:编号、描述、复现步骤、严重程度、影响
  6. 结论与建议:总体是否通过,遗留问题与风险,改进建议
我理解认证测评的关键是「可追溯」:你说的每个结论,都要能追到某条标准条款、某条用例、某次执行记录。所以我会先按标准把条款拆成检查项,一项一项给结论,不符合的必须有复现步骤和截图。这块我没实操过,但写测试报告的思路是通的——我在项目里写过缺陷报告和测试小结,也是要求问题描述、环境、步骤、预期实际、附件都齐全。
加分知识点

软件质量模型 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;累计学时跨天、跨设备、断点续看是否重复计时。

第四步,测状态回退:退课、重修、成绩复议后,学分和学时要不要回退?已发的证书怎么办?

这类规则我最怕的不是算错,是「算得对但不符合规则」。所以我会先把规则问成一句句能判真假的话,比如「学时达到 30 且作业全部提交且期末 60 分以上才给学分」,然后列成判定表,把每个条件的真假组合都跑一遍;边界我会特别关注 29 分 59 秒和 30 分整这种一秒之差的情况,还有多设备同时看课会不会重复计时。另外我会专门测「倒着走」——退课之后已经累计的学时会不会清掉,这是最容易出 bug 的地方。
Q10教育系统里的「导入导出」为什么容易出问题?怎么测?

为什么难:Excel 模板字段多、格式杂(日期、数字、身份证前导零、合并单元格),用户不会按模板填;数据量大时超时;部分成功部分失败的提示不清;重复导入造成脏数据。

测试点:

  • 模板正确时正常导入;字段缺失/多列/顺序打乱
  • 类型错误(日期写成文本、成绩写成中文)、超长、空值、特殊字符
  • 身份证号、学号前导零是否被 Excel 吃掉
  • 重复数据(同学号二次导入)是覆盖还是报错
  • 大数据量(1 万条)耗时与超时提示
  • 部分失败时:成功的入库了没有?失败原因能不能定位到第几行?能否下载错误清单?
  • 导出:字段是否脱敏、导出条数上限、文件名与编码(中文乱码)、大数据量是否异步
导入导出看着简单,其实是 bug 高发区。我会重点测「脏数据」和「部分失败」:因为一旦部分成功,数据就处于中间状态,后面很麻烦。所以我会确认失败时有没有事务回滚,或者至少给出明确的失败行号和原因。

3测试流程与方法论JD 第 5 条

这一章是「必须成体系说出来」的部分。不要只报方法名,每个方法要能配一个自己项目的例子。

Q11说说你们公司/项目的完整测试流程。开场必问
七步法(背下来)
  1. 需求评审:读需求文档/原型,提问澄清,输出「需求疑点清单」,同时开始想测试点。
  2. 测试计划/方案:范围、策略、资源、环境、排期、风险。
  3. 用例设计:按模块拆测试点 → 用等价类/边界值/场景法写用例 → 用例评审(开发、产品一起过)。
  4. 提测与冒烟:开发提测先跑冒烟,主流程不通直接打回。
  5. 执行测试:按优先级执行,发现问题提缺陷单,跟踪修复。
  6. 回归测试:验证已修复缺陷 + 跑核心用例集防止引入新问题。
  7. 测试报告与上线:统计用例执行率、通过率、缺陷分布,给出是否可上线的结论;上线后跟进线上问题。
我们当时的流程是:需求评审之后我先拆测试点、写用例,用例会跟产品和开发过一遍;开发提测我先跑冒烟,主流程不通就打回;跑通了再按模块执行,缺陷提到禅道,分严重程度,开发修完我去回归;版本结束出一份测试小结,说明执行了多少用例、通过率多少、还有哪些遗留问题。上线之后如果有用户反馈,我也会跟着看,判断是环境问题还是真的 bug。
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.10 和 100 可保存,两侧越界被拦
我会先用等价类把输入分成「合法区间」和「各种非法类型」,每个区间挑代表值;然后在区间的两端补边界值,因为经验上边界最容易出问题。比如成绩字段,区间是 0 到 100,除了中间的 45 分,我一定会测 0、100、-0.1、100.1,还会测 59.5 这种「刚好卡在及格线」的值,因为及格判定经常在这里算错。
Q14场景法 / 流程分析法怎么用?

先把业务流程画成流程图(节点 + 判断),再从中提取两条线:

  • 基本流:一条路走到底的正常路径(借书成功)
  • 备选流:每个判断点的异常分支(库存不足、超期未还、被冻结、余额不够罚款)

然后把基本流和各个备选流组合,得到完整场景集。

以图书借阅为例

基本流:登录 → 检索图书 → 点击借阅 → 校验库存/借阅上限/账户状态 → 扣库存 → 生成借阅记录 → 提示成功。
备选流:库存为 0、已达借阅上限(比如 5 本)、有超期未还、账户被冻结、并发同时借同一本、提交中断网。

我做图书借阅项目的时候就是用场景法:先把「借书」这条流程画出来,标出中间的几个判断点,然后每个判断点走一遍异常分支。这么拆的好处是能看到「组合场景」,比如用户已经借满 5 本、又刚好有超期记录,系统提示的到底是哪一个,这种交叉场景最容易漏。
Q15判定表 / 因果图什么时候用?

当多个输入条件组合起来决定输出时用,典型就是「规则类」需求:报名资格、优惠、学分认定、毕业审核。

判定表四部分:条件桩(有哪些条件)、条件项(每个条件取真/假)、动作桩(有哪些结果)、动作项(每个组合对应的结果)。

例:报名资格

条件:学历符合? / 年龄满 18? / 已缴费? / 材料齐全? → 动作:审核通过 / 驳回并提示原因 / 待补充材料。
4 个条件 2⁴=16 种组合,去掉不可能的(未缴费但材料齐全仍可待缴),剩下的逐一验证提示是否准确。

规则多的需求我一定会用判定表,因为它能保证不漏组合。人工想想往往只想到「都满足」和「都不满足」两头,中间的组合最容易漏,而漏掉的那种恰恰是用户真实会遇到的。
Q16什么是错误推测法?你怎么培养这种「感觉」?

基于经验直接猜哪里容易错,比如:空值、超长、特殊字符、0、负数、重复提交、并发、越权、断网、返回后退、刷新、跨时区、大小写、emoji。

我的做法比较笨:每次提完 bug 我会记一笔「这类问题下次还要测」,时间长了就形成一个自己的清单。比如上传功能,我现在一定会测空文件、超大文件、改了后缀名的假图片、文件名带中文和特殊字符;列表页一定测没数据、只有一条、翻到最后一页、翻页后筛选条件还在不在。这些不是书上教的,是踩过才知道。
Q17缺陷的生命周期是什么?一个合格的 bug 单包含什么?高频
生命周期

新建(New)→ 指派(Assigned)→ 开发确认/修复中 → 已解决(Resolved)→ 测试验证 → 关闭(Closed)。
分支:打回/重新打开(Reopen)(没修好或复现)、延期(Deferred)、不予修复(Won't fix)、重复(Duplicate)、非缺陷(Not a bug/By design)。

合格 bug 单七要素
  1. 标题:模块 + 条件 + 现象(「图书借阅-已借满 5 本时仍可继续借阅」),一眼能看懂
  2. 环境:系统/版本/浏览器或机型/账号/数据
  3. 前置条件:比如账号已借 5 本
  4. 复现步骤:编号、可重复、不夹带推测
  5. 预期结果 / 实际结果:分开写,别混在一起
  6. 严重程度 + 优先级
  7. 附件:截图/录屏/日志/接口请求响应
我写 bug 单有个习惯:标题里就带条件,比如「已借满 5 本时仍可继续借阅」,开发看标题就知道怎么复现,不用点开。步骤我会写到「点哪个按钮、填什么值」这种粒度,预期和实际分开列。能复现是底线——如果一个 bug 我只能复现一次,我会先把录屏和环境信息留好再提,不然开发大概率会打回来说「无法复现」。
Q18缺陷等级怎么划分?
等级定义教育系统里的例子
P0 致命系统崩溃、主流程阻断、数据丢失或错乱、安全漏洞交卷后答案丢失;学生能改已发布成绩;未登录能拿到他人数据
P1 严重核心功能不可用或结果错误,无绕行方案成绩汇总算错;选课扣了容量但没生成记录
P2 一般非核心功能异常,有绕行方案导出文件名乱码(可改名解决);提示文案错
P3 建议体验、UI、文案优化按钮间距、错别字、加载无 loading

注意:「严重程度」看影响面,「优先级」看修复急迫性,两者可以不一致——比如首页错别字影响所有人(优先级高)但严重程度低。

Q19开发说「这不是 bug,是设计如此」,你怎么办?情商题
四步
  1. 先确认事实:翻需求文档/原型/接口文档,看有没有明确说明。有依据就摆依据,别争论。
  2. 没依据就升级判断标准:从「用户会不会被误导/数据会不会错」的角度讲影响,而不是「我觉得不合理」。
  3. 拉产品定:产品和开发、测试三方确认,结论写进需求或缺陷单备注,留痕。
  4. 接受结论但要留记录:如果最终不改,把风险写进测试报告,注明「已知问题,产品确认为设计如此」。
我遇到过类似情况。我的做法是先去看需求里到底怎么写的,如果需求没写清楚,我不会直接说「这是 bug」,我会说「这里用户可能会误解,因为 A 情况下提示是成功的,但实际没生效,要不要跟产品确认一下」。我的目的不是证明自己对了,是让这个风险有人拍板。如果产品确认就是这么设计的,我会在测试报告里记一笔,不留在那儿变成上线后的惊喜。
Q20冒烟测试、回归测试、验收测试、α/β 测试有什么区别?
  • 冒烟:新版本提测时先跑核心主流程,快速判断「这个版本值不值得测」,不通就打回。
  • 回归:修改缺陷或加新功能后,重跑相关用例 + 核心用例集,确认没引入新问题。分全量回归和选择性回归。
  • 验收:由用户/业务方按需求确认「做的是不是他要的」,偏业务验收;也有正式验收测试(如第三方测评)。
  • α 测试:开发环境内、由内部人员模拟用户使用。β 测试:真实用户在真实环境使用,收集反馈。
我理解冒烟是「筛版本」,回归是「防倒退」,验收是「确认需求」,β 是「真实环境试水」。实习时我提测第一件事就是跑冒烟,因为如果登录都进不去,后面写再多用例都是白费时间。
Q21测试计划、测试报告分别写什么?

测试计划:测试目标与范围(含不测什么)、测试策略与方法、模块划分与人力排期、环境与数据准备、准入准出标准、风险与应对。

测试报告:版本与环境、测试范围、用例执行情况(总数/执行/通过/失败/阻塞)、缺陷统计(按模块/等级/状态分布)、遗留问题与风险评估、结论(建议上线/有条件上线/不建议上线)、附件(缺陷清单)。

关键

报告不是流水账,核心是「结论 + 支撑结论的数据 + 遗留风险」。面试官问这个,是在看你有没有「对结论负责」的意识。

Q22准入和准出标准你会怎么定?

准入(能不能开始测):需求/设计文档已评审、开发自测完成、冒烟用例 100% 通过、测试环境与数据就绪、提测说明(改动点/影响范围)齐全。

准出(能不能上线):P0/P1 缺陷清零、P2 有明确处理计划、用例执行率 100%(未执行需说明原因)、核心用例通过率 100%、回归通过、性能与兼容性达标、测试报告已出。

我理解准出标准的意义是把「能不能上线」从感觉变成可以吵清楚的数字。不然每次上线前都是「差不多了吧」,出问题再互相追责。
Q23V 模型、W 模型、敏捷测试的区别?
  • V 模型:开发一侧从需求→概设→详设→编码逐层下降,测试一侧从单元→集成→系统→验收逐层上升,需求与验收对应、概设与系统测试对应、详设与集成测试对应。强调测试阶段与开发阶段一一对应。
  • W 模型(双 V):在需求、设计阶段就同步开展测试准备(需求分析→测试方案,设计→用例),把测试提前,本质是测试左移。
  • 敏捷测试:迭代内持续测,强调自动化、持续集成、全员质量、快速反馈,用例轻文档、重沟通。
我实际做的更接近 W 模型:需求评审的时候我就开始拆测试点了,不等开发写完代码才想用例。好处是用例能反过来帮产品发现需求漏洞——我提过好几个需求疑点,都是写用例时发现的。
Q24什么是测试左移和测试右移?

左移:把质量活动提前到需求和设计阶段——参与需求评审、做需求可测性分析、写用例前置、代码评审、单元测试、静态检查。目的是「缺陷发现得越早,修复成本越低」。

右移:把质量活动延伸到上线之后——灰度发布、线上监控告警、日志分析、用户反馈跟踪、线上问题复盘。目的是「线上才是真实的测试环境」。

左移我有一点体感:写用例的时候发现需求没定义「重复提交怎么处理」,这类问题在评审阶段提出来,比上线后用户投诉再改划算得多。右移我参与得少,主要是跟线上问题,判断是环境、数据还是代码问题。
Q25怎么保证测试覆盖率?

三个层次:

  • 需求覆盖:做需求-用例追踪矩阵(RTM),每条需求至少对应一条用例,评审时逐条核对,防止漏测功能。
  • 场景覆盖:主流程 + 分支流程 + 异常流程,用流程图检查每个判断点是否都有对应用例。
  • 代码覆盖(更高阶):语句覆盖、分支覆盖、条件覆盖,通常配合单元测试和工具统计,实习层面了解概念即可。
我现在的做法是拿需求文档一条条对用例,凡是需求里提到的规则、状态、提示语,都要能找到对应的用例;找不到的就是漏了。另外我会把「异常场景」单独列一栏,因为正常流程一般不会漏,漏的都是异常。

4简历深挖:每一个字都可能被问决定成败

面试官手里只有你这一张纸。你写上去的每个数字都会被追一句「具体说说」,所以每个数字后面都要有故事。

先自查:你简历里最容易被追问的 6 个点 ① 12+ 个 bug 分别是什么?② 未登录访问消息接口——怎么发现的、怎么定级?③ 请求超时——你怎么确定是接口问题不是网络问题?④ 兼容性测试——测了几个机型、什么机型?⑤ 「配合团队完成测试流程相关工作」——具体做了啥?⑥ 8 个高危缺陷「大部分 2 天内修复」——剩下的小部分呢?
Q26介绍一下你的校园生活 APP 测试项目。必问第一题
用 STAR 说,控制在 90 秒

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;同时把其他需要登录的接口(个人中心、校园服务)也扫了一遍,确认没有同类问题。

这个 bug 让我印象最深,因为它不是点页面点出来的,是「先想清楚这个接口在什么状态下不该返回数据」才测出来的。后来我养成一个习惯:凡是带用户身份的接口,我都会试三种情况——不带凭证、带过期凭证、带别人的凭证。
延伸知识(可能被追问)

这类问题属于越权访问:横向越权(同级别用户互相访问数据,改 userId)、纵向越权(低权限访问高权限接口,改 role)。防御靠服务端鉴权 + 数据归属校验,不能只靠前端隐藏入口。

Q28图书借阅项目里「借阅接口请求超时」,你怎么定位是接口问题?技术含量最高的一题
排查链条(这个思路比结论重要)
  1. 先确认现象可复现:固定条件(同一本书、同一账号、同样操作)重复操作,看是否稳定超时,排除偶发。
  2. 用 Fiddler 抓包看请求本身:请求参数对不对、有没有重复请求、请求发出到收到响应各花了多久(Fiddler 的 Timelines 能看出是卡在等待响应还是传输)。
  3. 用 Postman 单独打接口:绕过页面直接请求同一接口,如果还是超时,说明不是前端问题;再换简单参数(比如借一本库存充足的书)对比,缩小到具体条件。
  4. 看服务端线索:请后端看日志和慢查询——最后定位到借阅时联表查询库存和借阅记录,数据量上来后 SQL 慢。
  5. 修复后复测:同样条件连续操作,记录响应时间;再补大数据量场景(比如某本书借阅记录很多)验证。
我的排查顺序是「先排除偶发,再排除前端,再定位到服务端」。抓包能告我请求发出去没有、参数对不对、等了多久;Postman 能告我绕开前端还超不超时;这两步做完,基本就能确定问题不在客户端。至于具体是哪条 SQL 慢,是后端看日志定的,我负责把可复现的条件给准——测试能给到准确的复现条件,定位就快一半。
Q29你说用 MySQL 核对数据一致性,具体怎么核?写个 SQL 我看看。会当场让你写
场景:借阅成功后,页面显示「当前借阅 3 本」,需要确认数据库对不对
-- 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;
我的核对思路是「页面 → 接口 → 数据库」三处对齐:页面显示 3 本,就先查接口返回是不是 3,再查库里的记录数是不是 3。三方一致才叫真的对。如果不一致,就能判断是前端渲染问题、接口统计问题还是数据没落库。我一般会先看有没有多出来的脏数据,比如同一次借阅生成了两条记录,这种在实际项目里挺常见的。
诚实提示

如果被问「你会写多复杂的 SQL」——如实说:单表、多表关联、分组统计、子查询都能写,窗口函数和复杂优化还在学。

Q3012 个 bug 都是什么类型的?印象最深的是哪个?
按类型分(提前想好,别临场编)

建议这样归类回答:功能类(约 6 个:登录验证码、消息未读数、头像上传、页面跳转、表单校验、列表分页)、接口/安全类(1-2 个:未登录越权)、兼容性类(2-3 个:机型布局错乱、闪退)、体验类(2-3 个:文案、loading、空状态)。

印象最深的:用 Q27 的越权问题回答,因为它体现「靠设计场景而不是靠乱点」。

这 12 个里面,功能类大概占一半,主要是表单校验和列表展示的问题;兼容性有三四个,是安卓机型上的布局和闪退;还有一个是我印象最深的,就是未登录能拿到消息数据的越权问题。我提 bug 的时候会顺手标一下类型和严重程度,这样版本结束的时候能看出来哪块问题集中,下一轮就重点测那块。
Q31兼容性测试具体怎么做的?测了哪些机型?

选机原则:覆盖主流品牌 × 不同安卓版本 × 不同屏幕分辨率 × 高中低端配置,不追求数量追求覆盖度。

典型组合:华为/荣耀(鸿蒙或高版本安卓)、小米/红米(中低端走量机型)、OPPO/vivo、三星(海外)、再加一台低配老机型测性能。

测什么:安装卸载升级、启动速度、页面布局(刘海屏/长屏/字体放大)、图片视频显示、权限弹窗、后台切换、弱网、闪退与崩溃日志。

我没有真机农场,所以是挑典型机型组合来测:一个高版本安卓、一个中低端走量机、一个老系统机型。除了看页面有没有错位,我还会重点看系统权限和字体大小这两块,因为很多布局错乱是用户把字体调大之后才出现的,这个问题在测试机上默认设置是测不出来的。
Q32「参与测试文档维护」具体做了什么?
这题直接对应 JD 的「标准建设」,要答实

可说三件事:① 用例库按模块重新归类,统一了用例标题和步骤的写法;② 维护缺陷列表/回归清单,每次版本更新同步;③ 整理测试小结,记录本轮范围、缺陷数、遗留问题。

我做的主要是两件小事:一是把用例按模块重新归类,统一了标题格式,因为之前同一类问题有好几种写法,找起来很费劲;二是维护回归清单,把每次提测必须跑的核心用例单独列出来,版本多的时候不至于漏。这些事本身不大,但别人接手我的用例几乎不用问人,我觉得这是文档最重要的价值。
Q33你只做过功能测试,自动化、性能都没做过,我们为什么招你?压力题
三步:承认 → 给替代价值 → 给学习路径

① 承认,不含糊:「对,自动化和性能我目前只是了解概念,没有实战。」

② 给替代价值:我这个岗位现阶段要做的是业务测试和测评,核心竞争力是懂业务、拆得细、文档规范、缺陷说得清,这三样我是有实战的;而且我有真实的缺陷闭环经验,不是只会做课程作业。

③ 给路径:我了解自动化是 Python + requests/pytest 做接口自动化,性能是 JMeter 做脚本、加压、看 TPS 和响应时间分布;如果实习有这块,我愿意在下班后补,先从接口自动化开始,因为接口自动化投入产出比最高。

我不觉得这是个回避的问题。实习岗招人,招的是「能干活 + 学得快」,不是「什么都会」。我能干的是把业务测细、把用例和缺陷写规范;我不会的是自动化和性能,但我知道从哪学——接口自动化用 Python 加 requests 和 pytest,性能用 JMeter,先跑通脚本再谈分析。如果团队需要,我可以先用业余时间把这部分补到能上手。
Q34实习那三个月,你最大的收获和最大的失误分别是什么?
收获是明白了「测试不是找茬,是提前把可能性想全」。刚开始我拿到需求就想赶紧点,后来发现真正有价值的 bug 都是靠推演场景推出来的,比如未登录该不该返回数据。

失误是早期提过一个 bug,只写了「消息列表显示不对」,没写环境和复现步骤,开发打回来说复现不了,来回折腾了两次。从那以后我提 bug 一定写清环境、账号、步骤,能截图就截图,能录屏就录屏——一个说不清楚的 bug,等于没提。

这个「失误」答得好,因为它证明你会复盘,而不是「我最大的缺点是太追求完美」。

5数据库与 SQLJD 第 6 条 · 大概率笔试

测试岗考数据库,重点不是 DBA 那种深度,而是「会不会查、会不会用 SQL 验证数据」。下面这几类必须能当场写。

必须能写的 5 类 SQL ① 条件查询 + 排序 + 分页 ② 多表关联(inner / left join)③ 分组统计(group by + having)④ 子查询(in / not in / exists)⑤ 去重与计数(distinct、count)。能写这五类,测试岗的数据库题基本就够用了。
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 过滤组)。

我一般用这种方式核对页面上的统计数字。如果页面显示及格率 78%,我就跑一遍 SQL 看是不是 78%,不一致就说明要么统计逻辑有问题,要么前端取错了字段。
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 连接了没有索引的列
  • 查询结果占全表比例很大时,优化器可能直接选全表扫描
我了解得不算深,但测试里有个用法:如果某个列表页数据一多就卡,我会请开发用 explain 看一下有没有走索引,看 type 是不是 ALL(全表扫描)。这条我实际用过一次,是慢查询排查的时候跟着后端学的。
Q40事务的 ACID 和隔离级别是什么?高频

ACID:原子性(要么全成功要么全回滚)、一致性(约束不被破坏)、隔离性(并发互不干扰)、持久性(提交后不丢)。

四种隔离级别:

级别能防住防不住
读未提交 Read Uncommitted—脏读、不可重复读、幻读
读已提交 Read Committed脏读不可重复读、幻读
可重复读 Repeatable Read(MySQL 默认)脏读、不可重复读幻读(InnoDB 用间隙锁大幅缓解)
串行化 Serializable全部—(性能最差)
测试场景里最直接的是选课抢容量:两个学生同时抢最后一个名额,如果事务和锁没处理好,就会出现「都提示成功但容量变成 -1」。这类问题人工点很难复现,一般靠并发脚本或者看库存扣减有没有做原子操作。
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 会精度丢失)、重复录入被唯一索引拦住、学号唯一、删除学生时成绩怎么处理(级联还是禁删)。

如果让我审这张表,我第一个看的是成绩字段的类型,用 float 存分数会出现 59.499999 这种问题,及格判定直接错;第二个看有没有唯一约束,防止同一次考试录两条成绩,这种数据错了后面统计全错。
Q43页面显示和数据库不一致,你怎么排查?
四层定位
  1. 库:直接查库,数据本身对不对?不对 → 写入逻辑/事务问题。
  2. 接口:用 Postman/Fiddler 看接口返回,是不是返回了正确数据?返回就对但页面不对 → 前端渲染/缓存/字段映射问题。
  3. 前端:清缓存、换浏览器、强刷,排除本地缓存和旧版本。
  4. 时机:是不是异步同步延迟(比如统计表定时任务还没跑)?隔一段时间再看。
我一般是从下往上查:先看库里的数据,库是对的再往上看接口。因为如果库里就是错的,那前端怎么改都没用,根子在写数据那一层。顺序反了容易白忙,比如你先去调前端,结果发现数据压根没落库。

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接口测试怎么测?会测哪些点?必问
六类测试点
  1. 正常场景:必填参数正确,返回 200 且业务 code 正确、字段值正确、数据库落库正确。
  2. 参数校验:必填缺失、类型错误、超长、特殊字符、边界值、多余字段。
  3. 业务异常:重复提交(幂等)、状态不合法(已交卷再提交)、越权(他人数据)。
  4. 鉴权:无 token、过期 token、伪造 token、低权限访问高权限接口。
  5. 异常与容错:超时、下游服务不可用、返回值格式异常时的提示。
  6. 性能与安全:响应时间、并发、SQL 注入、敏感字段是否明文返回。
我测接口的顺序是:先正例跑通,确认链路和落库没问题;再把参数挨个破坏一遍,看校验严不严;然后测业务异常,比如重复提交和越权,这两块是 bug 最多的;最后看返回里有没有不该返回的敏感字段。
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 里(有泄露风险)。

我测登录接口时一定会试「退出登录之后,旧 token 还能不能用」。如果还能用,就是一个安全问题,只是很多人不会去测。
Q50GET 和 POST 的区别?

GET 参数在 URL、有长度限制、可被缓存和收藏、幂等;POST 参数在 body、无长度限制(受服务端配置影响)、不缓存、非幂等。语义上 GET 用于查询,POST 用于提交/修改。

实际测试时有个点:查询类接口用 GET,参数里有中文和特殊字符要注意编码,我遇到过分页参数带 & 导致参数被截断的问题。
Q51Fiddler 你用来做什么?
  • 抓包看请求:请求头、参数、响应体、耗时,确认前端到底发了什么
  • 改包:改参数/改响应,模拟异常返回、绕过前端校验测后端(Composer / AutoResponder)
  • 弱网模拟:限速,测加载慢、超时提示
  • 定位问题归属:接口返回对但页面不对 → 前端;接口本身错 → 后端
我用得最多的是两件事:一是判断问题归谁,抓包看接口返回就知道是前端还是后端;二是模拟异常,比如把响应改成空数据或者超时,看页面有没有做容错——很多页面在这种情况下会直接白屏。
Q52接口返回 200 但数据不对,怎么排查?

顺序:① 看请求参数是否传对(抓包)→ ② 看返回结构里业务 code 和 message(可能是业务失败但 HTTP 200)→ ③ 查库确认数据源 → ④ 换账号/换数据对比,判断是数据问题还是逻辑问题 → ⑤ 看是否有缓存(同一请求两次结果不同)→ ⑥ 给开发提供请求 ID 和日志。

我的习惯是先把「谁的错」定位出来再找人:参数是我传错了,还是接口算错了,还是数据本身就是这样。定位清楚再去找开发,沟通效率完全不一样——开发最烦的是「你再看一下,好像不对」。

7测试设计实战题(大概率现场出题)考思维不考记忆

这类题没有标准答案,考的是你的条理:能不能分层、能不能从正常到异常、能不能想到别人想不到的。答题时先说框架,再展开。

Q53设计「登录功能」的测试用例。经典必考
按六层说,条理立刻清楚
  1. 功能正常:账号密码正确 → 登录成功跳转、显示用户信息、生成会话
  2. 账号密码异常:账号不存在、密码错误、密码为空、账号为空、大小写、前后空格是否 trim
  3. 输入校验:长度边界(最短/最长/超长)、特殊字符、emoji、SQL 注入串 ' or 1=1 --、XSS 串 <script>
  4. 验证码:正确/错误/过期/复用/不填;图形验证码刷新;短信验证码频率限制(60 秒)、错误次数上限
  5. 安全与状态:连续错误 5 次是否锁定、密码是否明文传输(https)、是否记住登录、退出后 token 失效、多点登录、越权(改 userId 看别人信息)
  6. 兼容与体验:不同浏览器/机型、弱网、断网提示、键盘弹起遮挡、loading 与重复点击
我会先说框架再展开:功能正常、输入异常、验证码、安全状态、兼容体验五块。教育系统里我会额外加一条——同一个账号被多个设备同时登录时的策略,因为学生换设备看课很常见,如果处理不当会出现学习时长记到两个终端上。
Q54设计「在线考试提交试卷」的测试用例。教育场景题
核心是「不能丢答案、不能重提交、不能超时算错」
  • 正常:答完手动交卷 → 提示确认 → 提交成功 → 显示成绩或待判分 → 数据库答案与试卷状态正确
  • 自动交卷:倒计时到 0 自动提交,未答题按空处理;剩余 1 秒时点击提交(边界)
  • 中断:提交过程中断网/关浏览器/断电 → 重进是否能续考、已答内容是否保留、剩余时间是否继续走
  • 重复提交:连点两次提交、提交成功后退回再提交 → 应幂等,不能生成两份答卷
  • 并发:考试结束瞬间大量学生同时交卷 → 不丢卷、响应时间可接受
  • 规则:迟到 15 分钟禁止进入、提前交卷限制、切屏次数超限强制交卷、主观题未答能否提交
  • 判分:客观题自动判分正确、多选题漏选/错选规则、主观题待人工、成绩精度
  • 权限:交卷后不能再改答案、不能看答案、教师端能否看到答卷
在线考试我关注三件事:答案不能丢(断网断电后能不能续)、卷子不能重复(重复提交必须幂等)、时间不能算错(倒计时以服务端时间为准,不能信客户端)。这三点任意一个出问题,都是要重考的事故。
Q55设计「选课 / 报名」功能的测试用例。
  • 正常:有名额、未选过、时间在开放区间内 → 选课成功、容量 -1、生成记录
  • 规则限制:容量为 0、已达选课上限(如 6 门)、时间未开始/已结束、先修课未通过、专业/年级不符、时间冲突(同一时段两门课)
  • 重复:已选过再选、退课后重选、并发点击
  • 并发:最后一个名额两人同时抢 → 只能一人成功,容量不能为负(超卖)
  • 状态回退:退课是否释放名额、退课后记录是删除还是置为已退、已选人数统计是否同步
  • 数据:容量字段与已选人数是否一致、选课记录唯一性
这类功能我最关注超卖和回退。超卖要两个人同时抢才能暴露,人工点很难复现,一般得用并发工具;回退是退课后名额有没有还给别人、统计数字有没有跟着变,这个用页面点一下就能发现。
Q56设计「文件上传」(作业图片/课件)的测试用例。
  • 正常:jpg/png/pdf 正常上传,大小在限制内,回显正确,可预览可下载
  • 格式:不支持的类型(exe、txt 改名成 jpg 的假图片)、大小写后缀、无后缀
  • 大小边界:0 字节、刚好限值、超 1KB、超大文件(如 100MB)
  • 文件名:中文、空格、特殊字符 #&%、超长、同名文件重复上传(覆盖还是并存)
  • 异常:上传中断网、取消上传、上传中关闭页面、多文件同时上传、重复点击上传
  • 安全:能否上传脚本文件、上传后能否直接执行、路径穿越(../../)、存储是否可公开访问
  • 结果:文件存储路径与数据库记录是否一致、缩略图是否生成、并发上传是否串文件
Q57设计「权限」的测试,你怎么保证不漏?
做权限矩阵:行是角色,列是功能/数据范围
角色 \ 操作看自己班成绩看其他班成绩修改成绩导出名单删除课程
学生只能看自己❌❌❌❌
教师✅❌✅(未发布前)✅❌
教务✅✅✅✅✅

三层验证:① 界面层——菜单/按钮有没有隐藏;② 接口层——直接调接口有没有被拦(这才是关键,前端隐藏不等于安全);③ 数据层——改 ID / 改班级参数能不能看到别人的数据。

权限我只信接口层的结果。前端把按钮藏起来,我用 Postman 直接打那个接口,如果能成功,那就是漏洞。「界面看不到」和「没有权限」是两件完全不同的事,这是我做那个未登录越权问题时最大的体会。
Q58设计「消息推送」的测试用例。
  • 触发:什么事件推(交作业、成绩发布、考试提醒)、推给谁(全班/指定人)、条件是否准确
  • 到达:在线 App 内推送、离线推送、已读未读状态、红点数量
  • 内容:标题长度、正文超长截断、变量替换(姓名、课程名)是否正确、特殊字符/emoji
  • 频次:重复推送、免打扰时段、批量推送(一次推 1 万人)耗时
  • 跳转:点通知是否进到对应详情页、登录态失效时跳哪
  • 异常:推送服务不可用时业务是否受影响(不能因为推送失败导致交作业失败)
Q59一个列表页,你会测哪些点?

数据(无数据 / 1 条 / 满页 / 多页)、分页(首末页、跳页、每页条数切换、越界页码)、排序(各字段升降序、空值排哪、多字段)、筛选(单条件/组合/清空/筛选后翻页条件是否保留)、搜索(模糊/精确、空结果、特殊字符、超长)、刷新后状态、导出与列表数据是否一致、权限(只看到自己的数据)、性能(万级数据加载)。

列表页我有个必测项:翻到第 3 页再改筛选条件,页码有没有重置回第 1 页。这个不重置的话会出现「第 3 页空白但明明有数据」,用户会以为数据丢了。
Q60只有一天时间,只能测一个模块,你测哪个、怎么测?

先选主流程上、用的人最多、出错代价最大的模块——在教育系统里通常是登录 + 学习/交卷,因为这两个断了整个产品就废了。

怎么测:① 半小时跑冒烟确认主链路通;② 用 P0 用例覆盖核心正向流程;③ 重点补高危场景(权限、重复提交、数据落库);④ 记录未覆盖范围,写在报告里说明风险。

时间不够我不会平均分配,我会先保主流程能走通,再挑「出错了最麻烦」的几个点重点测,剩下的明确写进报告说没覆盖,让人知道风险在哪。藏着不说比没测更危险。

8逻辑思维与创新题JD 第 2、3 条

JD 里写「具备创新能力,提出创新性问题解决思路」「良好的逻辑思维能力,条理清晰」。这两条不会直接问「你创新吗」,而是通过出题看你的思考过程。

回答这类题的通用套路 先给结构(分几类/几步)→ 再给判断依据(为什么这么排)→ 最后给结论(所以我选 X)。面试官要听的不是答案,是你有没有章法。答案错但思路清楚,比答案对但说不清更得分。
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三个需求,明天只能测完一个,你怎么排优先级?
给一套可复用的判断标准(这就是「条理清晰」)
  1. 影响面:涉及多少用户、是不是主流程
  2. 出错代价:错了是体验问题还是要重考/退费/投诉
  3. 变更风险:改动大、动了公共模块、动了老逻辑的优先
  4. 依赖关系:被别人依赖的先测(不然下游全堵住)
  5. 可回退性:出问题能不能快速回滚,不能回滚的优先

然后给结论并说明遗留风险:先测 A,B 做冒烟,C 明确不测并写进报告。

我的排序不是按「谁催得急」,是按影响面和出错代价。比如「成绩计算规则调整」和「个人中心换头像样式」同时来,哪怕换头像的需求方催得更急,我也先测成绩,因为成绩算错是学生要申诉的事,头像错了没人受伤。定完我会把排序理由和没测的范围说清楚,让拍板的人知道他在承担什么风险,而不是我替他默默决定。
Q63如果让你从 0 开始建一个项目的测试用例库,你怎么做?对应 JD「标准建设」
五步 + 一个优先级
  1. 先定结构:按「模块 → 子功能 → 场景」三级组织,用例编号规则统一(如 LOGIN-001),保证能检索、能追溯需求。
  2. 再定模板:统一字段(前置条件/步骤/预期/优先级/关联需求/是否自动化),固定写法避免「同一件事三种描述」。
  3. 抽公共用例:登录、权限、分页、导入导出、上传、消息这些每个模块都要测的,抽成公共库,避免重复写。
  4. 分级:P0 冒烟集(几十条,每次提测必跑)、P1 核心集(回归用)、P2 全量(版本大回归用)。
  5. 建立维护机制:需求变更同步更新用例、每次线上问题反补一条用例、定期清理失效用例。
如果只能先做一件事,我会先做冒烟用例集。因为它投入最小、见效最快——几十条用例就能挡住「提测版本根本跑不起来」这种最浪费时间的情况。等这个跑顺了,再往外扩到模块用例和回归集。用例库最怕的不是不全,是没人维护、写了不跑,那还不如没有。
Q64举一个你「想办法解决了一个麻烦事」的例子。创新题的正确答法
要点:小切口 + 有对比 + 有结果。不要讲宏大叙事

可讲的三个真实素材(挑一个讲):

  1. 用例重排:原来用例按时间顺序堆着,找一条要翻很久 → 我按模块+场景重新编号归类,加了「核心回归」标记 → 后来回归时直接筛标记跑,省了找用例的时间。
  2. bug 描述模板:早期 bug 被打回两次 → 我给自己定了个固定格式(环境/前置/步骤/预期/实际/附件)→ 后面基本没有被退回说复现不了。
  3. 巡检表:自管会查寝原来凭印象记 → 我做了个固定检查项的表,一条条打勾 → 汇总上报的时候不会漏,也有据可查。
说个小事。我刚做测试的时候提的 bug 被打回过两次,说复现不了。我后来给自己定了个死规矩:标题必须带触发条件,正文固定六项——环境、前置条件、步骤、预期、实际、附件,能录屏就录屏。定完这个规矩之后,基本没有被退回来说复现不了,开发看标题就知道大概怎么回事。

我不觉得这算什么创新,但我的思路是:同一个麻烦出现两次,就不该再用原来的方法做第三次。做测试尤其这样,因为重复的事情太多了,能固化成模板的就不该靠记性。
Q65线上出了个事故:学生成绩显示错误。你怎么复盘?

五步(5Why 思路):

  1. 止损:先修数据、先止血(回滚/修正数据/公告),别急着追责。
  2. 还原:时间线、影响范围(多少学生、哪些课程)、触发条件。
  3. 追因(连问为什么):为什么显示错 → 统计口径改了 → 为什么没测出来 → 用例里没有这个口径的校验 → 为什么没有 → 需求变更没同步到测试 → 为什么没同步 → 变更流程里没有「影响测试范围」这一环。
  4. 改进:流程上补(变更必须通知测试)、用例上补(把这条加进回归集)、监控上补(成绩分布异常告警)。
  5. 沉淀:写成案例,团队过一遍。
复盘的目的是不再犯,不是找个人背锅。我会把重点放在「为什么这个环节没兜住」,因为一个事故通常是好几层防线同时失效——需求变更没通知、用例没覆盖、上线前没抽查数据,任何一层兜住了都不会出事。所以改进也要改在流程上,光说「下次注意」是没用的。
Q66需求写得很模糊,只说了「做一个学习进度功能」,你怎么办?
把模糊需求变成可测问题清单(这题最能体现专业度)

我会列出必须澄清的问题,去找产品确认:

  • 进度怎么算:按视频观看时长?按章节完成数?按课件页数?
  • 拖动进度条算不算?倍速播算不算?后台挂着算不算?
  • 同一节课看两遍算 100% 还是 200%?
  • 换设备/换浏览器,进度是否同步?
  • 进度 100% 的判定是等于还是大于等于?差 1 秒怎么办?
  • 课程更新加了新章节,已 100% 的学员进度怎么处理?
需求模糊的时候,我不会自己猜着测,也不会直接说「需求不清楚没法测」。我的做法是先按自己的理解列一版问题清单,去找产品确认——这些问题本身就是在帮产品把需求补全。上面那几个问题我列出来之后,产品一般会说「这个我们没想过」,然后规则就定下来了。等规则定了,用例自然就有了。

9HR 面与反问最后 15 分钟决定印象

Q67为什么想做测试,不做开发?必问

不要说「我开发学得不好」,也不要说「测试轻松」。要给一个「能力匹配 + 有正向体验」的理由。

我实习的时候最大的感受是,我在「找问题」这件事上比在「写功能」上更有感觉。写代码我能写,但我会更享受那种「想出别人没想到的场景」的过程——比如未登录能不能拿到消息数据,这个不是点出来的,是想出来的。另外我性格上比较较真,一件事没对上我会一直查到库里确认,这种性格做测试比做开发更顺。

我也不觉得测试比开发低级,反而测试要懂业务、懂技术、还得会沟通,是个要求挺综合的岗位。
Q68为什么选择弘成?为什么选教育行业?必问,答不好前面白搭
三层:行业 → 公司 → 岗位,每层给一个具体理由

① 行业:教育系统的业务复杂度高(多角色、强规则、跟政策挂钩),对测试的严谨度要求比一般 C 端产品高,我想在这种环境里练基本功,而不是只做界面点点点。

② 公司:弘成做的是学历继续教育和院校信息化,是 To B + To C 的模式,客户是院校,交付质量直接关系到学校的教学秩序;而且 JD 里提到标准建设和认证测评,说明这个团队是在建体系,不是纯人力外包式执行,这对新人成长更有利。

③ 岗位:JD 要求的三件事——研究业务、参与标准、做测评——正好是我愿意沉下去做的方向,我更喜欢把一件事拆明白、写成文档,而不是每天点页面。

我选教育行业,一个比较实际的原因是这类系统的错误代价高。成绩、学时、学籍这些数据错一次,学生可能要跑好几趟教务处,所以我做的事情是有分量的,不是「按钮颜色不对」那种。我选弘成是因为你们做院校这条线做了很久,业务场景复杂,而且 JD 里提到测试标准和认证测评,说明团队在搭体系——我实习的时候最缺的就是「有人告诉我规范应该长什么样」,这种环境对我帮助最大。
Q69未来三年的规划?
第一年,我想先把业务吃透,能独立负责一到两个模块的测试,把用例和缺陷写规范,做到「交给我不用盯」。第二年,我希望能在测试设计上更有主导权,能参与需求评审时提前把风险点提出来,同时把接口自动化补上,让回归能跑起来。第三年,如果有机会,我想往「质量保障 + 标准/测评」这个方向深入,因为我发现自己更喜欢定规则、写规范这类事。

我不太想给自己定「三年做到什么职位」,实习阶段我更在意能不能在真实项目里把一件事做扎实。
Q70你的优点和缺点?缺点必须真实但不致命

优点(给证据,别只给形容词):细 + 有条理。细体现在按标准逐项核对(查寝、查库核对数据);有条理体现在拆业务会先分层再展开。

缺点(真实、可改进、不影响岗位核心):① 技术深度不够(自动化、性能没实战);② 有时候太纠结细节,会在一个不影响用户的问题上花太久,现在会先判断严重程度再决定要不要深挖。

缺点我说两个实在的。一是我技术上还不够深,自动化只在学的阶段,性能测试没实战过,这块我心里是清楚的;二是我有时候会在细节上花太多时间,比如一个提示文案不对,我会反复确认是不是所有页面都一致,导致主流程的进度被拖。后来我改了个办法:先按严重程度记下来,等功能测完再统一处理体验类问题,效率好很多。
Q71你能实习多久?每周几天?实习岗第一硬指标

这题决定成败,提前算清楚自己的课表,给出明确答案,不要含糊说「看情况」。

我现在是大四,课程压力不大,每周可以到岗 5 天,能连续实习 6 个月以上(按你的实际情况改),如果项目需要,考试周我也能协调,不会突然消失。我希望能做久一点,因为测试这行熟悉业务就要一两个月,做短了对团队和对我不划算。
注意

如果实际只能每周 3 天,就诚实说 3 天并说明稳定性;虚报后被拆穿更难堪,而且实习岗最怕的是「来了两周就走」。

Q72你是党员吗?敏感但会问

是党员:直接说入党时间 + 一句「组织生活让我习惯了按规矩办事、事情有记录」,别展开讲政治。

不是党员(大概率情况):不解释、不辩护,一句话带过,然后转回能力。

我目前还不是党员,这块我没有特别的经历可以讲。不过我在学校做自管会和志愿者的时候,做的都是那种「按标准逐项核查、记录、汇总」的事,习惯上比较规矩,该留的记录都会留。
别踩

不要说「我准备入党」「我觉得党员不重要」这类话。淡处理,转到「做事有规矩、有记录」,这是测试岗真正在意的。

Q73能接受加班吗?测试经常要陪着上线到很晚。
可以接受。我知道测试有个特点,发版窗口经常在晚上或者周末,需要有人盯着回归。我实习的时候也跟着版本节奏走过,不觉得这是什么问题。

不过我也想说明一下我的理解:加班如果是发版节点这种客观需要,我完全配合;但如果是白天需求没理清、反复返工导致的加班,我希望能在流程上想办法减少,比如需求评审的时候把规则问清楚。我不太喜欢用加班来补流程的洞。

这个答法比单纯说「能接受」有分寸,显得你有判断力,不是只会说好。

Q74期望薪资是多少?(实习)

实习岗不要报高价,也不要报「都可以」。给一个区间 + 一句「按公司标准」。

实习这块我没有特别高的预期,我了解北京测试实习大概是每天 150 到 200 这个区间,具体按公司的标准来就可以。我更看重的是能不能真的参与到项目里、有人带,而不是打杂。

(如果在其他城市,把区间换成当地水平;不确定就说「按公司实习标准,我没有特殊要求」。)

Q75你有什么想问我们的?最后一题,答好加分
问这 3 个(按顺序挑 2 个问)
  1. 「这个实习岗进来之后,主要会负责哪一类系统的测试?是偏向院校平台,还是偏向测评认证那块?」——显示你认真读了 JD。
  2. 「团队现在测试用例和规范这块是已经有体系了,还是正在建?如果我进来,能参与到哪部分?」——对上 JD 的「标准建设」,也显得你想干活。
  3. 「如果我这个实习做得不错,团队对实习生的成长路径大概是怎样的?」——表达长期意愿,不油腻。
不要问

不要第一轮就问薪资、转正比例、加不加班、能不能远程。也不要问「公司是做什么的」——官网上有的东西别问。

我想问两个问题。第一个是这个岗位进来主要会负责哪一类系统,是院校的教学教务平台,还是认证测评这块?因为这两块的测试重点差别挺大,我想提前准备。第二个是团队的用例和规范现在是已经有体系了,还是正在建?我看 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 份、笔、纸(可能让你画流程图)
最后一句 这份 JD 找的不是「什么都会的人」,是「能把业务拆明白、把问题说清楚、愿意按规矩做事的人」。你三个项目 + 一段实习,已经能证明前两点;「按规矩做事」就用查寝巡检、用例归类、bug 模板这三件小事去证。至于教育行业经验——把它说成「我缺的、但我补得快」,比硬装懂要稳得多。