B站测试开发面试 2020/5/13
1、python语法篇
元组和列表的区别
列表和元组是Python中最常用的两种数据结构,字典是第三种。 相同点:
- 都是序列
- 都可以存储任何数据类型
- 可以通过索引访问
(1)语法差异
使用方括号[]创建列表,而使用括号()创建元组。
(2)是否可变
列表是可变的,而元组是不可变的,这标志着两者之间的关键差异。
我们可以修改列表的值,但是不修改元组的值。
由于列表是可变的,我们不能将列表用作字典中的key。 但可以使用元组作为字典key。
(3)大小差异
Python将低开销的较大的块分配给元组,因为它们是不可变的。 对于列表则分配小内存块。 与列表相比,元组的内存更小。 当你拥有大量元素时,元组比列表快。列表的长度是可变的。
单例模式
参考https://www.cnblogs.com/huchong/p/8244279.html
浅拷贝和深拷贝
https://i.cnblogs.com/posts/edit;postId=12901110
有没有写过爬虫
对requests库的了解程度
2、自动化篇
自动化是否能做到100%,那些用例能自动化,哪些不能自动化
UI自动化断言一般做啥
3、性能篇
性能拐点
App出现Crash的原因
monkey的原理,除了monkey可以做稳定性测试,还有什么东西可以做稳定性测试
4、代码篇
有没有做过代码review
有没有从代码层面找到过bug出现的原因
5、sql篇
mysql 索引
6、CI/CD
CI/CD的流程和作用
构建方式有哪些
7、测试流程
介绍一下你们公司的发版流程
回归测试覆盖率是多少
8.软件出错的可能原因排查
1.客户投诉 英语流利说APP 懂你英语课程(或其他APP功能) 请求失败,分析可能的原因以及解决方案
原因:网络出错。 解决方案:检查手机网络状况
原因:错误的请求。 解决方案:查看前端是否出现意外的bug导致请求出错。
原因:服务器忙等。解决方案:使用高并发处理请求。
原因:客户权限出现问题。解决方案:检查客户是否已登录,或者具有权限。
原因:服务器后台接口出错。解决方案:查看后台接口运行情况。
原因:前端处理数据出错。解决方案:查看前端代码逻辑。
原因:版本升级导致的接口更换。解决方案:查看版本号和先版本号的差异。
原因:服务器无返回数据。解决方案:检查数据库状态。
原因:请求超时。解决方案:查看是否出现请求超时的情况。
原因:服务器掉线。解决方案:重启服务器。
原因:前端逻辑出错。解决方案:查看服务器逻辑。
原因:机主强制关闭
测试开发面试题(2020/5/19)
1、网络协议
http和 https的区别
get和post的区别
cookie和session
前三题参考https://i.cnblogs.com/posts/edit;postId=12850891
三次握手、四次挥手
TCP和UDP的区别
后两题参考:https://i.cnblogs.com/posts/edit;postId=12298702
2、算法
快排、冒泡排序
参考:https://www.cnblogs.com/crystal1126/p/12877202.html
3、python语法篇
单例模式
进程和线程的概念,python能实现真正意义上的多线程吗?
4、其他概念
堆栈?对象的实例是存在哪里?
内存泄露
死锁
adb命令用过些啥
5、linux命令
有没有用过linux命令?
6、数据库相关
索引
有没有设计过表
7、python中的静态方法和类方法
英语流利说电话面试
1、测试计划的内容
测试计划详细内容参考:https://www.cnblogs.com/finer/p/9170490.html
数组和ArrayList的区别
Hashmap和TreeMap的区别
泛型的概念
jemter如何引用外部的java文件
迭代器的概念
数据库连接的概念,左连接和右连接的区别
对一个推荐功能设计用例
websocket和http的区别
python匿名函数 : 两个列表中的值相加得到另一个列表
with的作用
匿名函数:两个列表相加
list1=[1,2,3,4,5,6] list2=[2,3,4,5,6,6,7,8] #列表推导式 list3=[i+j for i,j in zip(list1,list2)] for i in list3: print(i) print("---------------") #匿名函数 a=map(lambda x,y:x+y,list1,list2) for i in a: print(i)
一个list列表中,计算三个数相加之和为0,并去除重复的数据。
def test(list): result=[] for i in range(len(list)-2): j=i+1 k=len(list)-1 while(j<k): if(list[i]+list[j]+list[k]<0): j+=1 elif(list[i]+list[j]+list[k]>0): k-=1 elif(list[i]+list[j]+list[k]==0): result.append((list[i],list[j],list[k])) print("[%s,%s,%s]"%(list[i],list[j],list[k])) k-=1 return result a=[-1,0, 1, 2,-1,4] a.sort()#排序 result=test(a) print(list(set(result)))#去重
websocket和socket的区别