面试流程 & 面试技术题分析

本贴最后更新于 989 天前,其中的信息可能已经事过景迁

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

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

一、面试流程

1. 华为:云计算测试工程师
2. 淘宝:系统测试工程师
3. 腾讯:测试工程师

二、笔试技术题

1.判断题

图片.png

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页面。

    图片.png

    参考答案:
    
    功能测试:
    1:输入字符串中包括一个a,如abc,计数结果正确(结果为1)
    2:输入字符串中包括多个a,如abaaca,计数结果正确
    3:输入字符串中包括a和A,如aAccaA11,计数结果正确(只统计了小写a的个数)
    4:输入字符串中不包括a,如123hej,计数结果正确(结果为0)
    5:输入字符串中只包括A,如288AA你好,计数结果正确(结果为0)
    6:输入字符串中包括@和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.编程题
  1. 下面程序段的运行结果是:

#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
  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 = "张三")
回帖
请输入回帖内容 ...