【校招】测试工程师知识点
- 【计算机基础知识】
-
- 1.ISO/OSI模型
- 2.HTTP(超文本传输协议)
-
- ①HTTP与HTTPS
- ②HTTP是无状态的
- ③HTTP的连接
- ④HTTP请求
- ⑤HTTP状态码
- 3.UDP/TCP区别
- 4.TCP协议深挖
- 5.进程通信的方式
- 6.C/S,B/S区别li>
- 7.死锁产生的必要条件li>
- 8.队列和栈的区别li>
- 9.B树和B+树的区别
- 【数据库】
-
- 1.范式
- 2.MySQL引擎
- 3.灾备
- 4.char和varchar的区别
- 5.关系型数据库&非关系型数据库
- 6.索引
- 7.事务:原子性 隔离性 持久性 一致性
- 8.drop,truncate,delete区别
- 【Linux】
- 【Python基础】
-
- 1.python的数据类型
- 2.list和tuple区别
- 【测试理论】
-
- 软件生命周期
- 软件质量模型
- 软件测试流程
- 测试用例构成
- 缺陷要素
- 缺陷的等级
- 你觉得测试和测开的区别是什么li>
- postman的使用:接口依赖
- 如果你提交的bug开发不认可li>
- 如果没有接口文档li>
- 综合题:如何测试一个杯子li>
面试感受:
一面:侧重计算机基础知识或侧重软件测试相关知识(取决于公司)
二面:几乎都会深挖项目(以及聊天)
HR面:学校参加的活动(非技术类)+解压方式+预期薪资+兴趣爱好+期望城市(旁敲侧击工作稳定性)
总结:
1.简历认真写,大部分面试官会围绕简历提问,不熟悉的课程和项目就直接删掉,把自己熟悉的表达清楚。
2.多看笔试面经,了解公司的提问侧重点。
3.面试前了解公司的主要业务,准备几个有针对性的反问。
【计算机基础知识】
主要涉及:《计算机 络》《数据结构》《计算机操作系统》
ps:没被问到过计组
1.ISO/OSI模型
ISO:国际标准化组织 (International Organization for Standardization)
OSI:开放系统互联(Open System Interconnection)
OSI七层 | 协议 |
---|---|
7-应用层 | FTP、SMTP、HTTP、DNS |
6-表示层 | JPEG、ASCII |
5-会话层 | ADSP、ASP |
4-传输层 | TCP、UDP |
3- 络层 | IP、IPX、ICMP、IGMP、ARP、RARP、OSPF |
2-数据链路层 | SDLC、HDLC、PPP、STP |
1-物理层 | Rj45、802.3 |
2.HTTP(超文本传输协议)
①HTTP与HTTPS
HTTP:明文传输,很容易被攻击者窃取重要信息。80端口。
HTTPS = HTTP + SSL,是以安全为目标的HTTP通道。443端口。可进行加密传输、身份认证。
②HTTP是无状态的
HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。
服务器无法支持需要连续多个步骤的事务操作,于是出现了 Cookie 技术。
③HTTP的连接
HTTP:HTTP本身无连接,TCP作为运输层协议。
HTTP连接方式:短连接vs长连接
HTTP/1.0:短连接。
客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。
HTTP/1.1:长连接。在响应头加入Connection:keep-alive。
页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。
HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。
④HTTP请求
HTTP总共有8中请求方法,最常用:get和post。
GET传输数据的时候是在URL地址中的。对所有人都可见,因此不安全。
POST传输的时候是放在HTTP的请求体之中的,并且经过urlencode编码,相对安全。
GET只能传输ASCII字符,不能进行编码。
POST没有对数据类型的限制。
HTTP协议并没有对GET和POST的长度做限制,其实是浏览器限制了他们传输大小。
URL地址是有长度限制的,浏览器不同长度限制的具体数值也是不一样的。
理论上来说POST的长度是没有限制的,但是受服务器的配置限制或者内存大小的限制,实际开发中POST也是有数据长度的限制的。
⑤HTTP状态码
1xx 通知信息
2xx 成功 200OK 202Accepted
3xx 重定向 301/302 movedpermanently 永久移除
4xx 客户差错 400bad request 请求语法错误
5xx 服务期差错
3.UDP/TCP区别
UDP | TCP |
---|---|
不可靠 | 可靠 |
无连接 | 面向连接 |
时延小 | 时延大 |
适用于小文件 | 适用于大文件 |
4.TCP协议深挖
为什么是三次握手p>
为什么四次挥手最后要等2MSLp>
5.进程通信的方式
6.C/S,B/S区别h2>
7.死锁产生的必要条件h2>
1.互斥条件
2.不可剥夺
3.请求与保持
4.循环等待
8.队列和栈的区别h2>
9.B树和B+树的区别
【数据库】
1.范式
R∈1NF:关系模式R中不包含多值属性;
R∈2NF:非主属性完全函数依赖于R任何一个候选码,R∈1NF(消除部分依赖)
R∈3NF:每一个非主属性都不传递依赖于任何候选码,R属于2NF
BCNF:每一个决定因素都包含候选码。
2.MySQL引擎
①InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。
适合:对事物完整性要求高(银行),要求实现并发控制(售票),频繁更新、删除(因为支持事务的提交和回滚)
②Myisam:插入数据快,空间和内存使用比较低
适合:表主要用于插入新纪录和读出记录
③Memory:数据都存在内存中,处理速度快,安全性不高。
适合:很快的读写速度,安全性要求低
3.灾备
RTO,RPO
4.char和varchar的区别
5.关系型数据库&非关系型数据库
6.索引
帮助mysql高效获取数据的数据结构,存储在磁盘上的文件中【B+树】
7.事务:原子性 隔离性 持久性 一致性
8.drop,truncate,delete区别
【Linux】
#查看日志:
cat 文件名
more 文件名 #分页查看
less 文件名 #分页查看
head -n 10 文件名 #查看头几行
tail -n 10 文件名 #查看尾部几行
cat 文件名 | grep ‘关键字’ #过滤筛选
#查看进程
ps -ef
ps -ef | grep 进程PID/进程名称
ps aux | grep 进程PID/进程名称 #查看具体某个进程的详细信息,包括CPU,内存占用情况
top | grep 进程PID/进程名称 #动态实时查看进程的情况
Kill -9 进程PID #杀死进程
#修改文件权限
chmod -R 777 文件名 #讲某个文件修改为可读可写可执行
#查看端口
netstat -anp | grep 端口 #根据端口 查看被哪个进程占用了
netstat -anp | grep 进程名称/进程PID #根据PID或进程名称查看进程占用的端口
#解压命令
tar -xvf xxx.tar
tar -jxvf xxx.tar.gz
tar -zxvf xxx.tar.bz2
【Python基础】
1.python的数据类型
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
2.list和tuple区别
- 列表可以修改,元组不可以修改;列表就相当于一个动态数组,而元组是一个静态数组。
- 从设计上说,列表是用来保存多个相互独立对象的数据集合,而元组设计的初衷就是为了描述一个不会改变的事物的多个属性。
- 列表的声明用[ ],元组的声明用( ),并且元组只有一个元素的时候需要在后面加逗 。
【测试理论】
软件生命周期
- 软件计划与可行性研究阶段(问题定义、可行性研究)
- 需求分析阶段
- 软件设计阶段(概要设计和详细设计)
- 软件编码阶段
- 软件测试阶段
- 软件运行与维护阶段
软件质量模型

