测试开发工程师面经准备(sxf)

文章目录

      • 1.自我介绍
      • 2.问题准备
        • [2.1 项目部署有什么问题,以及怎么解决的?](#2.1 项目部署有什么问题,以及怎么解决的?)
        • [2.2 七层模型以及五层模型?](#2.2 七层模型以及五层模型?)
        • [2.3 http和https的区别](#2.3 http和https的区别)
        • 2.4部署云服务需要注意什么?
        • [2.5 电脑上不了网怎么进行排查](#2.5 电脑上不了网怎么进行排查)
        • [2.6 linux查找命令帮助](#2.6 linux查找命令帮助)
        • [2.7 查找用户进程,给用户赋予一个文件操作权限](#2.7 查找用户进程,给用户赋予一个文件操作权限)
        • [2.8 linux的启动过程](#2.8 linux的启动过程)
        • [2.9 查询前10条数据指令](#2.9 查询前10条数据指令)
        • [2.10 arp和rarp的区别是什么?](#2.10 arp和rarp的区别是什么?)
        • [2.11 软件测试的流程是怎么样的?](#2.11 软件测试的流程是怎么样的?)
      • 3.笔试题目回顾
        • [3.1 如何查询一个二进制命令的完整路径](#3.1 如何查询一个二进制命令的完整路径)
        • [3.2 802.11和802.3区别](#3.2 802.11和802.3区别)
        • [3.3 linux中的包过滤软件叫什么?](#3.3 linux中的包过滤软件叫什么?)
        • [3.4 交换机的access接口和trunk接口的区别](#3.4 交换机的access接口和trunk接口的区别)
        • [3.5 在linux中,如何永久添加一条静态路由](#3.5 在linux中,如何永久添加一条静态路由)
        • [3.6 什么是vlan,描述两个其主要作用?](#3.6 什么是vlan,描述两个其主要作用?)
        • [3.7 将命令后台运行,并且查看后台的任务](#3.7 将命令后台运行,并且查看后台的任务)
        • [3.8 交换机和路由器的主要区别是什么?](#3.8 交换机和路由器的主要区别是什么?)
        • [3.9 字符串压缩和解压思路](#3.9 字符串压缩和解压思路)
        • [3.10 tcp和Udp区别](#3.10 tcp和Udp区别)
        • [3.11 RIP和OSPF协议](#3.11 RIP和OSPF协议)
        • [3.12 低复现高危害得bug如何解决](#3.12 低复现高危害得bug如何解决)
        • [3.13 bug得生命周期](#3.13 bug得生命周期)
        • [3.14 和同龄人得主要差距](#3.14 和同龄人得主要差距)
        • [3.15 自动化测试有什么缺点怎么改](#3.15 自动化测试有什么缺点怎么改)
        • [3.16 你为什么觉得你适合做测试这个岗位,从多个维度来说](#3.16 你为什么觉得你适合做测试这个岗位,从多个维度来说)
        • [3.17 如果让你些自动化脚本,你会用Java还是Python?](#3.17 如果让你些自动化脚本,你会用Java还是Python?)
        • [3.18 说一些Linux命令(find、grep)、如何查看内存和磁盘情况?](#3.18 说一些Linux命令(find、grep)、如何查看内存和磁盘情况?)
        • [3.19 说一下arp协议](#3.19 说一下arp协议)
        • [3.20 说一个你熟悉得协议](#3.20 说一个你熟悉得协议)
        • [3.21 说一下TCP/IP各层是怎么样,大概有哪些协议?](#3.21 说一下TCP/IP各层是怎么样,大概有哪些协议?)
        • [3.22 假设你的笔记本连着wifi,但就是无法上网,你如何运用分层的知识去排查](#3.22 假设你的笔记本连着wifi,但就是无法上网,你如何运用分层的知识去排查)
        • [3.23 python元组和列表得区别](#3.23 python元组和列表得区别)
        • [3.24 常用软件得优点和缺点](#3.24 常用软件得优点和缺点)
        • [3.25 你是怎么看待测试岗的?你觉得信锐的测试岗有什么优势?](#3.25 你是怎么看待测试岗的?你觉得信锐的测试岗有什么优势?)
        • [3.26 产品的开发流程?](#3.26 产品的开发流程?)
        • [3.27 说两个你比较熟悉的排序算法](#3.27 说两个你比较熟悉的排序算法)
        • [3.28 linux如何配置网络](#3.28 linux如何配置网络)

1.自我介绍

姓名,学校,校园经历(六级),科研经历,实习经历,项目经历(技术栈,博客)

2.问题准备

2.1 项目部署有什么问题,以及怎么解决的?

先把springboot项目打包,编写dockerfile文件,配置镜像,运行容器,测试访问

然后的话,直接做的为了保证删除容器,不同服务器的图片数据可以实现共享,设置了容器对应的数据卷。

2.2 七层模型以及五层模型?

1.七层模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

他是一个理论模型,用于描述网络通信种各层的功能和责任,比如物理层负责比特流传输,数据链路层负责帧传输,网络层负责IP寻址和路由转发,传输层,保证端到端的数据可靠性,会话层管理会话,表示层用于数据格式转换和加密,应用层提供具体的应用服务。

2.五层模型是物理层,数据链路层,网络层,传输层,应用层,这样分层网络通信更加清晰,便于故障定位和维护

2.3 http和https的区别

1.默认端口不同:一个是80端口,一个是443端口

2.安全性:http是明文传输,https的加密传输,实际应用种需要先下载ssl证书,然后再springboot项目配置

3.开销:https相对来说开销大一点

2.4部署云服务需要注意什么?

1.选择合适的服务:比如说图片是存在OSS还是自己用miniio存储。域名和https相关要配置好。相关的监控,比如说要看CPU,内存,磁盘容量是否合理足够

2.5 电脑上不了网怎么进行排查

1.比如说我连了wifi,先用手机试试是不是wifi问题

2.不是的话,打开电脑中断ping一下百度,Ping的通就看看DNS,设置一个通用的114,如果还是不行

3.看看是不是自己的代理服务器没有关,有时候科学上网可能会有这个问题

2.6 linux查找命令帮助

ls --help

2.7 查找用户进程,给用户赋予一个文件操作权限

查看某个用户的进程 ps -u 用户名

chown 用户名 文件 (改变文件所有者)

chmod设置权限 rwx

2.8 linux的启动过程

硬件自检(硬件资源)到内核加载,再到用户空间的初始化过程。

2.9 查询前10条数据指令

head -n 10 文件名

2.10 arp和rarp的区别是什么?

arp是知道IP地址,找mac地址

rarp是知道mac地址找ip地址

2.11 软件测试的流程是怎么样的?

1.需求分析,测试计划,测试用例设计,测试执行,缺陷管理,测试总结

3.笔试题目回顾

3.1 如何查询一个二进制命令的完整路径

which 命令名

3.2 802.11和802.3区别

802.11是无线局域网的通信标准

802.3是以太网通信标准

3.3 linux中的包过滤软件叫什么?

iptables或者nftables

3.4 交换机的access接口和trunk接口的区别

access主要连接的是电脑,普通终端设备,trunk接口主要连接交换机和路由器

access只能有一个vlan,trunk可以有多个

3.5 在linux中,如何永久添加一条静态路由

普通的话是通过 ip route add但是希望永久的是话需要写入网卡配置文件,再重启服务

3.6 什么是vlan,描述两个其主要作用?

隔离广播域,提高通信效率

保证安全性

同一个交换机可以通过vlan+20(数字)进行广播域的隔离

3.7 将命令后台运行,并且查看后台的任务

ctrl + z挂起,bg将挂起的任务后台执行

jobs查看后台的任务

当初挂起flask后端到后台运行的话,用到了nohup指令

3.8 交换机和路由器的主要区别是什么?

交换机主要用于局域网内部,通过MAC地址转发数据,支持VLAN划分广播域

路由器主要用来连接不同的网络,通过IP地址转发数据,实现跨网通信,隔离广播域

3.9 字符串压缩和解压思路

1.压缩思路:遍历,如果s[i]和s[i+1]不相等就可以统计结果了

1.1 如果长度大于2的话,result.append(s[i]+str(count)) 否则s[i] *count

1.2 重置count的长度

2.解压思路:遍历,如果不是数字就加入,是的话就加入s[i-1]*count

python 复制代码
# AAAABBCCC -> A4B2C3

def compress(s):
    # 遍历字符串,如果遍历到最后一个长度-1或者s[i]和s[i+1]不相等的时候统计结果
    # 1.大于等于2的时候,就是s[i] + count
    # 2.否则,就是s[i] * count (结束count重置为1)
    result = []
    count = 1
    for i in range(len(s)):
        if i == len(s)-1 or s[i] != s[i+1]:
            if count > 2:
                result.append(s[i] + str(count))
            else:
                result.append(s[i] * count)
            count = 1
        else:
            count += 1

    return "".join(result)

# A4B2C3
def decompress(s):
    # 遍历,加入到res中,如果是数字的话,加入减1个
    result = []
    for i in range(len(s)):
        if s[i].isdigit():
            result.append(s[i-1] * (int(s[i])-1))
        else:
            result.append(s[i])

    return "".join(result)


print(compress("AAAABBCCC"))
print(decompress("A4B2C3"))
3.10 tcp和Udp区别

tcp是面向连接的,udp是无连接的。tcp通过流量控制,拥塞控制还有确认机制保证可靠性,udp不保证。但是udp适合一些比如说视频的场景,效率更高

3.11 RIP和OSPF协议

都是路由协议,告诉路由器怎么走才是最佳线路

RIP得话使用跳数作为衡量得依据,最大15跳。OSPF会综合考虑线路贷带宽信息,适合大型网络

3.12 低复现高危害得bug如何解决

首先确认问题得严重性,通过日志,记录操作步骤和环境信息进行浮现,或者和开发沟通,看看能不能在测试或者线上环境还原问题,同时记录问题方便跟踪

3.13 bug得生命周期

新指开修回关

新建,指派,修复,回归测试,关闭

3.14 和同龄人得主要差距

接触项目得深度和技术规模,以及实战经验,当然自己也积极参与,刻意练习

3.15 自动化测试有什么缺点怎么改

缺点是维护成本高,前期投入大,对于经常变动得不太适应

使用稳定得需求,或者回归测试这一块

3.16 你为什么觉得你适合做测试这个岗位,从多个维度来说

性能方面:做事比较细心,喜欢找bug得过程,有成就感

能力方面:有全栈得开发基础,对代码用例得编写有基础

沟通方面:由于有基础基础在沟通方面更加合适

3.17 如果让你些自动化脚本,你会用Java还是Python?

python得语法比较简单,开发效率高,一般可以做UI自动化,接口 测试,数据处理

但是Java得话和后端项目集成度更高,一般做单元测试

主要还是根据场景选择,一般来说python更为常见作为自动化脚本开发

3.18 说一些Linux命令(find、grep)、如何查看内存和磁盘情况?

find 查找文件,grep过滤关键字

内存使用情况:free -h

磁盘使用情况: df

CPU使用情况:top

当前目录下各文件大小:du

3.19 说一下arp协议

arp协议是将局域网得IP地址解析为MAC地址。当一台主机要发送数据,如果只知道IP地址,会发送ARP请求广播找目标MAC,然后通过目标MAC地址完成数据帧得发送。工作在数据链路层

3.20 说一个你熟悉得协议

http协议超文本传输协议,属于应用层协议,可以用于客户端和服务端得通信,一般来说前后端接口联调都是用得这个协议,属于是无状态得,请求响应模型,为了安全,后面变为https协议

3.21 说一下TCP/IP各层是怎么样,大概有哪些协议?

网络接口层:WIFI,ARP (主机和物理网络通信)

网络层:IP,ICMP,RIP,OSPF (路由寻址)

传输层:TCP,UDP (端到端传输)

应用层:HTTP,DNS (用户提供服务)

3.22 假设你的笔记本连着wifi,但就是无法上网,你如何运用分层的知识去排查

物理层,检查wifi是否正常,可以用手机连接看看是否正常

网络层:ping ip看一下是否正常

传输层:telnet ip 端口,看看端口是否阻塞

应用层:Ping 域名看看DNS解析是否正常

3.23 python元组和列表得区别

列表的话存储可变数据,可以用来做队列

元组一般存放一些不可变得数据

3.24 常用软件得优点和缺点

B站:学习,互动性,缺点:信息内容质量低。推荐有时候不精准

3.25 你是怎么看待测试岗的?你觉得信锐的测试岗有什么优势?

不仅仅是找Bug,也是保障软件质量得重要角色,可以为团队开发提供建议,提前发现潜在风险

3.26 产品的开发流程?

需求分析,概要设计,详细设计,开发,测试,运维

3.27 说两个你比较熟悉的排序算法

冒泡排序就是相邻元素两两比较,把最大的元素逐步移动到末尾,重复多轮直到排序完成,适合小规模数据,时间复杂度平均和最坏都是 O(n²)。

快速排序选择一个基准,把数组分成比基准小和大的两部分,再递归排序两边,平均时间复杂度 O(n log n),性能较好,是实际开发中常用排序方法。

"选择排序每轮找出最小的元素放到前面,操作简单但效率不高,适合小数据集

3.28 linux如何配置网络

第一种是临时配置,通过 ifconfig 或 ip addr 设置 IP,通过 route 或 ip route 设置网关,修改 /etc/resolv.conf 设置 DNS,适合临时测试。

第二种是永久配置,修改网络配置文件(Ubuntu 用 /etc/network/interfaces 或 netplan,CentOS 用 /etc/sysconfig/network-scripts/ifcfg-eth0),配置 IP、网关和 DNS,这样重启也能保持网络配置。

相关推荐
im_AMBER2 小时前
Leetcode 47
数据结构·c++·笔记·学习·算法·leetcode
我命由我123452 小时前
Java 并发编程 - Delay(Delayed 概述、Delayed 实现、Delayed 使用、Delay 缓存实现、Delayed 延迟获取数据实现)
java·开发语言·后端·缓存·java-ee·intellij-idea·intellij idea
北城以北88882 小时前
SSM--MyBatis框架之缓存
java·缓存·intellij-idea·mybatis
kyle~2 小时前
算法数学---差分数组(Difference Array)
java·开发语言·算法
曹朋羽2 小时前
Spring EL 表达式
java·spring·el表达式
Jonathan Star3 小时前
MediaPipe 在Python中实现人体运动识别,最常用且高效的方案是结合**姿态估计**(提取人体关键点)和**动作分类**(识别具体运动)
开发语言·python·分类
沐浴露z3 小时前
详解JDK21新特性【虚拟线程】
java·开发语言·jvm
山顶听风3 小时前
分页条初始化
python
No0d1es3 小时前
电子学会青少年软件编程(C/C++)1级等级考试真题试卷(2025年9月)
java·c语言·c++·青少年编程·电子学会·真题·一级