百度測開二三面

2021-10-02 21:23:47 字數 4635 閱讀 3476

面經問題來自

以下是網上蒐集的部分資料

文化基因演算法

化基因演算法用區域性啟發式搜尋來模擬由大量專業知識支撐的變異過程,是一種基於種群的全域性搜尋和基於個體的區域性啟發式搜尋的結合體

文化基因演算法提出的是一種框架、是乙個概念,在這個框架下,採用不同的搜尋策略可以構成不同的文化基因演算法,如全域性搜尋策略可以採用遺傳演算法、進化策略、進化規劃等,區域性搜尋策略可以採用爬山搜尋、模擬退火、貪婪演算法、禁忌搜尋、導引式區域性搜尋等

舉例說明測試用例的生成過程

用例設計步驟及方法

確定功能點的測試需求

確定功能點的測試需求,是指通過產品功能描述及功能特點,確定此功能點的測試型別,即針對此功能,是僅僅進行功能測試,還是需要進行功能測試、安全測試、相容性測試等。

功能點建模

對功能點進一步建模,若測試人員能夠在需求階段接入到產品開發,在需求階段,就可以對軟體產品進行建模,但在需求階段建立的模型可能無法細化到某個功能點,因此需要對功能點進行建模。可以從以下5個方面進行建模,也可以從其他方面入手,建議多進行狀態分析和狀態間轉換。

輸入引數範圍 或 關聯輸入狀態;

功能點關聯操作;

功能點操作失敗後的後續操作;

功能點操作失敗的原因;

與功能點相關的軟體內部操作等。

輸出功能的測試點

根據測試需求和建立的模型,輸出此功能測試點。

編寫測試用例

根據測試點,運用等價類劃分、邊界值、錯誤推測和場景分析等方法,編寫測試用例。在用例編寫過程中,注意乙個測試用例可以包含2-3個測試點,且根據測試用例邏輯,規劃測試用例執行順序。

測試用例是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,用於核實是否滿足某個特定軟體需求

根據測試點,運用等價類劃分、邊界值、錯誤推測和場景分析等方法,編寫測試用例。在用例編寫過程中,注意乙個測試用例可以包含2-3個測試點,且根據測試用例邏輯,規劃測試用例執行順序。

測試用例的設計方法主要有黑盒測試法和白盒測試法

黑盒測試也稱功能測試,黑盒測試著眼於程式外部結構,不考慮內部邏輯結構,主要針對軟體介面和軟體功能進行測試。 [1]

白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基於**的測試。白盒法全面了解程式內部邏輯結構、對所有邏輯路徑進行測試。 [1]

設計方法

1、白盒法

白盒法又稱結構化方法(結構測試)或邏輯覆蓋法,其基本思想是把程式看作是路徑的集合。這樣,對程式的測試便轉化為對程式中某些路徑的測試,要設法讓被測程式的「各處」均被執行到,使潛伏在程式每個角落的錯誤均有機會暴露出來。因此,白盒法實際上是一種選擇通過指定路徑的輸入資料的分析方法。 [4]

2、測試覆蓋率

採用白盒法可以用測試覆蓋率作為測試徹底度的定量衡量標準。常用的覆蓋率有: [4]

(1)語句覆蓋:要求設計足夠的測試資料,使程式的每條語句都至少執行一次。 [4]

(2)判定覆蓋(分支覆蓋):使程式中的每個判定至少出現一次「真值」和一次假值」,即程式中的每個判定(分支)都至少要經過一次。 [4]

(3)條件覆蓋:使判定中每個條件的所有可能的結果至少出現一次,並且使每條語句至少執行一次。 [4]

(4)判定條件覆蓋:使判定覆蓋和條件覆蓋同時得到滿足。 [4]

(5)多重條件覆蓋:又稱條件的組合覆蓋,是使程式中每個判定中的條件的各種組合都至少取到一次,並且每條語句至少執行一次。 [4]