软件测试流程
①需求澄清
②测试准备(需求分析,提炼测试点,编写测试用例)
③测试执行(搭建测试环境,项目部署,冒烟测试,执行用例)
④BUG基本修完,写测试 告,上线
测试用例构成
- 用例编 (唯一)
- 所属模块(表明测试的需求属于哪个模块)
- 用例标题(简明扼要的描述测试的内容)
- 优先级(为了应对风险 ,高:基本流和部分备选流,中:部分备选流,低:测试数据为覆盖无效等价类的测试用例)
- 前置条件(正常执行测试时所必备的条件 )
- 操作步骤(详尽完成的操作步骤)
- 测试数据
- 预期结果
- 测试用例执行的结果:
notest 未执行
pass 通过
fail 失败(提交缺陷)
block 阻塞
缺陷要素
- 标题
- 所属模块
- 严重等级
- 发现版本
- 测试环境
- 重现步骤(详细)
- 预期结果
- 实际结果
- 附件(截图,日志文件)
- 状态
- 测试人员
缺陷的等级
- 致命:程序无法运行,程序异常中断,主要功能缺失或异常;
- 严重: 软件的次要功能丧失,或者主要功能在一些特定情况下会出错;
- 一般: 软件在某些情况下会出错,但是造成的后果影响不大;
- 轻微:在某些情况下会出错,但是造成的后果影响很小。
你觉得测试和测开的区别是什么h2>
测试:传统的产品需求验证
测试开发:开发工具,写脚本,做平台来辅助支撑测试工作,优化测试路径。
postman的使用:接口依赖
(结合自己的项目经历)
接口间的依赖,通常是某个接口调用时的参数来自之前其它接口调用的返回结果。
在前面接口的Tests里面通过js脚本,首先将返回结果转换成json对象,提取所有需要的字段值,将其设置为环境变量,在后续接口当中需要用到该变量的地方通过两对{{}}来引入环境变量的值。
如果你提交的bug开发不认可h2>
- 先找开发沟通,了解不认可原因是什么,根据原因去具体的处理;
- 如果需求方面的问题,先沟通,沟通不了由产品确认。
- 如果是测试数据、测试环境等导致的,根据开发的建议,换测试环境,测试数据再复测,如果还有问题,再与开发沟通
- 如果是开发不能重现,检查提交的Bug步骤是否清晰,自己先复测,确保还有问题,重新提交把步骤写详细。
如果没有接口文档h2>
通过抓包工具,来捕获接口调用的 络数据,分析接口的地址,请求方法,参数,返回值。
和开发进行确认,然后整理接口文档,编写接口测试用例,对接口进行测试。
综合题:如何测试一个杯子h2>
我认为可以从以下几个方面进行测试:
-
功能测试:关注水杯基本功能
水杯是否可以正常装水
水杯是否可以正常喝水
水杯是否有盖子,盖子是否可以正常盖住
水杯是否有保温功能,保温功能是否正常保温
水杯是否会漏水,盖住盖子拧紧后是否会漏水 -
界面测试:关注水杯外观、颜色、设计等
外观是否完整
外观是否舒适
颜色搭配及使用是否让人感到舒适
杯子外观大小是否适中
杯子是否有图案,图案是否易磨损 -
易用性测试:关注水杯使用是否方便
水杯喝水时否方便
水杯装水是否方便
水杯携带是否方方便
水杯是否有防滑功能
水杯装有低温或者高温水时,是否会让手感到不适 -
性能测试:
水杯装满水时,是否会露出来
水杯最大使用次数
水杯的保温性是否达到要求
水杯的耐寒性是否达到要求
水杯的耐热性是否达到要求
水杯掉落时时,是否可以正常使用
水杯长时间放置时,是否会发生泄露 -
兼容性测试:
水杯是否可以装其他液体,如果汁、汽油、酒精等 -
可移植性测试:关注水杯放置环境等
将水杯放在常温环境中,使用是否正常
将水杯放在零下的环境中,使用是否正常
将水杯放在高于正常温度的环境中,使用是否正常 -
安全性测试:关注水杯外观和各种异常条件下是否释放有毒物质等
当水杯装满热水时,水杯是否会烫手
当水杯装上水后,是否会产生有毒物质
把水杯放在零下环境时,是否会产生有毒物质
把水杯放在高温环境时,是否会产生有毒物质
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!