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