测试开发工程师面经准备
文章目录
- 1.面试问对安卓体系技术栈的了解
- 2.在学习经历中对数学的学习情况和理解
- 3.哪些操作用到了数学的积分和矩阵
- 4.英语这方面在计算机相关工作中哪些场景会用到
- 5.临场说一下和计算机相关的英语
- 6.数据结构中的二叉树介绍一下特征和使用场景
- 7.有向图,无向图这个数据结构介绍一下?介绍一下深度优先搜索算法的逻辑思路
- 8.脚本语言python和编译语言java之间的差异介绍下
- 9.面试问:将来做手机,嵌入式这一块,可能工作中用到python会比较少,你有什么看法
- 10.测试的生命周期介绍一下?每个流程都说一下要干嘛?
- 11.单元测试,集成测试,系统测试和验收测试这几个节点对应的测试内容是什么?
- 12.内存溢出有什么原因,怎么预防
- 13.针对一个生成三角形的函数,如何设计测试用例
- 14.为什么投传音?
- 15. 面试问对加班的看法如何回答
- 16.提交bug后我怎么做
- 17.对测试和测开的理解
- 18.死锁的原因
- 19.对自己的性格评价
- 20.面对压力,如何缓解
- 21.讲解下java的oop
- 22. 类加载机制讲解下
- 23.volatile为什么可以做到保证线程间的可见性和禁止指令重排序
- 24.如何搭建一个测试环境
- 25.测试和开发争论如何解决
- 26.测试之前如何对需求进行拆解
- 27.前期需求的理解与开发达成一致,为什么在测试过程中仍然会有对需求的争论
- 28.测试用例如何去写
- 29.缺陷如何定位
- 30元素定位的方式
- 31.查找文件的命令
- 32.如何避免内存泄露
- 33. Python中的装饰器用过吗?讲一下什么是装饰器,有哪些应用场景
- 34.进程间的通信方式,面试如何回答
- 35.
1.面试问对安卓体系技术栈的了解
安卓相关的技术有点久了,记得本科阶段做过xml的布局界面设计,activity绑定事件相关的,不过时间有点久,现在做的主要是java和python相关的。然后了解uniapp也可以实现安卓开发
2.在学习经历中对数学的学习情况和理解
数学主要是对逻辑思维的抽象和理解,对后续的学算法和编程有一定的帮助,然后的话对于分析测试场景下更容易考虑到边界情况
3.哪些操作用到了数学的积分和矩阵
比如图片的旋转缩放平移用到矩阵变换和计算。
积分在神经网络的计算,比如梯度下降计算等中应用
4.英语这方面在计算机相关工作中哪些场景会用到
阅读一些官方文档,理解报错信息,阅读科研论文
5.临场说一下和计算机相关的英语
I used MySQL for data storage.
I’m debugging the program.
I use Git for version control.
6.数据结构中的二叉树介绍一下特征和使用场景
每个节点最多有两个子节点。比如二叉搜索树按照中序遍历顺序可以实现高效查找,比如高级数据结构红黑树用在了hashmap的底层实现中
7.有向图,无向图这个数据结构介绍一下?介绍一下深度优先搜索算法的逻辑思路
图是一种由顶点和边组成的数据结构,用来表示节点间的关系。有向图的边有方向,无向图的边没有方向,深度优先搜索指的是从一个节点考试,尽可能深入的访问节点,如果不行就回溯到上一个节点继续遍历。
8.脚本语言python和编译语言java之间的差异介绍下
python是一种脚本语言,属于解释性语言,代码运行时由解释器执行,开发效率高,语法简洁
java属于编译型语言,代码需要编译成字节码再给jvm执行,运行速度快,安全性高
9.面试问:将来做手机,嵌入式这一块,可能工作中用到python会比较少,你有什么看法
语言只是工具,重点是解决问题的方法和思路,即使用的少,掌握了也能提高效率
10.测试的生命周期介绍一下?每个流程都说一下要干嘛?
需求分析:理解产品需求、确定测试范围和测试目标。
测试计划:指定整体的测试策略和资源安排
测试用例设计:根据需求设定具体的测试步骤和输入输出
测试环境搭建:提供测试需要的软硬件环境
测试执行:按照用例执行测试,发现缺陷
缺陷管理:用缺陷管理工具管理缺陷
测试结束:总结,评估
11.单元测试,集成测试,系统测试和验收测试这几个节点对应的测试内容是什么?
单元测试针对单个模块或函数,看看内部逻辑是否可用
集成测试关注模块和模块之间的交互是否正常
系统测试对整个系统进行功能,性能和安全等方面的全面验证
验收测试则是最终交付前,由用户或业务方验证系统是否满足需求,是否正常可用
12.内存溢出有什么原因,怎么预防
内存溢出有三类原因:程序本身占用内存大,对象不被使用但是仍然被引用,无法被垃圾回收,栈溢出,递归导致栈空间耗尽
解决:设计合理的数据结构,对象不被使用就释放,java可以适当调大jvm堆内存或使用内存分析工具进行内存分析
13.针对一个生成三角形的函数,如何设计测试用例
对于一个生成三角形的函数,我会先做等价类划分,包括有效三角形和无效三角形两类,然后针对三角形类型再细分等边、等腰、普通三角形。
同时考虑边界值,比如边为0、负数、非常大或非常小的数,以及异常输入。
14.为什么投传音?
传音控股专注于海外市场的智能手机和移动终端,尤其在非洲和新兴市场有很强的市场占有率。同时自己对测试开发非常感兴趣,希望在这样的环境中不断学习和成长
15. 面试问对加班的看法如何回答
为了项目进度,可能需要加班,我可以适应这种情况,当然也要合理规划自己的时间安排和提高效率。
16.提交bug后我怎么做
1.及时跟踪Bug的修复情况
2.bug修改完成后做回归测试
17.对测试和测开的理解
测试主要负责功能验证,接口测试,系统测试,关注的是功能正确性用户体验。测试开发工程师关注测试工具和自动化框架开发
18.死锁的原因
概念:多个线程相互争抢资源导致相互等待。
互斥条件:资源同一时刻只能被一个线程占有
占有且等待:线程持有某些资源,同时又请求其他资源
循环等待:多个线程形成环形等待资源
19.对自己的性格评价
工作中喜欢提前指定计划,注重效率和质量
20.面对压力,如何缓解
首先分析问题的根源,将大任务拆解为小目标,逐步解决,同时适当的安排运动
21.讲解下java的oop
主要通过封装,继承,多态和抽象实现高内聚低耦合的软件设计。封装是把数据和方法隐藏在对象内部,继承的话实现代码重用和系统扩展,多态指的是同一个接口有不同的实现,提高灵活性。抽象是为了提取共性,便于统一管理
22. 类加载机制讲解下
加载,链接,初始化。加载的话:把.class文件加载到jvm内存中。链接主要完成字节码的验证,为静态变量分配内存和解析符号引用。同时遵循双亲委派模型
23.volatile为什么可以做到保证线程间的可见性和禁止指令重排序
主要是对变量的修改,volatile会立刻把他刷新到主存中
24.如何搭建一个测试环境
1.环境准备,确定需要的一些软件和中间件
2.代码部署,git拉代码,编译打包后部署到测试服务器
3.数据库初始化:导入测试数据
4.配置调整,配置文件指向测试环境
5.验证
25.测试和开发争论如何解决
我会用事实和数据说明问题,比如提供日志、截图、复现步骤等,避免主观争执。
如果确实存在分歧,就请产品或负责人一起确认需求,以结果为导向达成一致。
26.测试之前如何对需求进行拆解
首先阅读需求文档,理清主要功能和业务逻辑。
然后把需求拆解为模块,功能点和边界,确保每个功能的输入输出和异常情况
最后根据拆解的结果设计测试用例
27.前期需求的理解与开发达成一致,为什么在测试过程中仍然会有对需求的争论
我认为这类争议不可避免,因为测试需要考虑的点会更加全面,如果发生了需要记录复现步骤,截图等,确保实现逻辑和业务一致。最后需要把这些建议沉淀到下次的需求评审中。
28.测试用例如何去写
拆解功能点,明确输入输出和预期结果。然后结合响应的测试方法,比如等价类划分,边界值等设计思路,从功能、性能兼容性维度编写测试用例
29.缺陷如何定位
发现缺陷会通过接口请求,数据库数据是否正常等判断问题出现的缓解。
首先判断前端显示问题,浏览器F12看下返回数据是否正常,看对应报错信息
如果是接口问题,通过postman复现请求,看看参数和返回值是否正确
如果是数据问题,就到数据库看数据是否存在问题
30元素定位的方式
id选择器,class, 标签
31.查找文件的命令
find
which 查找命令的执行路径
32.如何避免内存泄露
及时关闭释放资源,用弱引用以及检测工具避免
33. Python中的装饰器用过吗?讲一下什么是装饰器,有哪些应用场景
类似于java中的aop,在不修改原来函数的情况下,动态的增加函数的功能。
比如说加日志,以及flask定义路由都用到了
34.进程间的通信方式,面试如何回答
管道适合传输数据,消息队列,共享内存(访问同一块数据)
35.
更多推荐


所有评论(0)