此外,還有諸如路徑覆蓋(程式中每條路徑至少執行一次)、基本路徑覆蓋(迴圈次數只考慮小於等於一次所組成的程式路徑,每條基本路徑至少執行一次)等。為了獲取測試覆蓋率(不論是哪一種覆蓋率)需要有測試工具的幫助,且需要花費人力與機時去做測試工作(設計測試用例、輸入測試資料、進行統計計算等。 [4]

3、黑盒法

黑盒法又稱為功能測試,是根據軟體需求說明書上羅列的各項功能、效能指標,來構造測試用例的輸入資料,實際執行被測軟體,分析執行過程的行為與執行結果以便檢查出被測軟體的錯誤。在黑盒法測試中,測試者可以完全不關心程式的內部結構。可見,白盒法是一種邏輯驅動方法,而黑盒法是一種功能驅動方法。黑盒法是最常用的測試方法。 [4]

基本事件流:

1、使用者向atm提款機中插入銀行卡,如果銀行卡是合法的,atm提款機介面提示使用者輸入提款密碼;

引數1 銀行密碼

引數型別 字串

引數範圍 字串為0~9之間的阿拉伯數字組合,密碼長度為6位

備註 使用者輸入該銀行卡的密碼,atm提款機與mainframe傳遞密碼,檢驗密碼的正確性。如果輸入密碼正確,提示使用者輸入取錢金額,提示資訊為,「請輸入您的提款額度」;

使用者輸入取錢金額,系統校驗金額正確,提示使用者確認,提示資訊為「您輸入的金額是***,請確認,謝謝!」,使用者按下確認鍵,確認需要提取的金額;

引數1 取款金額

引數型別 整數

引數範圍 50~1500 rmb,單筆取款額最高為1500rmb;每24小時之內,取款的最高限額是4500rmb

備註 系統同步銀行主機,點鈔票,輸出給使用者,並且減掉資料庫中該使用者帳戶中的存款金額。

使用者提款,銀行卡自動退出,使用者取走現金,拔出銀行卡,atm提款機介面恢復到初始狀態;

備選事件流(考慮可能失敗的地方):

在基本事件流1中:

a) 如果插入無效的銀行卡,那麼,在atm提款機介面上提示使用者「您使用的銀行卡無效!」,3秒鐘後,自動退出該銀行卡。

在基本事件流2中:

a) 如果使用者輸入的密碼錯誤,則提示使用者「您輸入的密碼無效,請重新輸入」;

b) 如果使用者連續3次輸入錯誤密碼,atm提款機吞卡,並且atm提款機的介面恢復到初始狀態。此時,其他提款人可以繼續使用其他的合法的銀行卡在atm提款機上提取現金。

c) 使用者輸入錯誤的密碼後,也可以按「退出」鍵,則銀行卡自動退出。

在基本事件流3中:

a) 如果使用者輸入的單筆提款金額超過單筆提款上限,atm提款機介面提示「您輸入的金額錯誤,單筆提款上限金額是1500rmb,請重新輸入」;

b) 如果使用者輸入的單筆金額,不是以50rmb為單位的,那麼提示使用者「您輸入的提款金額錯誤,請輸入以50為單位的金額」;

c) 如果使用者在24小時內提取的金額大於4500rmb,則atm提款機提示使用者,「24小時內只能提取4500rmb,請重新輸入提款金額」輸入提取的金額超過了系統的設定的限制 ;

d) 如果使用者輸入正確的提款金額,atm提款機提示使用者確認後,使用者取消提款,則atm提款機自動退出該銀行卡;

e) 如果atm提款機中餘額不足,則提示使用者,「抱歉,atm提款機中餘額不足」,3秒鐘後,自動退出銀行卡。

在基本事件流4中:

a) 如果使用者銀行戶頭中的存款小於提款金額,則提示使用者「抱歉,您的存款餘額不足!」,3秒鐘後,自動退出銀行卡;

在基本事件流5中:

a) 如果使用者沒有取走現金,或者沒有拔出銀行卡,atm提款機不做任何提示,直接恢復到介面的初始狀態;

