文章目录

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.

更多推荐