当前位置: 首页 > news >正文

腾讯云智测试开发面经

1、投递时间线

2.20投递简历,3.11第一轮面试,3.30第二轮面试,4.4第三轮面试,4.10第四轮面试,4.11offer意向书

2、第一轮面试

第一轮面试技术面,面试官是导师,面试时长40多分钟

1)自我介绍

2)数组和列表的区别

3)了解哪些数据库

4)进程和线程的区别

5)了解哪些Linux命令,有没有接触过Linux操作系统

6)深挖项目,用到的数据集是多大,怎么采集以及怎么处理,最后的模型结果怎么样

7)为什么要投递测试开发这个岗位?你觉得你的优势是什么

8)目前你对测试开发这个岗位的了解是什么,你掌握了哪些测试知识

9)黑盒测试和白盒测试的区别

10)了解SQL语句吗?当时给了一个场景, 写出select查询语句

11)手撕代码。给一个数组和目标值,找出该数组中和为目标值的两个数

12)反问

2) 数组和列表的区别

  • 数组:在Python中,数组(array)是array模块提供的,它只能存储相同类型的元素,并且对数值型数据更有效率。数组的大小固定。
  • 列表:Python中的列表(list)是一个动态数组,可以存储不同类型的元素,并且可以根据需要自动扩展大小。

3) 了解哪些数据库

  • 可以提及关系型数据库如MySQL、PostgreSQL,以及非关系型数据库如MongoDB、Redis等。强调你最熟悉的数据库及其应用场景。

4) 进程和线程的区别

  • 进程:是操作系统分配资源的基本单位,每个进程有自己的内存空间。
  • 线程:是进程内的执行单元,共享进程的资源。线程之间的切换比进程快,但线程间通信更容易出现同步问题。

5) 了解哪些Linux命令,有没有接触过Linux操作系统

  • 提及一些常用的Linux命令如lscdcpmvgrepawksedfindchmodchown等。说明你在Linux环境下进行开发的经验,比如部署应用、管理服务等。

6) 深挖项目

  • 准备好详细介绍你参与过的项目,包括使用的数据集规模、采集方法、处理流程、模型训练过程和最终结果。使用具体数字来支持你的描述,例如数据集大小、准确率提升等。

7) 为什么要投递测试开发这个岗位?你觉得你的优势是什么

  • 强调你对该领域的兴趣、个人技能与岗位要求的匹配度以及你能为团队带来的价值。举例说明你如何解决问题的能力、学习新技术的速度等。

8) 目前你对测试开发这个岗位的了解是什么,你掌握了哪些测试知识

  • 简述测试开发的重要性,如自动化测试框架的设计与实现、持续集成/持续交付(CI/CD)流程的理解等。提及掌握的测试工具和技术,如Selenium、JUnit、TestNG等。

9) 黑盒测试和白盒测试的区别

  • 黑盒测试:关注软件功能,不考虑内部结构或工作原理,旨在验证软件是否满足需求。
  • 白盒测试:基于代码逻辑和路径覆盖,用于检查程序内部结构是否正确,常用于单元测试。

10) 了解SQL语句吗?

  • 根据给定场景编写SELECT查询语句。确保理解表结构、字段含义,并能写出有效的查询条件。
 
SELECT column1, column2 FROM table_name WHERE condition;

11) 手撕代码。给一个数组和目标值,找出该数组中和为目标值的两个数

  • 使用哈希表解决这个问题,时间复杂度O(n):
def two_sum(nums, target):
    num_map = {}
    for i, num in enumerate(nums):
        complement = target - num
        if complement in num_map:
            return [num_map[complement], i]
        num_map[num] = i
    return []

12) 反问

  • 关于公司文化、团队构成、未来的技术发展方向等问题,展示出你对加入公司的热情和对未来发展的思考。例如:“贵公司对于新入职员工有哪些培训计划?”或者“您能分享一下团队目前面临的最大挑战是什么吗?”

通过这些准备,你可以更好地应对面试中的各种问题,展现出自己的专业能力和求职诚意。


3、第二轮面试

第二轮面试是技术面,面试官是leader,面试时长30多分钟

1)自我介绍

2)问了专业,以及为什么会投递测试开发岗位

3)问了项目,介绍一下项目背景、项目难点以及项目结果,你在里面担任什么角色,遇到问题时怎么解决的(这里聊了好久)

4)针对于测试开发岗位,你学习了哪些内容或者你了解测试开发需掌握哪些技能

5)问了测试的一些基础知识,测试用例怎么写,有哪些方法

6)平时用的哪种编程语言

7) 面试官介绍了业务,问大数据平台了解哪些

8)了解云智吗

9)手撕代码。题目是无重复字符的最长字串,写完之后问了思路

10)反问

第二轮面试没过多问到八股文,可能由于我本科计算机,硕士是生物与医药,对专业比较好奇

1)自我介绍

回答建议

  • 简短介绍你的教育背景、专业方向以及与测试开发岗位相关的技能和经验。
  • 强调你在项目中的角色和贡献,尤其是与测试开发相关的部分。
  • 展现你对测试开发的兴趣和热情。

示例

"您好,我是XXX,毕业于XXX大学计算机科学专业。我的研究方向是软件工程和自动化测试,在校期间参与了多个项目的开发和测试工作。我熟悉Python和Java编程语言,并且对自动化测试框架如Selenium、Pytest有深入的理解。我对测试开发岗位非常感兴趣,因为它结合了开发和测试的优势,能够提升软件质量和效率。"

2)问了专业,以及为什么会投递测试开发岗位

回答建议

  • 结合你的专业背景和个人兴趣来说明为什么选择测试开发。
  • 强调你对测试开发的理解,例如如何通过自动化手段提高测试效率,减少人工成本。

示例

"我的专业是计算机科学,主要学习了软件开发、算法设计等课程。在学习过程中,我发现测试是软件开发生命周期中非常重要的一环,但传统手动测试效率较低,而测试开发可以通过编写自动化脚本大幅提高效率。我对这种结合开发与测试的工作方式非常感兴趣,因此选择了投递测试开发岗位。"

3)问了项目,介绍一下项目背景、项目难点以及项目结果,你在里面担任什么角色,遇到问题时怎么解决的

回答建议

  • 项目背景:简要描述项目的背景、目标和意义。
  • 项目难点:重点突出技术上的挑战或团队合作中的困难。
  • 项目结果:用具体数据说明项目的成果(如性能提升、错误率降低等)。
  • 你的角色:明确说明你在项目中的职责,以及你如何解决问题。

示例

"我参与了一个电商平台的自动化测试项目,目标是优化测试流程并减少人工测试成本。项目的主要难点是如何处理复杂的业务逻辑和频繁变更的需求。我负责设计和实现自动化测试框架,并编写了核心功能的测试用例。在遇到需求变更时,我通过模块化设计快速调整测试脚本,最终将测试时间从原来的8小时缩短到2小时,覆盖率达到95%以上。"

4)针对于测试开发岗位,你学习了哪些内容或者你了解测试开发需掌握哪些技能

回答建议

  • 提及你学习过的内容,如编程语言、测试工具、自动化框架等。
  • 强调你需要掌握的核心技能,如编程能力、测试理论、持续集成等。

示例

"为了胜任测试开发岗位,我学习了以下内容:

  • 编程语言:熟练掌握Python和Java,熟悉常用的库如unittest、pytest等。
  • 自动化测试工具:如Selenium、Appium,用于Web和移动端的自动化测试。
  • 测试理论:了解黑盒测试、白盒测试、回归测试等方法。
  • 持续集成:熟悉Jenkins的使用,能够将自动化测试集成到CI/CD流程中。
    我认为测试开发需要具备扎实的编程能力和测试理论基础,同时还需要熟悉敏捷开发和DevOps理念。"

5)问了测试的一些基础知识,测试用例怎么写,有哪些方法

回答建议

  • 测试用例的结构:包括测试标题、前置条件、输入、预期输出等。
  • 常用方法
    • 等价类划分:将输入划分为有效和无效等价类。
    • 边界值分析:测试输入的边界值。
    • 因果图法:分析输入和输出之间的因果关系。
    • 场景法:基于用户操作场景设计用例。

示例

