百度作業幫,美團,阿里面試經驗分享,測試開發最常見的24個面試問題

關注公衆號【測試開發Guide】

回覆「java」:即可獲得java經典學習資料,帶你輕鬆入門java編程。
回覆「python」:免費獲取「python入門」高分好書,業餘時間偷偷變牛逼。
回覆「面試」:24個常見的測試面試題,你一定不想錯過。
回覆「書單」:獲取2020年軟件測試工程師必看的書單
回覆「測試用例」:獲取本人常用的 Excel 和 Xmind 測試用例模版
回覆「測試工具」:獲取 mac 和 windows 常用的測試工具
 

最近很多朋友都在說今年的互聯網行情不好,面試很難,不知道怎麼複習,我最近總結了一份在測試開發面試中比較常見的面試題合集,希望對大家有幫助。

 

本文共 4800 字,預計閱讀時間 13 分鐘,建議點贊+收藏再閱讀,防止丟失!只收藏不點贊都是壞人呀!

 

廢話少說,直上乾貨。

 

———— /目錄 / ————

 

  1. 什麼是軟件測試

  2. 軟件測試的目的是什麼?

  3. 白盒測試用例設計常用方法?

  4. 黑盒測試用例設計常用方法

  5. 什麼是灰盒測試?

  6. 列舉出你所瞭解的軟件測試方式

  7. 什麼是單元測試

  8. 單元測試、集成測試、系統測試、驗收測試、迴歸測試這幾步最重要的是哪一步?

  9. 集成測試和系統測試的區別,以及應用場景分別是什麼?

  10. 測試開發需要哪些知識?具備哪些能力?

  11. 請說一下手動測試與自動化測試的優缺點

  12. 自動化測試的運用場景舉例

  13. 軟件測試的核心競爭力是什麼?

  14. 測試和開發要怎麼結合才能使軟件的質量得到更好的保障

  15. 怎麼實施自動化測試

  16. 測試的相關流程

  17. 測試項目具體工作是什麼

  18. BUG分級

  19. APP性能指標有哪些?

  20. APP測試工具有哪些?

  21. BUG的生命週期

  22. 什麼是α測試和β 測試?

  23. 談談對敏捷的理解

  24. 什麼是壓力測試?壓力測試需要考慮哪些因素?

 

1、什麼是軟件測試?

軟件測試是在規定的條件下對程序進行操作,以發現錯誤,對軟件質量進行評估。

◆ ◆ ◆  ◆ ◆

2、軟件測試的目的是什麼?

軟件測試的目的在於(1)發現軟件的缺陷和錯誤(2)保證軟件的質量確保能夠滿足用戶以及產品的需求

軟件測試的目的是爲了找bug,並不是爲了驗證軟件沒有bug

◆ ◆ ◆  ◆ ◆

3、白盒測試用例設計常用方法

靜態測試:不用運行程序的測試,如文檔測試、代碼檢查等

動態測試:需要執行代碼,接口測試、覆蓋率分析、性能分析、內存分析等。

邏輯覆蓋法:主要包括語句覆蓋,判斷覆蓋,條件覆蓋,判斷/條件覆蓋,條件組合覆蓋,路徑覆蓋等。

六種覆蓋標準發現錯誤的能力由弱到強的變化:

  1. 語句覆蓋,每條語句至少執行一次。

  2. 判斷覆蓋,每個判斷的每個分支至少執行一次。

  3. 條件覆蓋,每個判斷的每個條件應取到的各種可能的值。

  4. 判斷/條件覆蓋,同時滿足判斷覆蓋條件覆蓋。

  5. 條件組合覆蓋,每個判定中各條件的每一種組合至少出現一次。

  6. 路徑覆蓋,使程序中每一條可能的路徑至少執行一次。

◆ ◆ ◆  ◆ ◆

4、黑盒測試用例設計常用方法

等價劃分類,邊界值分析,錯誤推測法因果圖法、場景法、正交試驗設計法、判定表驅動分析法、功能圖分析法等。

