请选择行业
请选择职位
请选择省份
请选择城市

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

时间: 2015-03-17 09:27   作者: 51Testing软件测试网采编   点击次数: 
 
  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 an d 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) = ”\”;

  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 CSDN:

  [plain] view plaincopy在CODE上查看代码片派生到我的代码片

  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.分页页面后,每个页面会附加很多辅助用户搜索的数据片。

  当时可能是在知乎还是CSDN上看到的,忘了,印象深的是:如何优化:

  把专题性垂直搜索结果加入到查询结果中

  例如新闻,文库,音乐,知道吧。

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

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

  如果网页被其他高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年成为一个测试项目经理。

打印本页 | 加入收藏

上一篇:如何做好招聘工作 雇佣最佳人才员工    

关闭  
主要城市: 北京 上海 杭州 广州 南京 武汉 长沙
全部城市: