- 相關(guān)推薦
百度質(zhì)量部面試筆試體驗(yàn)之—三面
1.有過(guò)什么實(shí)習(xí)經(jīng)歷啊?
1.1安天實(shí)驗(yàn)室
在哈爾濱安天實(shí)驗(yàn)室,我在CERT組實(shí)習(xí),跟過(guò)兩個(gè)大神,一個(gè)是胡哥,部門(mén)技術(shù)經(jīng)理,在異常分析方面很犀利。一個(gè)是swordlea,對(duì)李哥的印象就是C++大神,同時(shí)他也是CERT老大。當(dāng)時(shí)的項(xiàng)目是做一個(gè)whois的查詢插件,VC++編寫(xiě)。當(dāng)然的組件功能是輸入一個(gè)IP地址,能夠查詢出它的whois信息,因?yàn)橛悬c(diǎn)久了,當(dāng)時(shí)也是借鑒網(wǎng)上代碼寫(xiě)出來(lái)的,自己的代碼找不到了(當(dāng)然怎么就沒(méi)備份呢),就拿網(wǎng)上的代碼湊合一下:
/*
* @brief
* Whois client program
*
* @details
* This program shall fetch whois data for a IPv4 address.
*
* @author Silver Moon ( m00n.silv3r@gmail.com )
* */
#include //scanf , printf
#include //strtok
#include //realloc
#include //socket
#include //sockaddr_in
#include //getsockname
#include //hostent
#include //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(" ");
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 , " ");
while(pch != NULL)
{
//Check if whois line
wch = strstr(pch , "whois.");
if(wch != NULL)
{
break;
}
//Next line please
pch = strtok(NULL , " ");
}
if(wch != NULL)
{
printf(" Whois 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(" Resolving %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(" Querying for ... %s ..." , query);
sprintf(message , "%s " , 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 大連東軟
當(dāng)然有個(gè)項(xiàng)目是《PC車載導(dǎo)航系統(tǒng)》,我在里面負(fù)責(zé)一些瑣碎的東西,算法方面我舉個(gè)例子吧,地圖導(dǎo)航不都是要選個(gè)最近的一條路走嗎?
關(guān)于這條最近的道路選法,具體是用一個(gè)迪杰斯特拉算法來(lái)實(shí)現(xiàn)的:
function Dijkstra(G, w, s)
for each vertex v in V[G] // 初始化
d[v] = 無(wú)窮大
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 哈爾濱實(shí)習(xí)
這里項(xiàng)目是涉密了,不過(guò)我的工作主要是完成上級(jí)交代的任務(wù),有開(kāi)發(fā)小工具,也有實(shí)時(shí)的任務(wù)。
2.QA 哪一點(diǎn)吸引你?
其實(shí)看到這里我懵了,因?yàn)樯线^(guò)劉老師的SQA課程,我第一反應(yīng)是不是他想說(shuō):SQA哪一點(diǎn)吸引你?
后來(lái)百度才發(fā)現(xiàn),兩者完全兩碼事:
From CSDN:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
QA是質(zhì)量保證,主要是做測(cè)試工作。
SQA是軟件質(zhì)量保證,決不是測(cè)試,而是監(jiān)督軟件過(guò)程是否符合公司的規(guī)程。
SQA獨(dú)立于開(kāi)發(fā)組,向公司的上層報(bào)告,而不是僅僅是向項(xiàng)目經(jīng)理報(bào)告。
還有SQA還負(fù)責(zé)收集軟件開(kāi)發(fā)過(guò)程中的數(shù)據(jù),進(jìn)行收集和分析。
我個(gè)人有些許感悟:
1. 因?yàn)樵谥車搜壑羞算技術(shù)可以,他們出什么問(wèn)題我能幫的都幫,主要就是幫他們,debug之類的,雖然不是測(cè)試,但是找出錯(cuò)誤,也不是QA的一種嗎?
2.測(cè)試比開(kāi)發(fā)眼界廣。
軟件測(cè)試從綜合素質(zhì),知識(shí)結(jié)構(gòu)等角度來(lái)看,要求比軟件開(kāi)發(fā)要更全面。
這也直接導(dǎo)致了:軟件測(cè)試的職業(yè)發(fā)展路線要廣于軟件開(kāi)發(fā)!
在測(cè)試技術(shù)領(lǐng)域:
測(cè)試執(zhí)行工程師
測(cè)試設(shè)計(jì)工程師
測(cè)試系統(tǒng)工程師
測(cè)試架構(gòu)工程師
測(cè)試專家。
在管理的領(lǐng)域:
普通測(cè)試工程師
測(cè)試項(xiàng)目經(jīng)理
測(cè)試主管
測(cè)試經(jīng)理
測(cè)試總監(jiān)
大部門(mén)測(cè)試總監(jiān)。
而且還能走外圍IT職業(yè):
行業(yè)測(cè)試專家,
金融領(lǐng)域測(cè)試專家
項(xiàng)目管理
軟件測(cè)試咨詢與培訓(xùn)等
軟件質(zhì)量保證(SQA)
軟件銷售
技術(shù)支持等。
3.測(cè)試還能和安全掛點(diǎn)勾,讓我不至于被安全圈子的小伙伴遺忘。。
3.你用過(guò)什么測(cè)試工具?
用autoRunner測(cè)試,登錄用戶,讓它登錄注銷,登錄注銷,10000次,看是不是有問(wèn)題。
錄制腳本,然后它會(huì)自動(dòng)化生成腳本代碼,然后稍微改改,比如,for i1 到10的話,把10改成10000,就成了壓力測(cè)試了。
4.百度搜索,大概流程是什么?
點(diǎn)擊“百度一下”的那一瞬間發(fā)生了什么呢?
搜索建議
同義詞匹配與你的搜索關(guān)鍵詞語(yǔ)義相近的查詢結(jié)果
生成初步結(jié)果,說(shuō)是1000萬(wàn)條,其實(shí)就顯示1000條。
然后進(jìn)行優(yōu)化:rank排序,去重,加廣告
點(diǎn)擊之前呢?
我對(duì)搜索引擎是怎么搜集并整合信息有看過(guò)相關(guān)文獻(xiàn):
1.網(wǎng)友上傳內(nèi)容,比如博客,微博等WEB內(nèi)容被更新到互聯(lián)網(wǎng)
2.google爬蟲(chóng)發(fā)現(xiàn)了這一更新。把信息收錄。
3.信息之后的加工處理,一是信息素材的存儲(chǔ),二是收錄信息按要求進(jìn)行優(yōu)化。
4.基于URL評(píng)估域名 和 網(wǎng)頁(yè)的總體權(quán)威性。
5.檢測(cè)網(wǎng)頁(yè)作弊行為。
6.分頁(yè)頁(yè)面后,每個(gè)頁(yè)面會(huì)附加很多輔助用戶搜索的數(shù)據(jù)片。
當(dāng)時(shí)可能是在知乎還是CSDN上看到的,忘了,印象深的是:如何優(yōu)化:
把專題性垂直搜索結(jié)果加入到查詢結(jié)果中
例如新聞,文庫(kù),音樂(lè),知道吧。
用戶訪問(wèn)過(guò)的網(wǎng)站,會(huì)在查詢結(jié)果中更靠前
使用大量超鏈接(錨點(diǎn))的網(wǎng)頁(yè)有可能被刪除
如果網(wǎng)頁(yè)被其他高rank的網(wǎng)站引用,它重要性也會(huì)提高
如果搜索詞是當(dāng)下搜索流量暴增的關(guān)鍵詞,rank值會(huì)增加
廣告方面,這是自己想到的:
1.當(dāng)?shù)氐膹V告
2.符合法律條文的廣告
3.廣告費(fèi)多的廣告靠前
4.點(diǎn)擊率本身就高的廣告靠前
參照谷歌,怎么反作弊:
搜索質(zhì)量和反垃圾信息審查機(jī)制
(就是一個(gè)網(wǎng)頁(yè)中有很多重復(fù)的關(guān)鍵字,或者很多錨點(diǎn),明顯就是騙爬蟲(chóng)的嗎)
把舉報(bào)的信息搜集起來(lái):征集用戶對(duì)rank有訛詐嫌疑的垃圾信息進(jìn)行舉報(bào)
把用戶評(píng)價(jià)搜集起來(lái):全球征集志愿者,作為一個(gè)遠(yuǎn)程測(cè)試用戶來(lái)評(píng)價(jià)搜索結(jié)果的質(zhì)量
DMCA法!去除盜版內(nèi)容。
5.簡(jiǎn)單說(shuō)下信息檢索模型。
可恨,選修課,當(dāng)初沒(méi)選這門(mén)課,選《計(jì)算機(jī)安全》去了。
D: 文檔集的機(jī)內(nèi)表示
Q: 用戶需求的機(jī)內(nèi)表示
F: 文檔表示、查詢表示和它們之間的關(guān)系的模型框架(Frame)
R(qi, dj): 排序函數(shù),給query qi 和document dj評(píng)分
這個(gè)真心不懂,沒(méi)研究過(guò)。
6.分布式文件系統(tǒng)
這個(gè)真心不懂。。
網(wǎng)盤(pán)是嗎?
但雖然我不懂,在安全方面還是稍等一些:
安全的三要素:
機(jī)密性
完整性
可用性
安全機(jī)制:
加密:DES,RSA
身份認(rèn)證:login
授權(quán):授予實(shí)體執(zhí)行所請(qǐng)求操作的權(quán)限
審計(jì);追蹤實(shí)體的訪問(wèn)內(nèi)容和訪問(wèn)行為
冗余:提供可用性
安全層次:
安全通道:身份認(rèn)證,消息完整性和機(jī)密性(HTTPS?)
訪問(wèn)控制:訪問(wèn)授權(quán)(不是每個(gè)人都能訪問(wèn)你的QQ空間),防火墻(非校園網(wǎng)用戶不在規(guī)則里面)
安全管理;密鑰管理(密碼忘記?),授權(quán)管理(能否授予權(quán)利和剝奪權(quán)利?)
7.百度產(chǎn)品
搜索與導(dǎo)航 : 網(wǎng)頁(yè) 視頻搜索 MP3 地圖 新聞 圖片 詞典 常用搜索 文檔搜索 網(wǎng)站導(dǎo)航
搜索社區(qū):知道 百科 貼吧 空間 文庫(kù) 音樂(lè)掌門(mén)人 搜藏 經(jīng)驗(yàn) 百度身邊
移動(dòng)互聯(lián)網(wǎng) :移動(dòng)搜索 掌上百度 手機(jī)輸入法 百度快搜 手機(jī)百度地圖
網(wǎng)站與企業(yè)服務(wù) : 搜索開(kāi)放平臺(tái) 站長(zhǎng)平臺(tái) 百度統(tǒng)計(jì) 百度聯(lián)盟 百度推廣 廣告管家 資料研究中心
百度應(yīng)用:購(gòu)物、線上娛樂(lè) 、 百度游戲 娛樂(lè) 游戲大廳 百付寶 百度Hi 百度工具欄
軟件:千千靜聽(tīng) 軟體搜索 百度輸入法 百度流覽伴侶 百度電腦管家
百度公益: 老年搜索 盲道 大學(xué)搜索 博客搜索 法律搜索 國(guó)學(xué) 圖書(shū)搜索 專利搜索 百度CSR 識(shí)圖
百度旗下:奇藝 百度樂(lè)居 天空軟體 樂(lè)酷天日本商城
8.愛(ài)好
打籃球和打LOL。
9.職業(yè)規(guī)劃
要能在1年內(nèi)學(xué)會(huì)公司的主流測(cè)試方法和掌握主流測(cè)試工具,成為一個(gè)合格的測(cè)試工程師。
之后,3年,能成為我們小組的主要人物吧,能高效解決大部分問(wèn)題。
5年成為一個(gè)測(cè)試項(xiàng)目經(jīng)理。
【百度質(zhì)量部面試筆試體驗(yàn)之—三面】相關(guān)文章:
詳解大連一二三面面試和筆試,經(jīng)驗(yàn)分享11-21
北京管培拿到offer(筆試+ 一二三面試經(jīng)驗(yàn)分享)08-10
百度筆試題及答案02-09
百度2010暑期實(shí)習(xí)筆試面試應(yīng)聘必備秘籍12-09
百度筆試題目及答案02-13
百度面試07-25
百度商業(yè)應(yīng)用筆試題12-09
新華社國(guó)際部筆試面試記02-18