常見軟體測試面試題

常見軟體測試面試題

來自專欄 性能測試

問題一:為什麼要在一個團隊中開展軟體測試工作?

任何軟體在開發過程中都會留下缺陷,帶有缺陷的軟體產品如果提交出去,可能會給公司帶來不可估量的損失,我們必須在客戶之前發現儘可能多的問題,從而保障客戶滿意。而發現問題的這個過程稱之為測試。

問題二:簡述你在以前的工作中做過哪些事情,比較熟悉什麼?

此問題每個人都不一樣。我自己的答案如下。

我主要的工作是系統測試和自動化測試,也曾少量涉及性能測試。在系統測試中,主要是對BOSS系統的業務邏輯功能,以及軟交換系統的Class 5特性進行測試。性能測試中,主要是進行的壓力測試,在各個不同數量請求的情況下,獲取系統響應時間以及系統資源消耗情況。自動化測試主要是通過自己寫腳本以及一些第三方工具的結合來測試軟交換的特性測試。

問題三:你所了解的的軟體測試類型都有哪些,簡單介紹一下

1.基本功能驗證

主要是對發布的版本進行一些最主要功能的測試。英文常見叫法是Smoking Test, Basic Verification Test或者Sanity Check。

2.功能測試

主要是依據需求或者需求分析文檔,對所發布的版本進行測試,看看是否滿足需求,是否出現了不必要的功能。

3.單元測試

是開發人員進行的測試之一,一般是開發人員對很小的模塊,比如函數進行測試,一般來說,開發人員還需要開發相應的測試樁來進行此類測試。

4.集成測試

在大型的開發過程中,軟體是模塊化進行開發的,將不同的模塊揉合在一起的話,需要進行的測試就是集成測試。

5.系統測試

當軟體提交給測試組後,是對整個系統的所有功能進行測試,一般來說,功能測試是系統測試的一個部分。

6.壓力測試

主要是在很大性能的情況下,這個性能已經接近了系統的極限,看看系統運轉的情況。

7.負載測試

主要是用各種不同的性能去檢測系統,採集各個數據在這些性能情況下的數據。

8.黑盒測試

指系統對你來說是完全不透明的,只給你留下了輸入和最終輸出,這個是功能測試的方法之一。

9.灰盒測試

指在了解部分系統內部工作機制的情況下,對於系統進行的覆蓋性測試。

10.白盒測試

主要是在單元測試和集成測試的情況下,開發人員已知代碼,對這一段的代碼進行全路徑的覆蓋測試。

11.界面測試

主要是看用戶界面的友好性和易用性,是否有文字或者排版錯誤,是否有輸入限制等等。

12.回歸測試

一般是系統發現bug,開發人員修改後,和BUG直接相關以及可能相關的功能進行的測試。

13.安裝和卸載的測試

14.恢複測試

主要是一個系統在發生了災難的情況下,從錯誤中是否容易恢復。

15.兼容性測試

一個系統在不同的語言,操作系統下的系統測試。

16.安全測試

系統在遇到攻擊或者類似情況下的表現。

17.Alpha測試

系統在給最終用戶前,測試人員在實驗室中模擬最終用戶的測試。

18.Beta測試。

由部分最終用戶通過使用來進行的測試

19.比較測試

和其他具有相同或者類似功能的系統進行對比的測試。

20.驗收測試

一般是最終用戶在接受產品前,依據自己所提出的要求進行的測試,很多情況下,驗收測試可能委託第三方機構完成。

問題四:測試計劃工作的目的是什麼?測試計劃文檔的內容應該包括什麼?其中哪些是最重要的?

軟體測試計劃是指導測試過程的綱領性文件。

包含了產品概述、測試策略、測試方法、測試區域、測試配置、測試周期、測試資源、測試交流、風險分析等內容。藉助軟體測試計劃,參與測試的項目成員,尤其是測試管理人員,可以明確測試任務和測試方法,保持測試實施過程的順暢溝通,跟蹤和控制測試進度,應對測試過程中的各種變更。

測試計劃和測試詳細規格、測試用例之間是戰略和戰術的關係,測試計劃主要從宏觀上規劃測試活動的範圍、方法和資源配置,而測試詳細規格、測試用例是完成測試任務的具體戰術。所以其中最重要的是測試測試策略和測試方法(最好是能先評審)。

問題五:你認為做好測試計劃工作的關鍵是什麼?

1.明確測試的目標,增強測試計劃的實用性

編寫軟體測試計劃得重要目的就是使測試過程能夠發現更多的軟體缺陷,因此軟體測試計劃的價值取決於它對幫助管理測試項目,並且找出軟體潛在的缺陷。因此,軟體測試計劃中的測試範圍必須高度覆蓋功能需求,測試方法必須切實可行,測試工具並且具有較高的實用性,便於使用,生成的測試結果直觀、準確

2.堅持「5W」規則,明確內容與過程

