分享|华为测试OD岗面试流程

作者:DLAM

链接:leetcode.cn/circle/discuss/XpySJs/

抱着试一试的心态,面试了华为的OD岗位,误打误撞进入了总决赛,记录一下给各位友友,流程大概一个月,职级定D3,薪酬22K,坐标深圳龙岗,除了测试,前后端均内推捞捞人。

面试整体流程

机考(7.4)

机考成绩(7.9)

性格测试(7.16)

人力资源面(7.19)

技术两轮面(7.24上下午两轮)

两轮技术面完全独立,二面面试官不知道一面评价。

面试流程:准备自我介绍+复盘项目经历+背背八股文+手撕代码。

面试过程积极互动,可以引导面试官,展示自身优势的部分。

每轮都有手撕代码,多和面试官沟通,可以询问思路,实在撕不出来可以申请换题。

技术面试注意事项:

1.准备带有摄像头的电脑,面试过程中需开启摄像头

2.面试邮件中有会议软件,需提前下载安装

3.面试中需开启投屏,便于面试官手撕代码环节截图

技术加面(7.27 两轮评级不一致,加面)

技术复核(7.29)

业务主管面(8.2)

谈薪资和定级(8.5)

技术一面:

1.coding:80. 删除有序数组中的重复项 II
2.面试问题:

业务

测试用例由哪几个关键要素组成?

怎样才能写出一个好的自动化测试用例?

从需求到生产上线,中间包含哪些流程?

测试报告的目的是什么?

时间 人力 质量风险

TP90含义

测试覆盖率和漏测率提升,如何评判?

Python基础

单继承和多继承区别?

类方法,实例方法,静态方法区别?

python中如何反转字符串?

数据库

gruopby一般是在用在什么条件?如果指定条件的话,用什么关键字对分组进行指定条件?

左连接和右连接的区别?

技术二面

1.业务问题?

1.测试过程中针对HMI测试用例设计不完善导致漏测的,介绍一下?举一个实际的用例?

面试官觉得我回答的内容太虚了,没有具体到那个点上

2.手撕代码 coding:字符统计及重排

【字符统计及重排】给出一个仅包含字母的字符串,不包含空格,统计字符串中各个字母(区分大小写)出现的次数,并按照字母出现次数从大到小的顺序输出各个字母及

其出现次数。如果次数相同,按照自然顺序进行排序,且小写字母在大写字母之前。

输入描述:

输入一行,为一个仅包含字母的字符串。

输出描述:

按照字母出现次数从大到小的顺序输出各个字母和字母次数,用英文分号分隔,注意末尾的分号;字母和次数间用英文冒号分隔。

示例1:

输入

xyxyXX

输出

x:2;y:2;X:2;

加面

因为第二轮面试官觉得口头表达能力不太好,所以两个面试官评级不一致,于是7月27日又多了一场加试,目前通过了

讲一下面试内容吧

1.面试问题:
测试问题

说一下自动化开发过程中运用到的python库?

日常自动化测试,你是独立负责还是说你们一个团队去写?

实际测试过程中,如何查看哪些适合做自动化测试?哪些不适合做自动化测试?

写测试用例的时候,会有分析工作吗?就是如何判断写的这个测试用例得覆盖度?

a.

性能测试使用的工具或方法?

测试用例主要包含哪些内容?

有过跨团队合作吗?

你们的设计,对你们来说,可能是一个整体,那有可能还有个是周边模块或者周边的产品,这种有吗?

大家配合的一些场景或者发生有争执的,你跟开发的观点可能完全不一样,你认为是问题,他认为不是,如何解决?你觉得你在测试中充当什么角色?你是会让开发接受你的观点,还是会所,你会听取别人的建议?

如何测试下面这个测试系统,说一下测试的点?说完以后让回答如何保证上面的测试方法有效的测试?

总体说明,某学校图书馆为学生提供了图书借阅系统,本次备测程序模拟了该图书借阅系统,包括用户管理子系统、图书借阅和管理子系统。第二点系统详细说明有用户管理子系统。注册借书卡,用户名由 5 位 5 个字母组成,不区分大小写,不能少的命,不能重名。密码固定为 8 位,且至少为数字、字母、特殊字符的三种组合。注册借出证时,每个借阅人初始有 1,000 元押金。图书借阅和管理子系统里面有图书借阅功能,图书馆已收藏 1,000 本图书,编号是 book, ID 的格式为 book 加 3 位数字,从 000 开始顺序编号,如 book 000、 book 001、 book 002。图书呢,有两种状态,可借状态和借出,每本图书只有一本,每人总共可以借 3 本图书,借阅期限为 30 天,当押金小于等于 0 时,不能发起借出图书。归还图书,借阅后第二天及以后可归还图书,正常情况应在借阅期限内归还图书。若借阅多本图书,可分批或一起归还。若借阅者超期未能归还图书,超期后按一天按 1 元一本每本收取罚款,上限是 100 元每本。此外,图书馆会对借阅者借停,直到归还全部的图书后才能进行借出,超期罚金还会在还书时从押金中扣除并转到管理员账户,当押金不足抵扣罚款时变为负数,差额由借阅人补缴给管理员,如某借阅人当前的押金是 99,借阅图书超期 100 天,罚款 100 元,此时押金为-1 元,管理员对借阅人的罚款收入为 100 元。图书管理员,学校图书馆设有管理员 admin, 主要职责是负责收取各借阅者缴纳的罚款到管理员账户中,管理员的初始账户为零元。

