测试开发速成!你需要背下什么?

bg:科班本硕但编程烂,不追求技术,但想吃技术饭的羹,遂选择测试开发作为秋招目标。

offer:京东/美团/华为/腾讯云智(前端)。。如你所见,bat都没有,so大佬请移步。

【本文是记录作者参加了n场测试开发实习/秋招笔试面试得出的,测试开发必备指南,内容真的不多,整理的都是被问3次以上的问题,到后期几乎是每场面试都差不多知道要问什么了,如鱼得水,通过率也高很多。纯干货纯分享。       今年的形势来看,测开性价比极高,面试难度不大但薪资可观。未来估计会越来越卷,所以可以尽快上车】

一、常见问题-自我介绍篇

常见的自我介绍大家都知道怎么说,只有几个小提醒

①在介绍的时候哪怕你背的滚瓜烂熟,也不要就毫无感情背出来,要有停顿+思考,洋装你是现场思考说出来的。。

②重点是项目经历+实习经历,重点放在你解决了什么问题得到什么结果,面试官非常care你在实习中产出是什么,为公司做出什么贡献。

(这时候你要问了,我没有贡献都是dirtywork怎么办,一个字,编! 借助同事的文档或者是gpt等,编造出合理的成果出来,搞清楚需要做什么能得到这样的成果,然后背熟,呈现给面试官。)

③有的人一紧张会结巴,怕说不好背不住自我介绍怎么办。可以先把自我介绍写好,然后面试的时候,电脑屏幕左边放自我介绍,右边放腾讯会议等。既不会被判离开会议页面切换页面,眼神也不会乱飘,而且很紧张的化,把面试官的脸最小化会缓解很多~

二、常见问题-力扣篇

top100,多刷题,刷不完怎么办,上牛客看别人被问到什么代码题,有针对性的刷。

无重复字符的最长子串 这个题被问了三次以上。

三、常见问题-项目篇

【我的项目是一段数据分析和一段前端,因为我想呈现我不是很摆烂什么都不会才面试测试开发的,(展现牛马技能多元化),所以你如果有前后端数据分析产品等项目,也都是可以放上去的】

写点适用性广的问题

1、你讲讲你的项目吧

1~2句背景介绍+项目目的,自己担任的角色,前期的准备是什么,后期的准备是什么,使用了什么技术栈,借助了什么工具,与谁合作,得到什么结果。

四、常见问题-实习篇

【我有两段测试实习,一段纯测试,一段有开发】

1、你在实习过程中做了什么

测试实习嘛,无非是看你会不会写测试报告测试用例,但要侧重于讲产出,比如第一段实习我会写自己输出了100+个测试用例,测试报告等。

2、你们部门是测试的哪一步,你测试后流向什么部门?

搞清楚自己部门的定位,其实就是想考察你是不是真的实习过,还是胡编乱造的

3、你在实习过程有遇到什么困难嘛?

 这个很好解决,互联网嘛,无非就是mentor节奏快,技术强,没时间理我们。你就说因为刚接手新项目遇到困难了,怕问太多mentor很烦,但又解决不了会卡很久,既浪费了时间,又没有产出,很难过,因为mentor很难有空主动问我需求。。解决方法:我遇到困难了会先自行搜索gpt/博客解决,后面再主动问mentor,克服自己不敢问问题的恐怖,然后发现mentor是很愿意教的,只是她自己工作久了,会有些小事项忘记和我讲,主动问的话一下子就解决了。自己也学得很快,然后顺利完成工作。。。。(体现自己会主动搜索知识,牛马的积极性主动性)

 五、常见问题-八股篇

1、你知道那些常见的Linux指令,反正我是背了很多很多很多。。

