软件测试开发常见面试题整理二

其他面试问题:
1、Jmeter如何实现数据关联
通过以下几种方法:返回是JSON格式,可以用后置处理器-JSON提取器;返回不是JSON格式,可以用后置处理器-正则表达式处理器;

5、tail -f和tail -F区别?
-f是对文件内容进行跟踪,-F是对文件名进行跟踪,文件删除或改动后-F还能跟踪,-f不行

6、数据库插入、更新语句?
INSERT INTO tablename(列名…) VALUES(列值);
UPDATE student SET age=18 WHERE name='赵;

7、如何查看数据库索引是否生效?
通过explain +  查询语句的方法,查看返回结果,重点关注:type【查表的联接类型】,key【最终选择的索引】

8、count(1)与 count(*)count(列表)的区别? 
.count(1)和count(*)速度上没有区别,建议用count(*),sql会去自动优化;
.count(1)和count(指定字段)区别:count(1)会统计表中所有记录数,包括null的记录,count(列表)不会统计;在效率上,列名为主键,count(指定字段)会比count(1)快,列名不为主键,count(1)会比count(列表)快

9、印象深刻的BUG
1)人脸轨迹跟踪时候抓拍人脸并录制轨迹,结果轨迹录像只拍到侧脸和后脑勺,影响使用效果,改成录像预录30秒,这样才有正脸。
2)实时上墙情况下,报警联动上墙,联动1个视频会占据一块屏幕,当没有剩余屏幕时,会覆盖最先上墙的屏幕,但当联动视频数量超过剩余屏幕数量情况下,出现剩余屏幕上墙,但是多于的联动视频不会出现覆盖最先上墙的屏幕。
3)问题定位:报警联动呼叫无法呼叫成功?首先,排查报警预案配置,确保配置正确,其次,MQ抓包,查看报警是否上报,且上报的消息体是否正确,之后,查看报警管理服务后台日志,验证报警是否入库成功,之后再看报警联动的服务CLU日志,验证是否收到联动消息通知,如果有再去查看有无下发给IMDS服务的执行呼叫信息,发现IMDS有收到执行呼叫的信息,还有报错信息,未找到主叫话机,查看话机type类型都为0,0为被叫,呼叫失败。原因是预按入库时将主叫类型搞错。


10、数据库死锁
死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态
解决死锁问题的关键就是:让不同的session加锁有次序


12、项目中遇到的困难?
第一:项目周期紧,人力不足?解决办法:调整测试策略,用例裁剪;运行自动化;
第二:问题归属不清晰,开发扯皮?拉群沟通,确定责任人;
第三:自动化实现方式有困难?查找资料;

13、http和HTTPS的区别?
第一、https比http更加安全,传输加密;
第二、https需要CA证书;
第三、http端口号为80,https端口号为443;
第四、http工作于应用层,https工作于传输层;

14、http长连接和短链接的区别?
14.1 HTTP/1.0使用短链接,HTTP/1.1默认使用长连接。

14、cookies、session和token的鉴权机制?
区别:
14.1 cookie:首次登陆后服务端生成专属cookie,返回给客户端,存储到浏览器cookie中,二次请求会带上浏览器中cookie,由服务器进行比较鉴权;
14.2 session:依赖cookie,首次登陆后生成一个session存储在服务器内存中,返回1个sessionID给客户端,存到浏览器cookie中;二次请求时带上sessionID,由服务器进行比较鉴权;
14.3 token:首次登陆后生成一个token存储在服务端硬盘当中,由数据库管理并将加密后的签名token返回客户端。二次请求时带上token,由服务器进行比较鉴权;

15、GET和POST请求区别?
.GET请求参数拼接到URL,POST请求参数在body中;
.GET请求的数据限制2K,POST请求无限制;
.GET主要是从服务器获取数据,POST主要是向服务器添加数据;

16、从输入URL到打开网页经历哪些过程?
.解析URL,检测是否合法
.检查浏览器缓存,如果有则直接打开
.DNS域名解析,获取IP地址
.浏览器与服务器进行TCP连接
.连接成功后发送HTTP请求
.服务器响应并返回数据
.浏览器进行页面数据渲染

17、redis的优势?
介绍:redis是一种非关系型数据库,介于服务器端和数据库的中间层。一般把数据库查询耗费时间长,而且长时间无变化的数据放到redis中,这样可以直接从redis中查询数据。
优点:读取速度快;分担数据库压力;
缺点:断电后缓存数据会消失;
数据类型:字符串、哈希、列表、无序集合、有序集合

17.1、Redis缓存击穿
原因:大量请求访问缓存中过期的key,会导致请求都去直接访问数据库,短时间造成数据库崩溃;
解决方法:热点key保活;添加互斥锁,只留一个线程去访问数据库,并将数据添加到缓存中,其他线程从缓存获取数据;
17.2、Redis缓存穿透
原因:访问一个不存在的key,由于缓存中不存在这个key,导致会去查数据库,造成数据库压力;
解决方法:将空key添加到缓存,或者增加鉴权
17.3、缓存雪崩
原因:缓存服务器宕机或同时大量key过期
解决方法:缓存服务器做高可靠;key过期时间打散;

18、TCP的粘包和拆包
现象:一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和粘包问题。
原因:应用程序写入数据字节大于套接字缓冲区的大小;
解决方法:消息固定长度;在包尾增加特殊字符进行分割;

19、什么是SSL?https是如何保证数据传输的安全?
介绍:HTTPS使用SSL协议,SSL是一种用于加密和验证客户端和服务器端之间发送的数据的协议;SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

20、Owasp TOP 10【排名前10的漏洞】
1)SQL注入
2)破解认证
3)敏感数据暴露
4)XML外部实体(XXE)
5)失效访问控制
6)错误安全配置
7)跨站脚本(xss)
8)不安全的反序列化
9)使用已知漏洞的组件
10)日志记录和监视的不足

21、关键信息存储本地注意点?
1)数据备份和还原
2)用户权限、身份验证
3)实时监控

22、TCP如何保证可靠传输?
三次握手。
将数据截断为合理的长度。应用数据被分割成 TCP 认为最适合发送的数据块(按字节编号,合理分片)
超时重发。当 TCP 发出一个段后,它启动一个定时器,如果不能及时收到一个确认就重发
确认应答:对于收到的请求,给出确认响应
校验和:校验出包有错,丢弃报文段,不给出响应
序列号:对失序数据进行重新排序,然后才交给应用层
丢弃重复数据:对于重复数据 , 能够丢弃重复数据
流量控制。TCP 连接的每一方都有固定大小的缓冲空间。TCP 的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。
拥塞控制。当网络拥塞时,减少数据的发送。

23、URL和URI的区别及理解
    URL:定位资源的主要访问机制的字符串
    URI:标识抽象或物理资源的紧凑字符串


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值