"测试用例的设计通常遵循以下步骤:

  1. 明确测试目标:确定需要验证的功能点。
  2. 划分等价类和边界值:覆盖所有可能的输入情况。
  3. 编写用例:包括前置条件、输入数据、执行步骤和预期结果。
    比如,测试登录功能时,可以设计以下用例:
  • 输入正确的用户名和密码,验证是否成功登录。
  • 输入错误的用户名或密码,验证是否有提示信息。
  • 不输入任何内容直接点击登录按钮,验证是否有校验提示。"

6)平时用的哪种编程语言

回答建议

  • 提及你最熟悉的编程语言,并说明你在测试开发中的应用。

示例

"我平时主要使用Python进行开发和测试,因为它语法简洁,适合快速开发自动化脚本。此外,我也熟悉Java,尤其是在处理企业级应用时会用到Spring等框架。"

7)面试官介绍了业务,问大数据平台了解哪些

回答建议

  • 如果你了解大数据平台,可以提及Hadoop、Spark、Flink等技术栈。
  • 如果不了解,可以坦诚说明,但表达出学习的兴趣。

示例

"我对大数据平台有一定的了解,比如Hadoop用于分布式存储和计算,Spark则提供了高效的内存计算能力。虽然我没有直接参与过大平台的开发,但我对这些技术很感兴趣,并希望有机会深入学习和实践。"

8)了解云智吗

回答建议

  • 如果了解,可以简单介绍云智的产品和服务(如云计算、人工智能解决方案等)。
  • 如果不了解,可以表示愿意进一步了解。

示例

"我对云智有一些了解,它是一家专注于云计算和人工智能技术的公司,提供从基础设施到智能应用的一站式服务。我对贵公司在AI领域的创新非常感兴趣,希望能加入团队共同成长。"

9)手撕代码。题目是无重复字符的最长子串,写完之后问了思路

代码实现

def length_of_longest_substring(s):
    char_index = {}
    max_length = 0
    start = 0
    for i, char in enumerate(s):
        if char in char_index and char_index[char] >= start:
            start = char_index[char] + 1
        char_index[char] = i
        max_length = max(max_length, i - start + 1)
    return max_length

思路解释

"这道题的核心是利用滑动窗口的思想,记录每个字符最近一次出现的位置。当遇到重复字符时,将窗口的起点移动到重复字符的下一个位置,从而保证窗口内的字符都是唯一的。通过不断更新最大长度,最终得到无重复字符的最长子串长度。"

10)反问

建议问题

  • 团队目前的技术栈是什么?未来是否有计划引入新的技术?
  • 贵公司在测试开发方面的自动化覆盖率如何?是否有专门的测试开发团队?
  • 您认为测试开发工程师在未来一年内需要重点关注哪些方面?

目的

  • 展现你对未来工作的思考和规划。
  • 获取更多关于职位和团队的信息,帮助你做出更好的决策。

4、第三轮面试

第三轮面试也是技术面,面试官是总监,面试时长30多分钟

1)自我介绍

2)get和post的区别

3)了解python,说一下迭代器和生成器的区别以及用法

4)深拷贝和浅拷贝的区别

5)读取一个内存很大的文件,应该怎么读取,这里问得非常详细,具体到怎么操作以及命令写法

6)手撕代码

7)反问

1)自我介绍

回答建议

  • 简明扼要地介绍自己的教育背景、专业技能和相关项目经验。
  • 强调与应聘职位相关的技术能力和成就。
  • 可以提及自己对技术的热情以及学习能力。

示例

"您好,我是XXX,毕业于XXX大学计算机科学专业。在校期间,我主要研究Web开发和后端技术,熟悉Python、JavaScript等编程语言。在实习期间,我参与了一个基于Django框架的电商平台开发项目,负责API设计和性能优化。我对新技术充满兴趣,喜欢通过不断学习提升自己。希望能加入贵公司,贡献我的技术能力并继续成长。"

2)GET 和 POST 的区别

回答建议: 从请求方式、用途、数据传递方式和安全性等方面进行对比。

示例