◆ ◆ ◆  ◆ ◆

5、什麼是灰盒測試?

灰盒測試,是介於白盒測試與黑盒測試之間的一種測試,灰盒測試多用於集成測試階段。目前互聯網的測試大多數都是灰盒測試。

◆ ◆ ◆  ◆ ◆

6、列舉出你所瞭解的軟件測試方式

按照軟件的生命週期劃分:單元測試、集成測試、系統測試、迴歸測試、驗收測試

按照測試關注點劃分:功能測試、性能測試、穩定性測試、易用性測試、安全性測試

按照測試實施者劃分:開發方測試(α測試)、用戶測試(β測試)、第三方測試

按照技術/測試用例設計劃分:白盒測試、黑盒測試、灰盒測試

按照分析方法劃分:靜態測試、動態測試

按照測試執行方式劃分:手工測試、自動化測試

按照測試對象劃分:程序測試、文檔測試

7、什麼是單元測試

答:完成最小的軟件設計單元(模塊)的驗證工作,確保模塊被正確編碼。通常情況下是白盒的,對代碼風格和規則、程序設計和結構、業務邏輯等進行靜態測試,及早發現和解決不易顯現的錯誤。

8、單元測試、集成測試、系統測試、驗收測試、迴歸測試這幾步最重要的是哪一步?

答:這些測試步驟分別在軟件開發的不同階段對軟件進行測試,我認爲對軟件完整功能進行測試的系統測試很重要,因爲此時單元測試和集成測試已完成,系統測試能夠對軟件所有功能進行功能測試,能夠覆蓋系統所有聯合的部件,是針對整個產品系統進行的測試,能夠驗證系統是否滿足需求規格的定義,因此,我認爲系統測試很重要。

◆ ◆ ◆  ◆ ◆

9、集成測試和系統測試的區別,以及應用場景分別是什麼?

區別

  • 執行順序:先執行集成測試,待集成測試問題修復後,再做系統測試。

  • 用例粒度:集成測試比系統測試用例更詳細,集成測試對於接口部分也要重點寫,而系統測試的用例更接近用戶接受的測試用例。

應用場景

  • 集成測試:一般包含接口測試,對程序的提測部分進行測試。測試方法一般選用黑盒測試和白盒測試相結合。

  • 系統測試:針對整個產品的全面測試,既包含各模塊的驗證性測試和功能性測試,又包含對整個產品的健壯性、安全性、可維護性及各種性能參數的測試。測試方法一般採用黑盒測試法。

◆ ◆ ◆  ◆ ◆

10、測試開發需要哪些知識?具備哪些能力?

需要的知識:

軟件測試基礎理論知識,如黑盒測試、白盒測試等;

編程語言基礎,如C/C++、java、python等;

自動化測試工具,如Selenium、Appium等;

計算機基礎知識,如數據庫、Linux、計算機網絡等;

測試卡框架,如JUnit、Pytest、Unittest等。

具備的能力:

業務分析能力、缺陷洞察能力、團隊協作能力、專業技術能力、邏輯思考能力、問題解決能力、溝通表達能力和宏觀把控能力。

◆ ◆ ◆  ◆ ◆

11、請說一下手動測試與自動化測試的優缺點

手工測試缺點

  1. 重複的手工迴歸測試,代價昂貴、容易出錯。

  2. 依賴於軟件測試人員的能力。

手工測試的優點

  1. 測試人員具有經驗和對錯誤的猜測能力。

  2. 測試人員具有審美能力和心理體驗。

  3. 測試人員具有是非判斷和邏輯推理能力。

 

自動化測試的缺點

  1. 不能取代手工測試。

  2. 無法運用在測試複雜的場景

  3. 手工測試比自動化測試發現的缺陷更多。

  4. 對測試質量的依賴性極大。

  5. 自動化測試不能提高有效性。

  6. 比手動測試脆弱,需要維護成本。

  7. 工具本身並無想象力。

