2017年百度測試面試題
一面(基礎)
1. 寫程式碼(從陣列中找出兩個相加等於n的下標)
2.測試三邊能不能組成三角形(考測試思維全面性和邏輯是否清晰)
等價劃分類
三角形測試用例類別 |
||
輸入條件 |
有效等價類 |
無效等價類 |
是否是三角形 |
(A>0) (1) (B>0) (2) (C>0) (3) (A+B>C) (4) (B+C>A) (5) (C+A>B) (6) |
(A<=0) (7) (B<=0) (8) (C<=0) (9) (A+B<=C) (10) (B+C<=A) (11) (C+A<=B) (12) |
3.為什麼報測試
開發工資比測試高,又是一個富於挑戰和創造性的職業,一般人可能都會選擇從事開發,但是我很清楚我要的是什麼我足夠了解我自己,從14年接觸測試行業開始,從沒有變過。
我感覺測試前景比較好,現在網際網路進入一個瓶頸,使用者就是上帝,資料無價,所以使用者體驗就顯得尤為重要,而測試是最近幾年才在我國興起,缺口比較大,發展空間也比較大。
4.常見的測試型別,效能測試指標
測試型別:功能測試、效能測試、安全測試、介面測試、GUI測試、可靠性測試、恢復性測試、容量測試、相容性測試
效能測試指標:
資源指標
CPU使用率:指使用者程序與系統程序消耗的CPU時間百分比,長時間情況下,一般可接受上限不超過85%。
記憶體利用率:記憶體利用率=(1-空閒記憶體/總記憶體大小)*100%,一般至少有10%可用記憶體,記憶體使用率可接受上限為85%。
磁碟I/O: 磁碟主要用於存取資料,因此當說到IO操作的時候,就會存在兩種相對應的操作,存資料的時候對應的是寫IO操作,取資料的時候對應的是是讀IO操作,一般使用% Disk Time(磁碟用於讀寫操作所佔用的時間百分比)度量磁碟讀寫效能。
網路頻寬:一般使用計數器Bytes Total/sec來度量,Bytes Total/sec表示為傳送和接收位元組的速率,包括幀字元在內。判斷網路連線速度是否是瓶頸,可以用該計數器的值和目前網路的頻寬比較。
系統指標:
併發使用者數:某一物理時刻同時向系統提交請求的使用者數。
線上使用者數:某段時間內訪問系統的使用者數,這些使用者並不一定同時向系統提交請求。
平均響應時間:系統處理事務的響應時間的平均值。事務的響應時間是從客戶端提交訪問請求到客戶端接收到伺服器響應所消耗的時間。對於系統快速響應類頁面,一般響應時間為3秒左右。
事務成功率:效能測試中,定義事務用於度量一個或者多個業務流程的效能指標,如使用者登入、儲存訂單、提交訂單操作均可定義為事務
5.SQL(多表查詢,左連線和右連線的區別)
左連線是以左邊表中的資料為基準,若左表有資料右表沒有資料,則顯示左表中的資料,右表中的資料為空。
右連線是以右邊表中的資料為基準,若左邊中沒資料,右表中有資料,則顯示右表中的資料,左表返回空值。
兩個表:
A(id,name)
資料:(1,張三)(2,李四)(3,王五)
B(id,name)
資料:(1,學生)(2,老師)(4,校長)
左連線結果:
select A.*,B.* from A left join B on A.id=B.id;
1 張三 1 學生
2 李四 2 老師
3 王五 NULL NULL
右連結結果:
select A.*,B.* from A right join B on A.id=B.id;
1 張三 1 學生
2 李四 2 老師
NULL NULL 4 校長
6.linux(檢視一個文件,顯示出文件的最後五條資料)
tail -n 檔名 檢視檔案的最後n行
head -n 檔名 檢視檔案的開頭n行
7.JAVA(int和Integer的區別)
1、int是基本資料型別,integer是int的封裝類,是一個物件,用一個引用指向這個物件
2、初始化時int可以直接賦值,integer需要new一個物件
3、integer是一個類,是int的擴充套件,定義了很多轉換方法
4、int和Integer都可以表示某一個數值,int和Integer不能夠互用,他們是兩種不同的資料型別;
7.網路(搜尋百度主頁的全過程,整個過程的物理裝置,網路協議,資料流向;session)
1、輸入的百度域名通過DNS伺服器找到其IP地址
2、瀏覽器通過已知的IP地址向百度伺服器傳送Get請求
3、伺服器給瀏覽器響應一個301永久重定向響應
4、瀏覽器跟蹤重定向地址
4、伺服器處理請求,顯示百度主頁內容
物理裝置:DNS伺服器、web伺服器
網路協議:DNS、http、tcp、ip、ARP
8.怎麼與人合作的
我覺得與人合作最主要的就是配合二字,其次就是注意溝通,及時交流,有不同的意見,一起討論,找出折中或者最佳方案,避免因溝通不當造成重大後果。我認為合作的過程中切忌一家獨大,要時刻提醒自己以大局為重,團結力量大。
9.怎麼證明自己學習能力強
學習能力強當然是好事,學習能力弱其實也沒啥,雖然我個人比較相信天賦的作用,但我也相信一句話,這個世界上大多數人努力的程度之低還輪不到拼天賦。我相信我在努力方面不輸大多數人。
10.作為測試的優勢
1、測試行業前景好,工作缺口相對較大
2、工作壓力小,比較適合女生
3、越老越值錢,經驗比較重要
4、要與各類人員溝通,可以提升自己的軟實力
11.怎麼考慮工作地點離家遠的問題
12.有什麼要問的
1、您認為貴公司留住您的地方在哪一點
二面(處理能力+思維全面性)
1.自我介紹
2.專案的具體演算法
3.怎麼判斷連結串列有環,並優化(要求寫出時間複雜度最優的演算法)
使用快慢指標法,例如快指標一次兩步,慢指標一次一步,兩個指標如果相遇,說明連結串列中是有環存在的
4.怎麼測試string to int程式(要說的很全面,一直問“還有嗎”)
String -> int
s="12345";
int i;
第一種方法:i=Integer.parseInt(s);
第二種方法:i=Integer.valueOf(s).intValue();
第一種方法:i=Integer.parseInt(s);//直接使用靜態方法,不會產生多餘的物件,但會丟擲異常第二種方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相當於 new Integer(Integer.parseInt(s)),也會拋異常,但會多產生一個物件