你对未来的职业规划是什么?

python

说一下全局解释器锁,自动化测试有使用过吗?

装饰器和迭代器,平常会使用吗?

coding

某公司要举行运动会,共有 num 个运动员,编号从 1 开始。开幕前需要对运动员进行排队,规则如下:

首先按照身高由低到高排列

对于身高相同的运动员,按照体重由轻到重排列

对于身高和体重都相同的,按照编号由小到大排列。

现按编号升序给出运动员和身高和体重,请输出排队后的运动员编号序列。

输入

第一行是学生的人数 num,值的范围 [1, 100] ;

第二行是num个整数的数组,数组元素的值表示学生的身高,下标表示学生编号;数组元素值的范围 [1, 200];

第三行是num个整数的数组,数组元素的值表示学生的体重,下标表示学生编号;数组元素值的值范围 [1, 100]。

输出

排队后的结果,每个数值都是运动员编号

样例

输入样例 1 复制

4

100 100 120 130

40 30 60 50

输出样例 1

2 1 3 4

提示样例 1

编号1和2的身高都是最小值100,要排在前面;再按体重排,编号2的体重更轻,因此2排在1前面。 最终排队结果为 2 1 3 4 。

复制代码
def sorted_athles(num_students,heights,weights):
    athletes = [(i+1,heights[i],weights[i]) for i in range(num_students)]
    athletes.sort(key=lambda x: (x[1],x[2],x[0]))
    
    return [athete[0] for athete in athletes]

num_students = 4
heights = [100,100 ,120 ,130]
weights = [40 ,30 ,60 ,50]

print(" ".join(map(str,sorted_athles(num_students,heights,weights))))

技术复核面

1、针对提交请假单这个接口,如何进行测试?

A:针对请假单接口,可以从以下几个方面进行测试:

1.功能测试:

• 输入合法的请假开始时间、结束时间和合理的请假原因,验证能否成功提交请假单。

• 检查不同的请假时长,如半天、一天、一周等,是否都能正确处理。

• 不输入必填项,如开始时间、结束时间或请假原因,验证系统是否给出相应的提示。

• 输入无效的日期格式(例如,月份超出 12 、日期超出该月最大天数等),检查系统的错误处理。

2.性能测试:

• 模拟大量用户同时提交请假单,检查接口的响应时间和系统的稳定性。

3.安全测试:

• 检查接口对用户输入的请假信息是否进行了适当的加密处理,以保护用户隐私。

4.兼容性测试:

• 在不同的浏览器、操作系统和设备上测试提交请假单接口,确保其正常工作。

5.边界值测试:

• 测试请假开始时间和结束时间的边界情况,如一年的开始和结束、节假日前后等。

6.异常情况测试:

• 网络中断时提交请假单,检查数据的完整性和恢复机制。

• 服务器出现故障时提交,观察系统的错误处理和恢复能力。

2、使用python的随机数函数,生成(500,550)之间的整数?

复制代码
import random

random_number = random.randint(500, 550)
print(random_number)

3、python中数据类型转换时,有哪些数据类型转换需要注意?

A:在 Python 中进行数据类型转换时,以下几种数据类型的转换需要特别注意:

1.整数(int)和浮点数(float)之间的转换:将浮点数转换为整数时,会直接截断小数部分,可能导致数据丢失。

2.字符串(str)和数字类型(int、float)之间的转换:字符串必须能够正确地表示数字,否则会引发异常。

3.列表(list)、元组(tuple)和集合(set)之间的转换:这些数据结构的特性不同,转换时可能会改变元素的顺序或去除重复元素。

例如,将字符串转换为整数时,如果字符串不是有效的数字表示,会抛出 ValueError 异常。

在进行数据类型转换时,要确保转换的逻辑是合理的,并处理可能出现的异常情况。

4、pytest如何实现全局共享变量?

