华为、腾讯、淘宝面试流程+面试技术题分析,速看...

IT 是一个人才日益紧缺的行业,随着人才的紧缺,IT 业的薪水也是水涨船高。互联网巨头们对人才的争夺,更是日益激烈化。对于从事 IT 的职场人士,绝大部门都想进入那些巨头公司。除了薪水高、办公环境好,发展更有前景外,更让人有职业自豪感。

虽然人才日益缺乏,但并非谁都可以进入互联网巨头公司的,它们的门槛都设置的较高。如果你有幸接到了这些巨头公司的面试邀请,那么一定要好好的把握,做好充足的准备。以下笔者总结的巨头公司的面试流程,看看你要做些什么准备?

一、面试流程

1.华为:云计算测试工程师

面试流程:笔试 + 面试 +offer

笔试:考察范围很广,涉及到数据结构、网络、安全、Linux 常用命令、程序设计等方面

面试:面试就一轮,3 个面试官,2 个不同部门的经理和 1 个 hr,主要问了些对软件测试的了解,详细问了项目经验,以及一些在项目中遇到的困难如何克服等等。再就是根据简历问了些关于自动化测试方面的知识,现场写个算法,还有让分析一下,如果对这个算法进行测试,该考虑哪些?还问了我对该公司的了解情况,今后发展的打算?择业的标准?最后就是问了下期望薪水以及希望户口落在哪个城市的问题。

2.淘宝:系统测试工程师

面试流程:笔试 +1 面 +2 面

笔试:题目包括选择、填空、主观题、算法和程序题。选择填空都是一些 c/c++ ,数据结构,计算机系统方面的基础题目,主观题考了一道智力题,然后就是算法题和程序题。

面试:2 面同一天完成,通过的话会让你留下等待下一轮面面试,1 面先是自我介绍,然后问我怎么看待软件测试这个职位,c 语言中是怎样分配内存的,引用和指针的区别,还有问我项目方面的一些问题;先让讲了讲项目经验,然后问了测试技术方面的问题;2 面时面试官直接在纸上随机出了设计题,让 15 分钟内写出开发代码和测试用例,写完后,面试官还要求你解释一下代码,最后还问了一道智力题。

3.腾讯:测试工程师

面试流程:笔试 +1 面 +2 面

笔试:题目比较广,难度不大,C/C++,数据结构,操作系统,数据库,Linux 都有考查

1 面技术问题:技术接连拿了七八道题出来让我回答,半分钟一道吧,都是 C 的基本语法题然后问我测试方面的知识,回答完基础题,就让我写二叉树的先序遍历输出;然后就开始问数据库:什么叫索引,两个表怎么实现查询,计算机网络:TCP/IP 为什么要进行三次握手,UDP 和 TCP 的区别,它们属于哪一层,计算机网络中的网络拥塞算法;Linux 方面的就问了一个查看进程的命令

2 面主要考查的是逻辑思维能力、应变能力和沟通能力,以及问问项目经历,二面相对来说还是不难,二面完了就是等待 HR 面,这个过程很煎熬啊,收到 HR 面通知是最开心的啦!HR 面主要就了解一下性格和兴趣爱好

二、笔试技术题

1.判断题
图片

2.简答题&设计题

1.介绍一下 OSI 七层模型

参考答案:OSI(Open System Interconnect),即开放式系统互联。一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。
OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。每一层实现各自的功能和协议,并完成与相邻层的接口通信。

2.用自己的语言描述一次 HTTP 请求的过程(输入 URL 到返回的全过程)

参考答案:当我们在浏览器的地址栏输入 www.baidu.com ,然后回车,回车这一瞬间到看到页面到底发生了什么呢?
域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户

3.在一个 Web 测试页面上,有一个输入框,一个计数器(count)按钮,用于计算一个文本字符串中字母 a 出现的个数。请设计一系列测试用例来测试这个 Web 页面。

图片

参考答案:

功能测试:
1:输入字符串中包括一个a,如abc,计数结果正确(结果为12:输入字符串中包括多个a,如abaaca,计数结果正确
3:输入字符串中包括a和A,如aAccaA11,计数结果正确(只统计了小写a的个数)
4:输入字符串中不包括a,如123hej,计数结果正确(结果为05:输入字符串中只包括A,如288AA你好,计数结果正确(结果为06:输入字符串中包括@和a,如@abca@,计数结果正确(只统计了小写a的个数)
7:不输入字符串,点击计算,给出正确的提示信息
8:字符串输入空格,点击计算,给出正确的提示信息
9:输入超长字符串,点击计算,字符串显示正确,计数结果正确
10:检查能够通过tab键切换控件
11:检查能够通过回车键触发点击计数按钮
12:检查统计结果显示很长时,如超过10位数,能够显示正常
13:点击浏览器刷新按钮,界面是否刷新,输入的字符串是否被清空,计数结果是否显示为0
14:能否支持复制、粘贴等快捷操作

UI测试:
1:浏览器窗口最大化,查看控件布局是否美观
2:浏览器窗口随意调整大小,查看控件布局是否美观
3:检查控件的排版、间隔是否美观
4:输入字符串内容过长,是否会溢出文本框

兼容性测试:
1:复制url到不同浏览器,如谷歌、火狐、IE等浏览器,检查功能和排版布局是否ok
2:在不同浏览器下超长字符串是否会溢出文本框
3:在不同浏览器下统计结果显示很长时,如超过10位数,能够显示正常

4.描述自动化测试可以有哪些参数化方法(自动化测试类型和工具不限)

参考答案:Jmeter工具,常用参数化方法:用户定义变量、函数助手(随机函数)、CSV Data Set Config
postman工具,常用参数化方法:环境变量,全局变量,csv参数化

5.请写出以下 Linux 命令:

(1)赋予文件 test 的访问权限为最大:可读可写可执行

参考答案:chmod 777 test

(2)查看服务程序占用的端口命令

参考答案:netstat -apn | grep 端口号

3.编程题

下面程序段的运行结果是:

#include

using namespace std;

int f(int n){

if (n==1)

return 1;

else

return (f(n-1)+n * n * n);

}

int main(){

int s=f(3);

cout<<s<<endl;

return 0;

}

参考答案:结果为36。解析:其实递归的原理就是利用栈来进行中间存储的数据。f(3)=f(2)+3*3*3=9+27=36     f(2)=f(1)+2*2*2=1+8=9 f(1)=1

用自己熟悉的语言对字符串进行反转,输入 china 返回 anihc

参考答案:

str1 = “china’”
print(str1[::-1])

4.数据库

1.学生表 Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 年龄,Ssex 学生性别

–2.课程表 Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号

–3.教师表 Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名

–4.成绩表 SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数

(1)写出创建学生表表结构的语句,其中数据类型如下:S#-varchar(10),Sname- varchar(10) ,Sage- int,Ssex-char(2),约束如下:主键-学生编号,姓名非空

creat table Student(
    `S#` varchar(10) primary key,
    Sname varchar(10) not null,
    Sage int,
    Ssex char(2))default charset=utf8;

(2)查询平均成绩小于 60 分的同学的学生编号和平均成绩

select `S#` 学生编号,avg(score) 平均成绩 from SC group by `S#` having avg(score) < 60;

(3)查询学过"张三"老师授课的同学的信息

select Student.* from Student, SC where Student.`S#` = SC.`S#` and SC.`C#`  in (select `C#` from Course,Teacher where Course.`T#` = Teacher.`T#` and Tname = "张三")

在这里插入图片描述
在这里插入图片描述