一、面试通过的公司:
上海-抖音
上海-得物
南京-希音
南京-荣耀
天津-中科曙光(缺人,聊聊天就过了)
北京-中国电投
还有一些杂七杂八的小公司
有想去这些公司的私聊我,详细介绍
二、面试经验总结
缺人的基本随便聊聊就过了,不缺人的四五面都过不了
云账户的面试官是个女的,全程不带笑的,非常的傲慢
小米的最后一面是个研发,真实服了,找个研发面测试,还不是让写代码的,问了好多泛泛的问题,比如如何测试一个商城系统,当时我就懵逼了,这TM一天也回答不完呀,根本聊不到一块去,挂了
三、面试题(不记得哪个题是哪家公司问的了)
1、自我介绍 - 简历
2、业务介绍 - 项目
3、你再项目中做的啥,为啥这样做(业务痛点)
4、如果带外包:必问如何把控外包的测试质量 - 需求覆盖率,用例覆盖率,代码覆盖率,自动化覆盖率,测试左移,研发单测覆盖率
5、移动端测试基本框架:比如让测试腾讯会议,从下面几个方便套用就行
功能测试:测试客户端应用程序是否满足预期的功能需求,并验证应用程序的输入、输出和返回结果是否正确。
用户界面测试:测试客户端应用程序的用户界面是否易于使用、美观、一致,并符合用户需求和预期。
兼容性测试:测试客户端应用程序在不同的操作系统、设备、浏览器等环境下的兼容性,以确保应用程序可以在不同的环境中正常工作。
性能测试:测试客户端应用程序的性能表现,例如测试响应时间、吞吐量、并发数等。
安全测试:测试客户端应用程序是否存在安全漏洞,例如密码明文传输、信息泄露等,以及是否符合安全规范和标准,例如 OAuth、SSL、TLS 等。
自动化测试:使用自动化测试工具对客户端应用程序进行自动化测试,以提高测试效率和测试覆盖率。
6、个人未来发展规划,离职原因:1+6+N
7、自动化框架
移动端:Appium:一种开源的跨平台 App 自动化测试框架,支持 iOS 和 Android 平台的应用程序。使用 Appium,可以使用多种编程语言编写测试脚本,例如 Java、Python、Ruby 等,也支持多种测试框架,例如 TestNG、JUnit 等。
UI Automator:一种由 Google 提供的 Android 自动化测试框架,用于测试 Android 应用程序。使用 UI Automator,可以编写 Android 应用程序的自动化测试脚本,例如测试界面布局、控件状态、用户交互等。
Espresso:一种由 Google 开发的 Android 应用程序自动化测试框架,用于测试 Android 应用程序的 UI。Espresso 支持多种编程语言编写测试脚本,例如 Java、Kotlin 等,也支持多种测试框架,例如 JUnit、TestNG 等。
XCTests:一种由 Apple 提供的 iOS 应用程序自动化测试框架,用于测试 iOS 应用程序。XCTests 支持多种编程语言编写测试脚本,例如 Objective-C、Swift 等,也支持多种测试框架,例如 XCTest、EarlGrey 等。
Robot Framework:一种通用的自动化测试框架,可以用于测试不同类型的应用程序,例如 Web 应用程序、移动应用程序等。Robot Framework 支持多种测试库和插件,可以方便地扩展其测试功能。
8、写个sql,求每个班级每个课程的前三名的分数,踩坑:在没有告诉表名的情况下别用table作为表名
SELECT c.course, b.class, s.name, co.score
FROM (
SELECT course_id, student_id, score, RANK() OVER(PARTITION BY course_id ORDER BY score DESC) AS rank
FROM c
) AS co
JOIN b ON co.student_id = b.id
JOIN a AS s ON b.name = s.name
JOIN (
SELECT id, course
FROM c
GROUP BY id, course
) AS c ON co.course_id = c.id AND c.course = c.course
WHERE co.rank <= 3
ORDER BY c.course, b.class, co.score DESC;
9、如何衡量自动化的好坏: 稳定性,bug拦截率
10、HTTP和HTTPS的区别
11、MySQL的几种引擎,各种锁
12、音评论功能的测试用例设计
13、编程题:
求abcabc的最大回文数,abc,长度是3,需考虑:abba
循环链表的判断,双指针
数组【1,2,4,5,3】能够拼接的最大数
找出最长子数组
常见的排序算法
14、java常见的异常,常见的输出流
15、ArrayList 和 LinkedList
16、hashmap的实现原理
17、如何复用线上的数据
18、压测数据如何不影响线上数据
以下是一些计算机基础场景下常见的面试题:
什么是操作系统?它的主要功能是什么?
解释一下进程和线程的区别。
什么是死锁?如何避免死锁?
什么是数据库索引?为什么要使用索引?有哪些常见的索引类型?
解释一下数据库事务的ACID特性。
什么是HTTP协议?它的工作原理是什么?常见的HTTP状态码有哪些?
解释一下HTTP和HTTPS的区别。
什么是RESTful API?它的特点是什么?
什么是缓存?为什么要使用缓存?常见的缓存策略有哪些?
解释一下TCP/IP协议栈的各个层级。
什么是数据结构?举例说明一种常见的数据结构及其应用场景。
解释一下栈和队列的特点,并给出它们的应用示例。
什么是哈希表?它的查找和插入操作的时间复杂度是多少?
解释一下二叉树和二叉搜索树的特点,并给出它们的应用场景。
什么是算法的时间复杂度和空间复杂度?请举例说明如何计算它们
以下是字节跳动三面常见的面试题:
介绍一下项目中遇到的难点,以及如何解决。
如何优化一张图片的加载速度?
解释一下 HTTP 缓存的原理和机制,以及缓存的分类。
介绍一下线程池的原理,以及如何合理地配置线程池。
介绍一下分布式系统中的一致性协议,例如 Paxos 或 Raft。
解释一下数据库的 ACID 特性,以及如何实现事务的隔离性。
介绍一下负载均衡的原理,以及如何实现负载均衡。
如何实现分布式锁,以及如何解决分布式锁的各种问题?
如何设计一个高并发的系统?介绍一下架构和关键技术。
解释一下 JVM 的内存模型,以及如何调优 JVM。