在 Python 中,可以使用一个单独的模块来创建全局变量,并在其他模块中导入和使用它。

以下是一个示例:

创建一个名为 global_variables.py 的模块来定义全局变量:

global_variables.py

global_variable = 0

然后在其他模块中使用这个全局变量,例如在 module1.py 中:

module1.py

import global_variables

修改全局变量的值

global_variables.global_variable = 10

print(global_variables.global_variable)

module2.py 中:

module2.py

import global_variables

print(global_variables.global_variable)

这样就实现了跨模块的全局共享变量。但请注意,过度使用全局变量可能会导致代码的可维护性和可读性降低,应谨慎使用。

5.常见的几种数据库删除方式?

常见的数据库删除数据的方式主要有以下几种:

1.DELETE 语句:这是最常见的删除数据的方式。可以根据指定的条件删除表中的部分行数据。例如:DELETE FROM table_name WHERE condition; ,如果不指定 WHERE 子句,将删除表中的所有行。

2.TRUNCATE TABLE 语句:它会快速删除表中的所有数据,并且重置自增列的计数器。但它不能与 WHERE 子句一起使用,并且不会触发删除行相关的触发器。例如:TRUNCATE TABLE table_name;

3.DROP TABLE 语句:这个语句不仅会删除表中的所有数据,还会删除表的结构,包括列、约束、索引等。执行后,表将不再存在。例如:DROP TABLE table_name;

这些删除方式在使用时需要谨慎,尤其是删除大量数据或重要数据时,最好先备份数据以防意外。

6.在测试过程中我发现有风险?举个例子,比如说我的需求写的不清晰,或者说开发没有及时给我转测?或者说开发过程中我发现开发的质量转测很差,这种情况下你们一般怎么处理?

以下是在测试过程中遇到这些风险时可能的处理方式:

1.需求不清晰:

• 及时与产品经理或需求提出者沟通,明确需求的细节和预期结果。

• 组织需求澄清会议,邀请相关人员共同讨论,确保对需求有一致的理解。

• 以书面形式记录需求的疑问和得到的答复,以便后续参考。

2.开发未及时转测:

• 与开发团队沟通,了解延迟的原因和预计的转测时间。

• 向项目经理汇报延迟情况,让其协调资源和进度。

• 如果延迟会影响项目整体进度,评估是否需要调整测试计划或采取临时的应对措施。

3.开发转测质量差:

• 整理并详细记录发现的质量问题,向开发团队反馈。

• 与开发团队一起分析问题的根源,是技术实现问题还是对需求理解有误。

• 如果问题严重,可能需要召开专门的会议讨论解决方案,甚至可能需要重新评估开发进度和测试计划。

• 在后续的开发过程中,加强对开发过程的监控和沟通,提前发现潜在的质量问题。

总之,在处理这些风险时,及时有效的沟通、准确的记录和问题的跟踪是非常重要的。

7、你去测接口的时候,你怎么判断接口?你怎么判断你这个接口测试是通过的?

在测试接口时,通常可以根据以下几个方面来判断接口测试是否通过:

1.响应状态码:常见的成功状态码如 200(OK)表示请求成功; 201(Created)表示创建成功等。如果返回的状态码符合预期,通常是一个好的迹象。

2.响应数据:检查返回的数据内容是否与预期相符。包括数据的格式、字段值、数据的完整性等。

3.业务逻辑:验证接口的处理逻辑是否符合业务需求。例如,计算结果是否正确,数据的排序、筛选是否准确等。

4.性能指标:如果有性能要求,需要评估接口的响应时间、吞吐量、资源利用率等是否满足规定的性能标准。

5.错误处理:对于异常情况,接口应该能够正确返回相应的错误码和错误消息。

6.兼容性:检查接口在不同的客户端(如不同的浏览器、移动设备)和不同的网络环境下是否能正常工作。

只有当以上这些方面都满足预定的标准和要求时,才能认为接口测试是通过的。

业务主管面

没有技术相关问题,主要是询问工作地点的选择和个人的家庭情况

相关推荐
一只栖枝2 小时前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it
PAK向日葵2 小时前
【算法导论】PDD 0817笔试题题解
算法·面试
uzong3 小时前
技术故障复盘模版
后端
GetcharZp4 小时前
基于 Dify + 通义千问的多模态大模型 搭建发票识别 Agent
后端·llm·agent
加班是不可能的,除非双倍日工资4 小时前
css预编译器实现星空背景图
前端·css·vue3
桦说编程4 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
IT毕设实战小研4 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi5 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
gnip5 小时前
vite和webpack打包结构控制
前端·javascript
excel5 小时前
在二维 Canvas 中模拟三角形绕 X、Y 轴旋转
前端