自動化測試的優點

  1. 對程序的迴歸測試更方便。

  2. 可以運行更多更繁瑣的測試。

  3. 可以執行一些手工測試困難或不可能進行的測試。

  4. 更好地利用資源。

  5. 測試具有一致性和可重複性。

  6. 測試的複用性。

  7. 增加軟件的信任度。

◆ ◆ ◆  ◆ ◆

12、自動化測試的運用場景舉例

  1. 線上迴歸(UI+接口)

  2. 手工測試難以執行的操作

  3. 簡單場景監控

  4. 穩定性測試(monkey+遍歷測試)

◆ ◆ ◆  ◆ ◆

13、軟件測試的核心競爭力是什麼?

答:早發現問題發現別人無法發現的問題

◆ ◆ ◆  ◆ ◆

14、測試和開發要怎麼結合才能使軟件的質量得到更好的保障

測試和開發可以按照V模型或W模型的方式進行結合。但應該按照W模型的方式進行結合比較合理

V模型:

 

測試過程加在開發過程的後半段,比較被動。

W模型:

測試提前,甚至和開發是同步進行,測試不僅是程序,還包括需求和設計。W模型有利於儘早地全面的發現問題,降低軟件開發的成本,風險前置。

◆ ◆ ◆  ◆ ◆

15、怎麼實施自動化測試

  1. 明確測試目的。

  2. 判斷項目適不適合進行自動化測試。

  3. 對項目做測試分析。

  4. 制定測試計劃和測試方案。

  5. 搭建自動化測試框架。

  6. 設計或編寫測試用例。

  7. 執行自動化測試。

  8. 評估。

◆ ◆ ◆  ◆ ◆

16、測試的相關流程

按W模型

需求測試 -> 概要設計測試 -> 詳細設計測試 -> 單元測試 -> 集成測試 -> 系統測試 -> 驗收測試

實際工作中的測試流程

需求評審 -> 技術評審 -> case評審 -> 開發自測以及冒煙測試 -> 整體提測(集成測試) -> 迴歸測試 -> 系統測試 -> 驗收測試

◆ ◆ ◆  ◆ ◆

17、測試項目具體工作是什麼

  1. 搭建測試環境

  2. 撰寫測試用例

  3. 執行測試用例

  4. 寫測試計劃、測試報告

  5. 測試並提交BUG

  6. 跟蹤BUG修改情況

  7. 自動化測試

  8. 性能測試、壓力測試、安全測試等其他測試

◆ ◆ ◆  ◆ ◆

18、BUG分級

兩個維度去劃分

  1. 按BUG嚴重程度劃分等級:

    • blocker:系統無法執行,崩潰,或嚴重資源不足,應用模塊無法啓動或異常退出,無法測試,系統不穩定。常見的:嚴重花屏、內存泄漏、用戶數據丟失或破壞、系統崩潰/死機/凍結、模塊無法啓動或異常退出、嚴重的數值計算錯誤、功能設計與需求嚴重不符、服務器500等。

    • critical:影響系統功能或操作,主要功能存在嚴重缺陷,但不會影響到系統的穩定性。常見的有:功能未實現,功能錯誤、系統刷新錯誤、數據通訊錯誤、輕微的數值計算錯誤、影響功能及界面的錯別字或拼寫錯誤。

    • major:界面、性能缺陷、兼容性。常見的有:操作界面錯誤、邊界條件錯誤、提示信息錯誤,長時間操作無法提示、系統未優化、兼容性問題。

    • minor/trivial:易用性及建議性的問題。

  2. 按BUG處理優先級劃分:

    • immediate:馬上解決

    • urgent:急需解決

    • high:高度重視,有時間馬上解決

    • low:在系統發佈前解決或確認可以不用解決

◆ ◆ ◆  ◆ ◆

19、APP性能指標有哪些?

