百度质量部面试体验之 三面

本文分享了一次面试经历,包括实习经历介绍、对QA的理解、使用的测试工具、百度搜索流程解析、信息检索模型概述等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

凭着强硬实力,进入到了三面环节。好吧,不是实力,是运气。。


1.有过什么实习经历啊?


1.1安天实验室


在哈尔滨安天实验室,我在CERT组实习,跟过两个大神,一个是胡哥,部门技术经理,在异常分析方面很犀利。一个是swordlea,对李哥的印象就是C++大神,同时他也是CERT老大。当时的项目是做一个whois的查询插件,VC++编写。当然的组件功能是输入一个IP地址,能够查询出它的whois信息,因为有点久了,当时也是借鉴网上代码写出来的,自己的代码找不到了(当然怎么就没备份呢),就拿网上的代码凑合一下:

/*
 * @brief
 * Whois client program
 *
 * @details
 * This program shall fetch whois data for a IPv4 address.
 *
 * @author Silver Moon ( m00n.silv3r@gmail.com )
 * */

#include<stdio.h>	//scanf , printf
#include<string.h>	//strtok
#include<stdlib.h>	//realloc
#include<sys/socket.h>	//socket
#include<netinet/in.h> //sockaddr_in
#include<arpa/inet.h>	//getsockname
#include<netdb.h>	//hostent
#include<unistd.h>	//close

int main(int argc , char *argv[])
{
	char ip[100] , *data = NULL;

	printf("Enter ip address to whois : ");
	scanf("%s" , ip);

	get_whois(ip , &data);
	printf("\n\n");
	puts(data);

	free(data);
	return 0;
}

/**
	Get the whois content of an ip
	by selecting the correct server
*/
void get_whois(char *ip , char **data)
{
	char *wch = NULL, *pch , *response = NULL;

	if(whois_query("whois.iana.org" , ip , &response))
	{
		printf("Whois query failed");
	}

	pch = strtok(response , "\n");

	while(pch != NULL)
	{
		//Check if whois line
		wch = strstr(pch , "whois.");
		if(wch != NULL)
		{
			break;
		}

		//Next line please
		pch = strtok(NULL , "\n");
	}

	if(wch != NULL)
	{
		printf("\nWhois server is : %s" , wch);
		whois_query(wch , ip , data);
	}
	else
	{
		*data = malloc(100);
		strcpy(*data , "No whois data");
	}

	return;
}

/*
 * Perform a whois query to a server and record the response
 * */
int whois_query(char *server , char *query , char **response)
{
	char ip[32] , message[100] , buffer[1500];
	int sock , read_size , total_size = 0;
	struct sockaddr_in dest;

	sock = socket(AF_INET , SOCK_STREAM , IPPROTO_TCP);

    //Prepare connection structures :)
    memset( &dest , 0 , sizeof(dest) );
    dest.sin_family = AF_INET;

	printf("\nResolving %s..." , server);
	if(hostname_to_ip(server , ip))
	{
		printf("Failed");
		return 1;
	}
	printf("%s" , ip);
	dest.sin_addr.s_addr = inet_addr( ip );
	dest.sin_port = htons( 43 );

	//Now connect to remote server
	if(connect( sock , (const struct sockaddr*) &dest , sizeof(dest) ) < 0)
	{
		perror("connect failed");
	}

	//Now send some data or message
	printf("\nQuerying for ... %s ..." , query);
	sprintf(message , "%s\r\n" , query);
	if( send(sock , message , strlen(message) , 0) < 0)
	{
		perror("send failed");
	}

	//Now receive the response
	while( (read_size = recv(sock , buffer , sizeof(buffer) , 0) ) )
	{
		*response = realloc(*response , read_size + total_size);
		if(*response == NULL)
		{
			printf("realloc failed");
		}
		memcpy(*response + total_size , buffer , read_size);
		total_size += read_size;
	}
	printf("Done");
	fflush(stdout);

	*response = realloc(*response , total_size + 1);
	*(*response + total_size) = '\0';

	close(sock);
	return 0;
}

/*
 * @brief
 * Get the ip address of a given hostname
 *
 * */
int hostname_to_ip(char * hostname , char* ip)
{
	struct hostent *he;
	struct in_addr **addr_list;
	int i;

	if ( (he = gethostbyname( hostname ) ) == NULL)
	{
		// get the host info
		herror("gethostbyname");
		return 1;
	}

	addr_list = (struct in_addr **) he->h_addr_list;

	for(i = 0; addr_list[i] != NULL; i++)
	{
		//Return the first one;
		strcpy(ip , inet_ntoa(*addr_list[i]) );
		return 0;
	}

	return 0;
}

1.2 大连东软


当然有个项目是《PC车载导航系统》,我在里面负责一些琐碎的东西,算法方面我举个例子吧,地图导航不都是要选个最近的一条路走吗?
关于这条最近的道路选法,具体是用一个迪杰斯特拉算法来实现的:
function Dijkstra(G, w, s)
     for each vertex v in V[G]                        // 初始化
           d[v] = 无穷大
           previous[v] = NULL
     d[s] = 0
     S = empty set
     Q = set of all vertices
     while Q is not an empty set                      // Dijstra演算法主體
           u = Extract_Min(Q)
           S = S union {u}
           for each edge (u,v) outgoing from u
                  if d[v] > d[u] + w(u,v)             // 拓展邊(u,v)
                        d[v] = d[u] + w(u,v)
                        previous[v] = u

1.3 哈尔滨实习


这里项目是涉密了,不过我的工作主要是完成上级交代的任务,有开发小工具,也有实时的任务。



2.QA 哪一点吸引你?


其实看到这里我懵了,因为上过刘老师的SQA课程,我第一反应是不是他想说:SQA哪一点吸引你?
后来百度才发现,两者完全两码事:
From 优快云:
QA是质量保证,主要是做测试工作。