「5W」規則指的是「What(做什麼)」、「Why(為什麼做)」、「When(何時做)」、「Where(在哪裡)」、「How(如何做)」。利用「5W」規則創建軟體測試計劃,可以幫助測試團隊理解測試的目的(Why),明確測試的範圍和內容(What),確定測試的開始和結束日期(When),指出測試的方法和工具(How),給出測試文檔和軟體的存放位置(Where)。

3.採用評審和更新機制,保證測試計劃滿足實際需求

測試計劃寫作完成後,如果沒有經過評審,直接發送給測試團隊,測試計劃內容的可能不準確或遺漏測試內容,或者軟體需求變更引起測試範圍的增減,而測試計劃的內容沒有及時更新,誤導測試執行人員。

4.分別創建測試計劃與測試詳細規格、測試用例

應把詳細的測試技術指標包含到獨立創建的測試詳細規格文檔,把用於指導測試小組執行測試過程的測試用例放到獨立創建的測試用例文檔或測試用例管理資料庫中。測試計劃和測試詳細規格、測試用例之間是戰略和戰術的關係,測試計劃主要從宏觀上規劃測試活動的範圍、方法和資源配置,而測試詳細規格、測試用例是完成測試任務的具體戰術。

問題六:常見的測試用例設計方法都有哪些?請分別以具體的例子來說明這些方法在測試用例設計工作中的應用。

1. 等價類劃分

劃分等價類: 等價類是指某個輸入域的子集合.在該子集合中,各個輸入數據對於揭露程序中的錯誤都是等效的.併合理地假定:測試某等價類的代表值就等於對這一類其他值的測試.因此,可以把全部輸入數據合理劃分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件,就可以用少量代表性的測試數據.取得較好的測試結果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類.

2. 邊界值分析法

邊界值分析方法是對等價類劃分方法的補充。測試工作經驗告訴我,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部.因此針對各種邊界情況設計測試用例,可以查出更多的錯誤.

使用邊界值分析方法設計測試用例,首先應確定邊界情況.通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況.應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據.

3. 錯誤推測法

基於經驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法.

錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例. 例如, 在單元測試時曾列出的許多在模塊中常見的錯誤. 以前產品測試中曾經發現的錯誤等, 這些就是經驗的總結. 還有, 輸入數據和輸出數據為0的情況. 輸入表格為空格或輸入表格只有一行. 這些都是容易發生錯誤的情況. 可選擇這些情況下的例子作為測試用例.

4. 因果圖方法

前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯繫, 相互組合等. 考慮輸入條件之間的相互組合,可能會產生一些新的情況. 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當多. 因此必須考慮採用一種適合於描述對於多種條件的組合,相應產生多個動作的形式來考慮設計測試用例. 這就需要利用因果圖(邏輯模型). 因果圖方法最終生成的就是判定表. 它適合於檢查程序輸入條件的各種組合情況.

5. 正交表分析法

有時候,可能因為大量的參數的組合而引起測試用例數量上的激增,同時,這些測試用例並沒有明顯的優先順序上的差距,而測試人員又無法完成這麼多數量的測試,就可以通過正交表來進行縮減一些用例,從而達到盡量少的用例覆蓋盡量大的範圍的可能性。

6. 場景分析方法

指根據用戶場景來模擬用戶的操作步驟,這個比較類似因果圖,但是可能執行的深度和可行性更好。

問題七:您認為做好測試用例設計工作的關鍵是什麼?

白盒測試用例設計的關鍵是以較少的用例覆蓋儘可能多的內部程序邏輯結果

黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入介面。不可能做到完全測試,以最少的用例在合理的時間內發現最多的問題

問題八:詳細的描述一個測試活動完整的過程。

1.項目經理通過和客戶的交流,完成需求文檔,由開發人員和測試人員共同完成需求文檔的評審,評審的內容包括:需求描述不清楚的地方和可能有明顯衝突或者無法實現的功能的地方。項目經理通過綜合開發人員,測試人員以及客戶的意見,完成項目計劃。然後SQA進入項目,開始進行統計和跟蹤

2.開發人員根據需求文檔完成需求分析文檔,測試人員進行評審,評審的主要內容包括是否有遺漏或者雙方理解不同的地方。測試人員完成測試計劃文檔,測試計劃包括的內容上面有描述。

3. 測試人員根據修改好的需求分析文檔開始寫測試用例,同時開發人員完成概要設計文檔,詳細設計文檔。此兩份文檔成為測試人員撰寫測試用例的補充材料。

4.測試用例完成後,測試和開發需要進行評審。

5.測試人員搭建環境

6.開發人員提交第一個版本,可能存在未完成功能,需要說明。測試人員進行測試,發現BUG後提交給BugZilla。

7.開發提交第二個版本,包括Bug Fix以及增加了部分功能,測試人員進行測試。

8.重複上面的工作,一般是3-4個版本後BUG數量減少,達到出貨的要求。

9.如果有客戶反饋的問題,需要測試人員協助重現以及回歸測試。


推薦閱讀:

面試前應該做哪些準備?
又到一年面試季,面試應該怎麼穿搭
面試時如何回答離職原因?
那些年我在德國經歷過的面試
我為什麼討厭面試?

TAG:軟體測試 | 面試技巧 | 測試工程師 |