GET 和 POST 是 HTTP 协议中最常用的两种请求方法,它们的主要区别如下:

  • 用途:GET 用于获取资源,POST 用于提交数据。
  • 数据传递方式:GET 将数据附加在 URL 中(查询字符串),而 POST 将数据放在请求体中。
  • 安全性:GET 因为数据暴露在 URL 中,不适合传输敏感信息;POST 更安全。
  • 数据大小限制:GET 通常受浏览器 URL 长度限制,而 POST 没有明确限制。
  • 幂等性:GET 是幂等的(多次请求结果相同),POST 不是幂等的(可能会改变服务器状态)。

3)迭代器和生成器的区别以及用法

回答建议

  • 迭代器:是一个实现了迭代协议的对象,具有 __iter__() 和 __next__() 方法,用于遍历集合中的元素。
  • 生成器:是一种特殊的迭代器,使用 yield 关键字实现,可以暂停和恢复执行,适合处理大数据流或延迟计算。

示例代码

# 迭代器
class MyIterator:
    def __init__(self, data):
        self.data = data
        self.index = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.index >= len(self.data):
            raise StopIteration
        value = self.data[self.index]
        self.index += 1
        return value

# 生成器
def my_generator(data):
    for item in data:
        yield item

# 使用
iterator = MyIterator([1, 2, 3])
for i in iterator:
    print(i)

generator = my_generator([1, 2, 3])
for i in generator:
    print(i)

解释

  • 迭代器需要显式实现 __iter__() 和 __next__() 方法。
  • 生成器更简洁,使用 yield 关键字即可实现类似功能。

4)深拷贝和浅拷贝的区别

回答建议

  • 浅拷贝:只复制对象的第一层结构,内部引用类型的数据仍然共享。
  • 深拷贝:递归复制对象的所有层级,完全独立于原对象。

示例代码

python

import copy

original = [1, [2, 3], 4]

# 浅拷贝
shallow_copy = copy.copy(original)
shallow_copy[1][0] = 99
print(original)       # 输出: [1, [99, 3], 4]

# 深拷贝
deep_copy = copy.deepcopy(original)
deep_copy[1][0] = 88
print(original)       # 输出: [1, [99, 3], 4]

解释

  • 浅拷贝修改嵌套列表会影响原对象。
  • 深拷贝则不会影响原对象。

5)读取一个内存很大的文件,应该怎么读取

回答建议: 当文件过大无法一次性加载到内存时,应该采用逐行读取或分块读取的方式。

具体操作

  1. 逐行读取
    with open("large_file.txt", "r") as file:
        for line in file:
            process_line(line)  # 对每一行进行处理
  2. 分块读取
    chunk_size = 1024 * 1024  # 每次读取1MB
    with open("large_file.txt", "r") as file:
        while chunk := file.read(chunk_size):
            process_chunk(chunk)  # 对每一块进行处理

Linux命令: 如果是在Linux环境下,也可以使用命令行工具处理大文件:

  • 查看文件前几行:head large_file.txt
  • 查看文件后几行:tail large_file.txt
  • 分块处理:split -l 1000 large_file.txt small_file_(按行分割)

解释

  • 逐行读取适合处理文本文件,避免占用过多内存。
  • 分块读取适合二进制文件或其他需要批量处理的情况。

6)手撕代码

常见题目

  • 实现一个函数,判断字符串是否为回文。
  • 合并两个有序链表。
  • 找出数组中出现次数最多的元素。

示例

题目:判断字符串是否为回文。

def is_palindrome(s):
    s = ''.join(filter(str.isalnum, s)).lower()  # 去除非字母数字字符并转小写
    return s == s[::-1]

# 测试
print(is_palindrome("A man, a plan, a canal: Panama"))  # True
print(is_palindrome("race a car"))                     # False

技巧

  • 仔细阅读题目要求,确保理解清楚。
  • 先写出伪代码或逻辑框架,再逐步完善细节。
  • 注意边界条件和异常处理。

7)反问

建议问题

  • 您认为这个职位在未来一年内的核心挑战是什么?
  • 团队目前的技术栈是什么?未来是否有计划引入新的技术?
  • 贵公司在员工职业发展方面有哪些支持措施?

目的

  • 展现你的思考深度和对公司的兴趣。
  • 获取更多关于职位和团队的信息,帮助你做出更好的决策。

5、第四轮面试

第四轮面试是非技术面试,面试官是HR,面试时长20多分钟

1)自我介绍

2)目前手上有几个offer,分别是什么,意向怎么样