文件和目录操作
ls:列出目录内容
ls -l:详细列表格式
ls -a:显示所有文件,包括隐藏文件
cd:改变当前目录
cd /path/to/directory:进入指定目录
cd ..:返回上一级目录
pwd:显示当前工作目录
mkdir:创建新目录
mkdir new_directory
rmdir:删除空目录
rmdir directory_name
rm:删除文件或目录
rm file_name:删除文件
rm -r directory_name:递归删除目录及其内容
cp:复制文件或目录
cp source_file destination_file
cp -r source_directory destination_directory
mv:移动或重命名文件或目录
mv old_name new_name
mv file_name /new/path/
文件内容查看和编辑
cat:显示文件内容
cat file_name
more:分页显示文件内容
more file_name
less:分页显示文件内容,支持向前翻页
less file_name
head:显示文件的前几行
head -n 10 file_name:显示前10行
tail:显示文件的后几行
tail -n 10 file_name:显示后10行
tail -f file_name:实时显示文件新增内容
nano、vim、emacs:文本编辑器
nano file_name
vim file_name
emacs file_name
系统管理
sudo:以超级用户权限运行命令
sudo command
chmod:改变文件权限
chmod 755 file_name
chown:改变文件所有者
chown user:group file_name
ps:显示当前进程
ps aux:显示所有进程
top:实时显示系统资源使用情况
df:显示磁盘空间使用情况
df -h:以人类可读的格式显示
du:显示目录或文件的磁盘使用情况
du -sh directory_name
网络操作
ping:测试网络连接
ping google.com
ifconfig:显示或配置网络接口
ifconfig
curl:命令行工具用于请求数据
curl http://example.com
wget:下载文件
wget http://example.com/file.zip
压缩和解压缩
tar:归档文件
tar -cvf archive.tar file1 file2:创建tar归档
tar -xvf archive.tar:解压tar归档
gzip:压缩文件
gzip file_name:压缩文件
gunzip file_name.gz:解压缩文件
zip:压缩文件
zip archive.zip file1 file2:创建zip归档
unzip archive.zip:解压zip归档
搜索和过滤
grep:搜索文本
grep 'pattern' file_name
find:查找文件或目录
find /path -name file_name
awk:文本处理工具
awk '{print $1}' file_name
sed:流编辑器,用于文本替换
sed 's/old/new/g' file_name

2、用过GitHub吗,有哪些指令

  1. 克隆仓库(Clone a repository):

    git clone https://github.com/username/repository.git
    
  2. 添加远程仓库(Add a remote repository):

    git remote add origin https://github.com/username/repository.git
    
  3. 查看状态(Check status):

    git status
    
  4. 添加文件到暂存区(Stage changes):

    git add .
     # 或者针对特定文件:
     git add file.txt
    
  5. 提交更改(Commit changes):

     git commit -m "Your commit message here"
    
  6. 推送至远程仓库(Push to remote):

    git push origin main  # 如果你的主分支是main或master,替换为相应的分支名。
    
  7. 拉取最新代码(Pull latest code from remote):

    git pull origin main  # 同上,根据你的主分支名字调整。
    
  8. 切换分支 (Switch branches):

    git checkout -b new_branch_name  # 创建并切换到新分支 
    or 
    git checkout existing_branch_name  # 切换到已有的分支
    
  9. 合并分支到当前所在分支 (Merge branch into current one):

    git merge another_branch_name 
    
  10. 查看所有本地和远程的branch:

     git branch -a 
    
  11. 删除本地或远程branch:

    • 删除本地branch: git branch -d branch_name
    • 删除远程branch: git push origin --delete branch_namegit push origin :branch_name

3、 在浏览器中输入一个网页地址(URL)并按下回车键,到我们看到页面显示在屏幕上,这个过程中涉及多个步骤,你能讲讲吗?(熟悉吧!!我被问了有10次以上!真的!!背下来吧!)

DNS查询:

浏览器首先检查URL中的域名(如 ​www.example.com​)。
如果浏览器或操作系统缓存中没有该域名的IP地址,它会向DNS(域名系统)服务器发送查询请求,以获取与该域名对应的IP地址。
DNS服务器返回对应的IP地址,浏览器现在知道要连接到哪个服务器。
建立TCP连接:

浏览器使用获取的IP地址和默认的HTTP端口(通常是80端口,HTTPS是443端口)与服务器建立TCP连接。
这个过程涉及三次握手:客户端发送SYN包,服务器回复SYN-ACK包,客户端再发送ACK包,从而建立连接。
发送HTTP请求:

一旦TCP连接建立,浏览器会发送一个HTTP请求到服务器,请求特定的资源(如HTML页面)。
请求包括请求方法(如GET)、请求的URI(统一资源标识符)、HTTP版本、头部信息(如用户代理、接受的内容类型等)和可能的请求体。
服务器处理请求:

服务器接收到HTTP请求后,会根据请求的内容进行处理。
这可能包括查询数据库、执行服务器端脚本(如PHP、Python、Node.js等)、读取文件等。
处理完成后,服务器会生成一个HTTP响应。
接收HTTP响应:

服务器将HTTP响应发送回浏览器。
响应包括状态码(如200表示成功,404表示未找到资源)、响应头部信息(如内容类型、内容长度、缓存控制等)和响应体(如HTML内容、图片、CSS、JavaScript等)。
渲染页面:

浏览器接收到HTTP响应后,开始解析HTML、CSS和JavaScript代码。
浏览器根据HTML和CSS构建DOM(文档对象模型)和CSSOM(CSS对象模型),并执行JavaScript代码。
浏览器根据这些信息渲染页面,将内容显示在屏幕上。
断开TCP连接:

一旦页面加载完成,浏览器和服务器之间的TCP连接可能会被断开。
这个过程通常涉及四次挥手:客户端发送FIN包,服务器回复ACK包,服务器再发送FIN包,客户端回复ACK包,从而断开连接。
 

4、 http常见状态码有哪些?/500是什么错误?

HTTP常见状态码

1xx:信息性状态码,表示请求已被接收,继续处理。
2xx:成功状态码,表示请求已被成功接收、理解、接受。
200 OK:请求成功。
3xx:重定向状态码,表示需要进一步操作以完成请求。
301 Moved Permanently:资源永久移动到新位置。
302 Found:资源临时移动到新位置。
4xx:客户端错误状态码,表示请求包含错误的语法或无法完成。
400 Bad Request:请求语法错误。
401 Unauthorized:请求需要用户认证。
404 Not Found:请求的资源不存在。
5xx:服务器错误状态码,表示服务器在处理请求时发生了错误。
500 Internal Server Error:服务器内部错误。
503 Service Unavailable:服务器暂时无法处理请求。

5、一个完整的测试流程是什么?

需求分析:

理解项目需求,确定测试范围和目标。
识别测试类型(如单元测试、集成测试、系统测试、验收测试等)。
测试计划:

制定测试策略和方法。
确定测试资源(人员、设备、时间)。
制定测试进度计划。
测试设计:

编写测试用例,包括输入、预期输出和执行条件。
设计测试数据和测试场景。
确定测试环境配置。
测试环境搭建:

准备测试所需的硬件、软件和网络环境。
安装和配置测试工具。
测试执行:

根据测试计划和测试用例执行测试。
记录测试结果,包括通过的测试和发现的缺陷。
对缺陷进行分类和优先级排序。
缺陷跟踪:

使用缺陷跟踪系统记录和跟踪缺陷。
与开发团队协作,确保缺陷得到修复。
测试评估:

分析测试结果,评估测试覆盖率和产品质量。
确定是否需要进行额外的测试。
测试报告:

编写测试报告,总结测试活动和结果。
提供缺陷统计和分析。
提出产品改进建议。
测试总结:

回顾测试过程,总结经验教训。
为未来的测试活动提供改进建议。
编写测试报告时,应该包括以下内容:

测试概述:简要描述测试目的、范围和测试周期。
测试环境:详细说明测试所使用的硬件、软件和网络配置。
测试策略和方法:描述测试的类型、方法和技术。
测试用例和结果:列出关键的测试用例和执行结果,包括通过的测试和发现的缺陷。
缺陷统计:提供缺陷的数量、严重性、状态和解决情况。
风险评估:分析测试过程中发现的风险和不确定性。
测试总结:总结测试活动的成功之处和需要改进的地方。
建议和改进:提出基于测试结果的产品改进建议和测试流程优化建议。
测试报告应该是清晰、准确、客观的,以便于项目团队和利益相关者理解和采取行动。

6、给你场景问你如何设计测试用例?

eg对于百度的搜索框,你会如何设计测试用例?

一般都是以下几个方面:性能测试+功能测试+兼容性测试 +用户体验+安全性。。。

每次的问题不一样,但是从这几个方面去考虑,还是很容易说出来的