SQA是软件质量保证,决不是测试,而是监督软件过程是否符合公司的规程。
SQA独立于开发组,向公司的上层报告,而不是仅仅是向项目经理报告。
还有SQA还负责收集软件开发过程中的数据,进行收集和分析。

我个人有些许感悟:
1. 因为在周围人眼中还算技术可以,他们出什么问题我能帮的都帮,主要就是帮他们,debug之类的,虽然不是测试,但是找出错误,也不是QA的一种吗?
2.测试比开发眼界广。
软件测试从综合素质,知识结构等角度来看,要求比软件开发要更全面。
这也直接导致了:软件测试的职业发展路线要广于软件开发!
在测试技术领域:
测试执行工程师
测试设计工程师
测试系统工程师
测试架构工程师
测试专家。


在管理的领域:
普通测试工程师
测试项目经理
测试主管
测试经理
测试总监
大部门测试总监。

而且还能走外围IT职业:
行业测试专家,
金融领域测试专家
项目管理
软件测试咨询与培训等
软件质量保证(SQA)
软件销售
技术支持等。

3.测试还能和安全挂点勾,让我不至于被安全圈子的小伙伴遗忘。。


3.你用过什么测试工具?


用过autoRunner。记得当初的任务是写一个枪支管理系统,然后对这个系统进行测试。写这系统还是自学了PHP,从无到有,从小到大开发出来的。
用autoRunner测试,登录用户,让它登录注销,登录注销,10000次,看是不是有问题。
录制脚本,然后它会自动化生成脚本代码,然后稍微改改,比如,for i1 到10的话,把10改成10000,就成了压力测试了。


4.百度搜索,大概流程是什么?


点击“百度一下”的那一瞬间发生了什么呢?
搜索建议

同义词匹配与你的搜索关键词语义相近的查询结果

生成初步结果,说是1000万条,其实就显示1000条。

然后进行优化:rank排序,去重,加广告



点击之前呢?
我对搜索引擎是怎么搜集并整合信息有看过相关文献:
1.网友上传内容,比如博客,微博等WEB内容被更新到互联网
2.google爬虫发现了这一更新。把信息收录。
3.信息之后的加工处理,一是信息素材的存储,二是收录信息按要求进行优化。
4.基于URL评估域名 和 网页的总体权威性。
5.检测网页作弊行为。
6.分页页面后,每个页面会附加很多辅助用户搜索的数据片。

当时可能是在知乎还是优快云上看到的,忘了,印象深的是:如何优化:
把专题性垂直搜索结果加入到查询结果中
例如新闻,文库,音乐,知道吧。

用户访问过的网站,会在查询结果中更靠前

使用大量超链接(锚点)的网页有可能被删除

如果网页被其他高rank的网站引用,它重要性也会提高

如果搜索词是当下搜索流量暴增的关键词,rank值会增加

广告方面,这是自己想到的:
1.当地的广告
2.符合法律条文的广告
3.广告费多的广告靠前
4.点击率本身就高的广告靠前

参照谷歌,怎么反作弊:
搜索质量和反垃圾信息审查机制
(就是一个网页中有很多重复的关键字,或者很多锚点,明显就是骗爬虫的吗)

把举报的信息搜集起来:征集用户对rank有讹诈嫌疑的垃圾信息进行举报

把用户评价搜集起来:全球征集志愿者,作为一个远程测试用户来评价搜索结果的质量

DMCA法!去除盗版内容。


5.简单说下信息检索模型。


可恨,选修课,当初没选这门课,选《计算机安全》去了。
D: 文档集的机内表示
Q: 用户需求的机内表示
F: 文档表示、查询表示和它们之间的关系的模型框架(Frame)
R(qi, dj): 排序函数,给query qi 和document dj评分

这个真心不懂,没研究过。

6.分布式文件系统


这个真心不懂。。
网盘是吗?

但虽然我不懂,在安全方面还是稍等一些:
安全的三要素:
机密性
完整性
可用性

安全机制:
加密:DES,RSA
身份认证:login
授权:授予实体执行所请求操作的权限
审计;追踪实体的访问内容和访问行为
冗余:提供可用性

安全层次:
安全通道:身份认证,消息完整性和机密性(HTTPS?)
访问控制:访问授权(不是每个人都能访问你的QQ空间),防火墙(非校园网用户不在规则里面)
安全管理;密钥管理(密码忘记?),授权管理(能否授予权利和剥夺权利?)


7.百度产品


搜索与导航 : 网页 视频搜索 MP3 地图 新闻 图片 词典   常用搜索 hao123 文档搜索 网站导航         


搜索社区:知道 百科 贴吧 空间 文库 音乐掌门人 搜藏   经验 百度身边             


移动互联网 :移动搜索 掌上百度 手机输入法 百度快搜 手机百度地图   


网站与企业服务 : 搜索开放平台 站长平台 百度统计 百度联盟 百度推广 广告管家 资料研究中心   


百度应用:购物、线上娱乐 、 百度游戏 娱乐 游戏大厅 百付宝  百度Hi  百度工具栏 


软件:千千静听 软体搜索 百度输入法 百度流览伴侣 百度电脑管家   


百度公益: 老年搜索 盲道 大学搜索 博客搜索 法律搜索 国学   图书搜索 专利搜索 百度CSR 识图       


百度旗下:奇艺 百度乐居 天空软体 乐酷天日本商城   


8.爱好


打篮球和打LOL。


9.职业规划


要能在1年内学会公司的主流测试方法和掌握主流测试工具,成为一个合格的测试工程师。
之后,3年,能成为我们小组的主要人物吧,能高效解决大部分问题。
5年成为一个测试项目经理。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值