答:內存、CPU、流量、電量、啓動速度、滑動速度、界面切換速度、與服務器交互的網絡速度。

◆ ◆ ◆  ◆ ◆

20、APP測試工具有哪些?

接口測試:postman

性能測試:jmeter

抓包工具:chales、fiddler

UI自動化:uiautomator2、appium、atx

穩定性測試:monkey、maxim、uicrawler、appcrawler

兼容性測試:wetest、testin

內存、cpu、電量測試:GT、soloPi

弱網測試:chales

◆ ◆ ◆  ◆ ◆

21、BUG的生命週期

複雜版:

  1. New(新的)

  2. Assigned(已指派)

  3. Open(打開的)

  4. Fixed(已修復)

  5. Pending Reset(待測試)

  6. Reset(再測試)

  7. Closed(已關閉)

  8. Reopen(再次打開)

  9. Pending Reject(拒絕中)

  10. Rejected(被拒絕的)

  11. Postponed(延期)

簡單版:

  1. 創建bug

  2. 分配bug

  3. 修復完待測試

  4. 關閉

  5. 重新開啓

  6. 無效

◆ ◆ ◆  ◆ ◆

22、什麼是α測試和β 測試?

α測試:在受控的環境下進行,由用戶在開發者的場所進行,開發者指導用戶測試,開發者負責記錄發現的錯誤和使用中遇到的問題。

β 測試:在開發者不可控的環境下進行,由軟件最終用戶在一個或多個客戶場所下進行,用戶記錄測試中遇到的問題,並定期上報給開發者。

◆ ◆ ◆  ◆ ◆

23、談談對敏捷的理解

提到敏捷,不得不聯想到瀑布開發。

瀑布開發項目爲核心,一般都會有一個相對較長的項目週期,一開始把項目設計得大而全,完成項目並交付後,工作重心就會轉移到另一個項目去。

敏捷開發是以需求爲核心,一開始不會把產品設計得大而全,而是通過快速迭代的方式,不斷採集需求,不斷更新迭代。敏捷開發的開發週期更短,能夠快速試錯,快速迭代,敏捷開發比瀑布開發更順應目前的軟件開發趨勢。

敏捷開發也對應着有敏捷測試,測試環節貫穿整個迭代週期,從需求評審到發佈上線,都離不開測試快速跟進。

測試左移:需求評審、用例設計、自測工具、靜態代碼掃描等;

測試中:業務測試,接口測試,性能測試等;

測試右移:穩定性測試,迴歸測試,灰度測試等

◆ ◆ ◆  ◆ ◆

24、什麼是壓力測試?壓力測試需要考慮哪些因素?

壓力測試是在高負載情況下,對系統穩定性進行測試。在高負載的情況下,系統出現異常的概率要比正常負載時要高。高負載包含長時間運行、大數據、高併發等情況。

在做壓力測試時,一般要考慮環境因素、性能指標、運行時間等要素。

壓測環境最好和生產環境一致,假如要在生產環境進行壓測,需要在凌晨等在線用戶量極少的情況下進行。在生產環境測試時要做好數據隔離,生產環境需提供虛擬數據,採用虛擬賬號,避免對真實線上用戶造成影響。

性能指標包括,內存、CPU、TPS、QPS、網絡流量、錯誤統計等,這些指標需要監控。

壓測一般需要運行長時間,最好能夠通過長時間的壓測,繪製出曲線圖,這樣更容易觀察到性能瓶頸。

▼▼▼

 

以上,是我面試過程中常常會碰到的面試題,如果有不對的地方,歡迎在下方留言。

希望能夠對大家有所幫助。

 

長按識別下方二維碼關注公衆號

關注我的微信公衆號【測試開發Guide】,

 

回覆「java」:即可獲得java經典學習資料(我花200元買的),帶你輕鬆入門java編程。

回覆「python」:免費獲取「python入門」高分好書,業餘時間偷偷變牛逼。

回覆「面試」:24個常見的測試面試題,你一定不想錯過。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章