如果沒有需求文件,和需求和開發溝通,確保了解被測試軟體的流程

流程有大流程和小流程,大流程是指大功能的跳轉,小流程是指功能內的調整,大小流程需要都被覆蓋到.

二、應用

以使用者登入功能為例,在系統測試階段,介紹應用方法。

確定登入功能測試需求

使用者登入測試型別,首先想到的是功能測試;由於使用者可能採用不同的裝置進行登入,因此需要有相容性測試;同樣使用者登入屬於和使用者直接互動的功能,應包含易用性和效能測試;最後使用者登入涉及使用者賬戶和密碼,因此應包含安全測試。此處功能測試是指業務測試,效能測試可以進一步細化為負載測試、壓力測試和容量測試。總結測試需求如下:

功能點建模

2.1 簡單模型

2.2 狀態轉換圖

使用者名稱狀態轉換圖:

登入狀態轉換圖:

生成測試點

根據建立的功能點簡單模型和狀態轉換圖,通過組合及細化,生成測試點。

3.1功能測試測試點

3.2相容性測試點

相容性測試與功能測試相比,測試點相對少,相容性一般從軟體執行環境考慮,目地是使得軟體在不同的執行環境下都能正確顯示或執行,而軟體執行環境可以劃分為軟體環境和硬體環境兩部分。軟體環境一般指作業系統型別版本、瀏覽器型別版本等;而硬體環境一般指終端裝置型別、顯示裝置大小及解析度等。

3.3安全測試點

本人接觸的專案中,沒有進行安全測試,可以從 顯示安全、儲存安全、傳輸安全等方面考慮安全性測試,還可以參考專門的安全測試方法。

3.4 效能測試點

效能在當前可以從時間和空間兩個維度考慮,時間緯度主要是考察系統的響應速度,空間維度主要考察軟體執行過程中的資源占有情況。

編寫測試用例

根據3中的測試點,補充測試資料,生成測試用例。注意可以將多個測試點合併為乙個測試用例,如功能測試的測試點1和安全測試點1,可以合併為乙個測試用例。

測試方法

使用人工或自動的手段來執行或測定某個軟體系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別

黑盒白盒

從是否關心軟體內部結構和具體實現的角度劃分,測試方法主要有白盒測試和黑盒測試。白盒測試方法主要有**檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程式變異。黑盒測試方法主要包括等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅動法、正交試驗設計法、功能圖法、場景法等。 [1]

靜態動態

從是否執行程式的角度劃分,測試方法又可分為靜態測試和動態測試。靜態測試包括**檢查、靜態結構分析、**質量度量等。動態測試由3部分組成:構造測試例項、執行程式和分析程式的輸出結果

我的百度 一二三面

商務搜尋部實習生 一面 自我介紹,學習經歷,專案介紹 單鏈表逆序 頭插法實現原地逆轉 求陣列中前k小的k 個數 二面 自我介紹,學習經歷,專案介紹 最近最久未使用記憶體置換演算法,問完讓我寫 非遞迴求樹的深度,提示下寫出演算法 字串去空格 然後他讓你問他幾個問題,結束 點評,面試官超嚴肅語速超快壓力...

百度提前批三面面經

面試職位 運維研發工程師 一面 首先自我介紹,然後問專案經驗,blabla.然後問了1 n中某個數少了,找出來,又問了乙個拓撲排序,最後問了下nginx的事件驅動模組怎麼回事。二面 自我介紹,然後問專案經驗,blabla.從在瀏覽器中輸入www.baidu.com,到出來頁面,可能發生什麼故障,你打...

百度實習生三面

第一面是乙個團隊leader,他面我的問題比較偏語言的細節,這個平時由於沒有太留意,再加上沒有系統的進行面試複習和準備,所以回答的不太理想。其中有幾個細節問題沒打出來感覺不應該。乙個是include 和 有什麼區別。乙個是strcpy,memcpy,sprintf三個函式的區別,效率和安全性的角度說...