简介:这份资源是腾讯测试开发工程师笔试题的回忆版整理,面向准备互联网大厂测试开发岗位面试与笔试的求职者,尤其适合需要系统梳理Linux、开发技术、数据库、中间件与软件测试五大知识模块的初中级考生。压缩包内共1个docx文档,大小约18KB,以文字题目与参考答案的形式呈现,便于打印或导入笔记软件反复查阅。内容覆盖Linux常用命令与目录区别、HTML行块标签与JavaScript运行环境、Session与Cookie差异、数据库三范式与SQL增删改查及查询优化、Apache日志重定向问题,以及用等价类划分法设计三角形测试用例等典型考点,基本还原了笔试的题型分布与考察深度。目前已有1550人学习下载,可作为考前查漏补缺、对照自测的参考材料,帮助读者快速定位薄弱环节并针对性复习。
1. 腾讯测试开发笔试:先看清这场考试到底在筛什么人
腾讯测试开发工程师的笔试题,回忆版里最反直觉的一点是:它几乎不考“测试理论”本身,反而把大半分值压在 Linux 命令、前端基础、SQL 和中间件行为上。很多人抱着“测试就是写用例”的预期进场,结果第一页就被free -m、crontab、/proc和/etc的区别问住。这场笔试筛的不是背概念的人,而是能证明自己“摸过系统、写过脚本、查过日志”的人。拿分逻辑很直接:Linux 和数据库是硬分,前端和中间件是区分度分,软件测试设计题是压轴的综合分。适合谁?适合已经能上手敲命令、但需要把零散知识按考点重新排布一遍的备考者。下面按回忆版里真实出现的模块,把高频考点、真题答法和容易翻车的地方逐块拆开。
2. Linux 考点:五个命令题背后的系统基本功
2.1 动态看进程与内存:top、ps、free 的分工
回忆版第一题问“Linux 下动态显示当前系统进程用户的使用情况”,关键词是“动态”。ps是快照,top才是持续刷新。答题时不要只写一个命令名,面试官想听的是你知不知道两者的差别:ps aux一次性列出当前进程,适合脚本里抓取;top默认几秒刷新一次,能看 CPU、内存占用和用户维度。紧接着的free题,考的是“真实使用的内存”这个说法——free输出里buff/cache占了一部分,available才是应用真正还能拿到的量,所以答free -m之外,最好补一句“看 available 列而不是单看 free 列”,这一句就是区分背命令和真用过的人。
# 动态查看进程与资源占用,默认按 CPU 排序,交互中可按 M 切换为内存排序 top # 一次性快照,适合配合 grep 抓某个进程 ps aux | grep 进程名 # 以 MB 为单位查看内存,重点看 available 列 free -m参数说明:top的-d可以改刷新间隔,-u只看指定用户;ps aux里a是全部终端进程、u是用户格式、x是无终端进程;free -m的-m只是单位,换成-g就是 GB。失败时先看命令是否存在(精简镜像可能没装 procps),再看权限是否够看别的用户进程。
2.2 周期任务与文件查找:crontab 和 find 的答法
“查看周期执行的任务”标准答案是crontab -l,但只写这一条容易被追问:系统级周期任务还在/etc/crontab和/etc/cron.d/下,普通用户的crontab -l看不到。答题时把“当前用户”和“系统级”分开说,层次立刻不一样。文件查找题问/usr/proc下名称含test的文件,核心是find的-name通配,注意引号不能省,否则 shell 先展开通配符,find收到的就不是你想要的模式。
# 查看当前用户的周期任务 crontab -l # 查找目录下文件名包含 test 的文件(-iname 忽略大小写) find /usr/proc -name "*test*" # 只找普通文件,排除目录 find /usr/proc -type f -name "*test*"-name匹配的是文件名不是路径,要匹配路径用-path;-type f排除目录是常见加分点。这类题面试官最想听的是“我知道通配符会被 shell 先处理,所以加了引号”,这句话说出来,基本功就立住了。
2.3 /etc 与 /proc:一个存配置,一个存运行时状态
这题看着简单,答“一个是配置文件一个是进程信息”只能拿基础分。再往深一层:/etc是持久化的静态配置,改完通常要重启服务或 reload;/proc是内核暴露的虚拟文件系统,不占磁盘,里面的数字目录对应进程 PID,/proc/cpuinfo、/proc/meminfo是运行时状态。能补一句“/proc里的文件是内核动态生成的,读它等于读内存里的状态”,就把“背目录”变成了“懂机制”。易错点是有人把/proc说成普通目录,还去里面找配置文件,这就翻车了。
3. 前端与 HTTP 考点:行块标签、Cookie 与 GET/POST
3.1 行标签与块标签:别只背名字,要讲布局行为
回忆版问 HTML 行标签和块标签分别有哪些。标准答法:块级如div、p、h1、ul、li,独占一行、可设宽高;行内如span、a、label、img(严格说img是替换元素,但笔试按行内算常见)。真正拉开差距的是补一句“行内元素设宽高无效,要改display: inline-block或block”,这正好接上后面“IE 和 Firefox 样式不同”的题——不同浏览器对默认display和盒模型的处理差异,就是样式不一致的根源之一。
3.2 Cookie 与 Session:四个维度说清区别
这题几乎每场都考。答题按存储位置、安全性、容量、生命周期四个维度展开:Cookie 存客户端,Session 存服务端(靠一个 session id 关联,这个 id 通常还是放在 Cookie 里);Cookie 可被篡改,Session 相对安全;Cookie 单个约 4KB,Session 受服务端内存限制;Cookie 可设过期时间,Session 随会话或超时失效。回忆版单独问了“Cookie 最大是多少”,答 4KB 左右并说明“是浏览器限制,不同浏览器略有差异”,比死背一个数字稳。
3.3 GET 与 POST:从参数位置讲到语义
只答“GET 参数在 URL,POST 在 body”是及格线。再加三层:GET 有长度限制(受 URL 长度约束)、可被缓存和收藏、幂等;POST 放 body、相对适合传敏感和大数据、不幂等。注意别说“POST 更安全”,准确说法是“POST 不把参数暴露在地址栏,但明文传输一样不安全,安全靠 HTTPS”。这类题面试官最想听的是你有没有边界感,而不是把 POST 吹成加密。
3.4 一道 JS 题的标准答法
document.getElementById("").style.fontSize="1.5em"这题,答“设置元素字体大小为 1.5em”之外,要指出两个坑:getElementById传空串拿不到元素,实际会报错或无效;1.5em是相对父元素字号的单位。再补一句“更稳的写法是先判空再赋值”,就是工程习惯的体现。
// 先取元素,判空后再改样式,避免空引用 var el = document.getElementById("target"); if (el) { el.style.fontSize = "1.5em"; // 相对父元素字号,1.5 倍 }4. 数据库考点:三范式、事务与 SQL 手写题
4.1 三范式与事务:用一句话各自锁死
三范式常被答得又长又偏。第一范式:字段不可再分,每列是原子值;第二范式:非主键列完全依赖主键,不能只依赖联合主键的一部分;第三范式:非主键列不传递依赖其他非主键列。事务答 ACID 四个字母并各配一句人话:原子性要么全成要么全滚,一致性约束不被破坏,隔离性并发互不干扰,持久性提交后落盘。回忆版里“如何优化 MySQL”是开放题,按“SQL 和索引 → 表结构 → 配置参数 → 缓存和读写分离”的顺序答,先给层次再展开,比堆名词得分高。
4.2 三道 SQL 手写题:更新、删除、插入
回忆版给了 user 表(name、sex、birthday),要求把张三生日改成当前时间、删李四、插王五。这三条考的是基本功,但NOW()和日期字符串格式是易错点。
-- ① 张三生日更新为系统当前时间 UPDATE user SET birthday = NOW() WHERE name = '张三'; -- ② 删除李四 DELETE FROM user WHERE name = '李四'; -- ③ 插入王五,女,2012-3-3 INSERT INTO user (name, sex, birthday) VALUES ('王五', '女', '2012-3-3');说明:NOW()返回datetime,若字段是date类型可用CURDATE();UPDATE和DELETE一定带WHERE,笔试里漏写WHERE是直接判错的失分点;插入时列名写全,避免表结构变动后错位。
4.3 取前 10 条与字符串拼接:ORDER BY 加 LIMIT
“访问 id 较高的前 10 条”就是倒序加限制。第二道拼接题容易看花眼:要把Firstname和familyname拼成带点的形式,用CONCAT即可,注意回忆版里输出示例的标点其实是全角点,答题时按题目给的格式拼。
-- 访问 id 较高的前 10 条 SELECT * FROM UserVisit ORDER BY id DESC LIMIT 10; -- 姓名拼接:J + . + Jack SELECT CONCAT(Firstname, '.', familyname) AS name FROM user;ORDER BY id DESC保证从大到小,LIMIT 10取前十条;拼接题里CONCAT遇 NULL 会整体返回 NULL,实际表里有空值要先IFNULL兜底,这一点补出来就是实战经验。
5. 中间件与测试设计:日志重定向和等价类划分
5.1 Apache 日志被 mv 之后打去哪:inode 是关键
这题是回忆版里最有区分度的一道。Apache 运行时执行mv access_log access_log.bak,日志会继续写进access_log.bak——因为进程打开文件靠的是 inode,改名不影响已打开的文件描述符。重启后,Apache 按配置里的路径重新打开access_log,于是新日志写进新建的access_log,access_log.bak不再增长。答题时把“运行中看 inode、重启后看配置路径”这两句说清,比背结论强得多。顺带能提一句“生产上切割日志用logrotate或发信号让进程重开文件,而不是直接 mv”,这就是踩过坑的人才会说的话。
5.2 三角形判定:等价类划分怎么落到用例
压轴题是给三角形函数设计等价类用例。答题框架:先分有效等价类(能构成三角形:一般、等腰、等边)和无效等价类(两边之和等于第三边、小于第三边、含 0 或负数、非数字),每个等价类至少一条用例,边界值单独补。面试官最想听的是你有没有把“输入域”划全,而不是随手写三条能通过的用例。
| 等价类 | 输入示例 | 预期结果 |
|---|---|---|
| 有效-一般三角形 | 3,4,5 | 一般三角形 |
| 有效-等腰 | 3,3,5 | 等腰三角形 |
| 有效-等边 | 3,3,3 | 等边三角形 |
| 无效-两边之和等于第三边 | 1,2,3 | 不能构成三角形 |
| 无效-含零或负数 | 0,3,3 | 输入非法 |
| 无效-非数字 | a,3,3 | 输入非法 |
写用例时把“输入、预期输出、覆盖的等价类”三列列全,比只写输入值规范得多。易错点是只划有效类不划无效类,或者把等边和等腰混成一个类,这两处都是失分重灾区。
6. 易错点:五道最容易翻车的题和纠正答法
6.1 把 ps 当动态命令
错在哪:问“动态显示”却答ps aux。为什么错:ps是瞬时快照,不刷新。怎么答对:动态用top,并说明ps适合脚本抓取,两者分工不同。
6.2 Cookie 容量答成“无限”或“几 MB”
错在哪:记不住具体量级就瞎猜。为什么错:Cookie 有明确的单域容量限制,约 4KB,超了会被浏览器丢弃。怎么答对:答 4KB 左右,补一句“不同浏览器略有差异,且每次请求都会带上,所以不适合存大数据”。
6.3 SQL 的 UPDATE/DELETE 漏写 WHERE
错在哪:直接DELETE FROM user。为什么错:全表被清,笔试直接判错,工作中就是事故。怎么答对:先写WHERE再写条件,答完回读一遍语句确认范围。
6.4 日志 mv 题只答“还在原文件”
错在哪:只说结论不说机制。为什么错:面试官追问“为什么”就卡住。怎么答对:点出 inode 和文件描述符,再区分运行中与重启后两种状态。
6.5 等价类只划有效类
错在哪:用例全是能构成三角形的输入。为什么错:测试设计的价值一半在异常输入。怎么答对:有效、无效两类都划,边界值(两边之和等于第三边)单独列。
7. 答题节奏:把回忆版当题库刷的三步法
这份回忆版的价值不在题目本身,而在它暴露的考点分布:Linux 命令和 SQL 是必须拿满的硬分,前端和中间件是拉开差距的地方,测试设计题决定你像不像干这行的。我的做法是三步。第一步,按模块把上面每道题手写一遍答案,命令和 SQL 必须敲出来跑通,不能只在脑子里过——find的引号、CONCAT遇 NULL、NOW()和CURDATE()的差别,都是敲过才记得住。第二步,给每道题配一句“为什么”,尤其是top与ps、/etc与/proc、运行中与重启后的日志,这三组对比是追问高发区。第三步,限时模拟:Linux 加数据库控制在二十分钟内,前端和中间件十五分钟,测试设计留十五分钟画等价类表。
| 模块 | 建议用时 | 拿分目标 | 复盘重点 |
|---|---|---|---|
| Linux 命令 | 10 分钟 | 全对 | 动态与快照、引号、inode |
| 前端与 HTTP | 10 分钟 | 八成 | 行块差异、Cookie 四维度 |
| 数据库 | 10 分钟 | 全对 | WHERE、LIMIT、CONCAT |
| 中间件 | 5 分钟 | 全对 | 运行中与重启后 |
| 测试设计 | 15 分钟 | 框架完整 | 有效与无效等价类 |
押题方向上,回忆版里反复出现的是“对比型”问法:两个命令、两个目录、两种提交方式、两种会话机制。这类题几乎必考,准备时把每一组对比做成两列小表,考场上直接往外倒。还有一类是“行为型”问法,比如日志 mv、Cookie 超限,考的是你对机制的理解而不是记忆,答的时候先给结论再给原因,顺序别反。
血泪经验是:我第一次做这类卷子时,SQL 题写得太快漏了WHERE,日志题只答结论被追问到哑口,从那以后我每次答完一道题都强制走一遍“结论、原因、边界”三问,确认没有只答半句才往下走。希望帮到你。
本文还有配套的精品资源,点击获取