设计百度搜索框的测试用例需要覆盖各种功能、用户体验、性能、安全性等方面。以下是一些详细的测试用例示例:
1. 功能测试用例
1.1 输入测试
用例名称:输入有效关键词
前提条件:用户已打开百度首页
步骤:
在搜索框中输入“天气预报”
点击“百度一下”按钮
预期结果:显示与“天气预报”相关的搜索结果
用例名称:输入无效关键词
前提条件:用户已打开百度首页
步骤:
在搜索框中输入“sdfgdfgdfg”
点击“百度一下”按钮
预期结果:显示没有相关结果的提示信息
用例名称:输入特殊字符
前提条件:用户已打开百度首页
步骤:
在搜索框中输入“@#$%^&*”
点击“百度一下”按钮
预期结果:显示与特殊字符相关的搜索结果或提示信息
1.2 自动补全测试
用例名称:自动补全功能
前提条件:用户已打开百度首页
步骤:
在搜索框中输入“天气”
预期结果:显示与“天气”相关的自动补全建议
1.3 语音输入测试
用例名称:语音输入功能
前提条件:用户已打开百度首页,设备支持语音输入
步骤:
点击搜索框旁边的语音输入按钮
说出“天气预报”
预期结果:搜索框中显示“天气预报”,并显示相关搜索结果
2. 用户体验测试用例
2.1 界面测试
用例名称:搜索框界面布局
前提条件:用户已打开百度首页
步骤:
观察搜索框的位置和大小
预期结果:搜索框位置居中,大小适中,易于用户输入
2.2 响应测试
用例名称:搜索响应速度
前提条件:用户已打开百度首页
步骤:
在搜索框中输入“新闻”
点击“百度一下”按钮
预期结果:搜索结果在1秒内显示
3. 性能测试用例
3.1 高并发测试
用例名称:高并发情况下的搜索响应
前提条件:模拟大量用户同时进行搜索
步骤:
使用性能测试工具模拟1000个用户同时搜索“新闻”
预期结果:搜索结果在合理时间内返回,系统无崩溃
3.2 大数据量测试
用例名称:大数据量输入
前提条件:用户已打开百度首页
步骤:
在搜索框中输入长度为1000个字符的字符串
点击“百度一下”按钮
预期结果:系统能正常处理并返回搜索结果或提示信息
4. 安全性测试用例
4.1 SQL注入测试
用例名称:防SQL注入
前提条件:用户已打开百度首页
步骤:
在搜索框中输入“' OR 1=1 --”
点击“百度一下”按钮
预期结果:系统能正常处理输入,不返回异常信息
4.2 XSS攻击测试
用例名称:防XSS攻击
前提条件:用户已打开百度首页
步骤:
在搜索框中输入“<script>alert('XSS')</script>”
点击“百度一下”按钮
预期结果:系统能正常处理输入,不执行恶意脚本
5. 兼容性测试用例
5.1 浏览器兼容性测试
用例名称:不同浏览器上的表现
前提条件:用户已打开百度首页
步骤:
在不同浏览器(如Chrome、Firefox、Safari、Edge)上进行搜索
预期结果:搜索框在所有浏览器上表现一致,功能正常
5.2 设备兼容性测试
用例名称:不同设备上的表现
前提条件:用户已打开百度首页
步骤:
在不同设备(如PC、手机、平板)上进行搜索
预期结果:搜索框在所有设备上表现一致,功能正常

7、你对最新的测试技术有了解吗?

这个自己网上搜搜,我没有确定的答案(要表现自己真的有在关注测开行业,所以面试前多搜一下最新的技术,让自己有话可说。

8、为什么选择测试?

 这个问题每场必问,我一般都是说:

我善于沟通且具备计算机的相关知识,测试开发既需要与开发人员协作沟通,又需要自己对技术有所了解,可以更好的定位问题。且我经过两段相关的实习经验,发现自己对自动化测试开发很感兴趣,所以也想继续深耕这一类的场面话。但是要表现你的思考和深度。

 六、最后说一下

面试前多上牛客/csdn/小红书看看相关的面试经验,每一个公司的面试风格不是很相同,所以还是先多看看其他人的经验。BAT很注重问题的深度,BAT的面试官不单单问八股,会问你为什么会是这样,什么原理,有什么解决方法?想去的话要一直一直下功夫去琢磨。

我的实习我的秋招已经结束了,我深知这段时间的痛苦折磨,但也因此有珍贵的收获。我的学生时代也是在2024这一年结束了。未来的我会是怎么样呢~不知道耶,期待看看吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值