3)你的优点是什么

4)你的意向工作地点是哪里

5)你的父母是做什么的

6)你的职业规划是什么

7)谈谈你对云智的了解

8)如果给你发意向,你会接受吗

9)什么时候毕业,最快什么时候可以入职

10)反问

  1. 自我介绍

    • 简短介绍自己的教育背景、专业技能以及与应聘职位相关的实习或工作经验。
    • 强调个人特点,如团队合作精神、学习能力强等。
  2. 目前手上有几个offer,分别是什么,意向怎么样

    • 诚实地说明当前的状况,如果有其他offer也要如实告知,但强调对本次面试公司的兴趣更大。
    • 解释为什么对这些offer感兴趣或不感兴趣,突出你对该职位的匹配度和热情。
  3. 你的优点是什么

    • 结合具体实例说明自己的优点,比如解决问题的能力、适应力强或是优秀的沟通技巧。
    • 尽量选择与职位描述中提到的要求相吻合的优点。
  4. 你的意向工作地点是哪里

    • 根据实际情况回答,如果公司有多个办公地点,可以表示愿意接受安排或者表达对公司特定办公地点的兴趣。
  5. 你的父母是做什么的

    • 这个问题可能是在了解你的家庭环境对你职业选择的影响。简要介绍即可,重点在于展示家庭背景如何影响了你的职业规划和个人价值观。
  6. 你的职业规划是什么

    • 展现清晰的职业目标和发展路径,同时表明这份工作在你职业生涯中的位置和作用。
    • 可以提及希望在未来几年内达到的具体成就或职位。
  7. 谈谈你对云智的了解

    • 在面试前做好功课,研究公司的历史、产品和服务、市场地位及企业文化。
    • 分享你对公司使命、愿景的理解,并解释为何这些吸引了你。
  8. 如果给你发意向,你会接受吗

    • 表达积极的态度,但也可以适当保留一些空间,例如说你需要时间考虑细节(如薪酬待遇、职位职责等)。
  9. 什么时候毕业,最快什么时候可以入职

    • 准确提供毕业时间和预计可入职的时间点,表现出准备充分且对加入公司的期待。
  10. 反问

    • 提出关于公司文化、团队结构、未来发展方向等方面的问题,显示你对公司有兴趣深入了解,并且关心自己能否融入新环境。


 

http://www.dtcms.com/a/107095.html

相关文章:

  • javaSE————网络原理
  • 从吉卜力漫画到艺术创造:GPT-4o多种风格绘图Prompt大全
  • Redisson 操作 Redis Stream 消息队列详解及实战案例
  • HttpClient-03.入门案例-发送POST方式请求
  • Dell G16 7620克隆硬盘 扩容
  • 移远RG200U-CN模组适配问题
  • OpenCV 图形API(7)用于将笛卡尔坐标(x, y)转换为极坐标(magnitude, angle)函数cartToPolar()
  • 【编程之路】按指定大小合并数据块
  • 局域网内便捷实现多设备文件共享方法
  • 【论文阅读】Anchor Graph Network for Incomplete Multiview Clustering
  • 【django】3 (django路由) 路由配置和反向解析
  • Python•输入输出基本运算
  • 浏览器指纹攻防技术深度解析:从多账号隔离到自动化矩阵架构设计
  • UG NX二次开发(C#)-采用Open/C与NXOpen获取曲线的长度
  • 【dp】有序三元组中的最大值 I
  • 关于依赖注入框架VContainer DIIOC 的学习记录
  • 壹起航:引领中国工厂迈向全球市场的先锋
  • 【蓝桥杯】每日练习 Day19,20
  • es分页边界数据重复问题处理
  • 【ArcGIS微课1000例】0142:如何从谷歌地球保存高清影像图片
  • 开发技巧 flex 布局,使用 gap 设置 flex 项目之间的间距
  • cursor的.cursorrules详解
  • Uniapp 实现微信小程序滑动面板功能详解
  • Graph RAG 面 —— 一种 基于知识图谱的大模型检索增强实现策略
  • 基于Flask框架的动漫推荐系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • Oracle慢查询日志
  • 4月2日工作日志
  • C++__list
  • 第十二章网络规划设计
  • 《系统之美》读后感