一、基礎概念與理論題
什么是軟件測試?它的目的是什么?
回答:?軟件測試是通過人工或自動化手段,運行或評估軟件系統,以驗證它是否滿足規定的需求、識別實際結果與預期結果之間的差異,并評估軟件產品質量的過程。
目的:
發現缺陷 (Bug/Defect):?這是最直接的目的。
驗證需求:?確保軟件按照需求規格說明書和設計文檔正確實現。
驗證功能:?確保軟件的功能符合用戶期望。
建立信心:?提供軟件質量的信心給相關方(用戶、管理層等)。
預防缺陷:?通過早期介入和過程改進,預防缺陷的發生(更偏向QA)。
降低風險:?減少軟件發布后因質量問題帶來的業務風險。
功能測試 (Functional Testing) 和非功能測試 (Non-Functional Testing) 的區別?
回答:
功能測試:?驗證軟件做什么 (What)。關注系統的功能、行為是否符合需求規格說明書。測試點包括:輸入輸出、用戶界面、API、數據庫交互、業務邏輯、安全功能等。?例子:登錄功能能否成功?搜索能否返回正確結果?
非功能測試:?驗證軟件做得如何 (How Well)。關注系統的性能、可用性、可靠性、可維護性、兼容性、安全性(部分)、可擴展性等質量屬性。例子:系統能支持多少用戶并發?頁面加載時間多久?在不同瀏覽器上顯示是否正常?系統崩潰頻率?
解釋一下測試級別(Test Levels)?
回答:?軟件測試通常在不同的開發階段進行,形成不同的測試級別:
單元測試 (Unit Testing):?測試最小的可測試單元(通常是函數、方法、類)。由開發人員完成,關注代碼邏輯。
集成測試 (Integration Testing):?測試多個單元/模塊/組件組合在一起時,接口和數據交互是否正確。關注接口契約。
系統測試 (System Testing):?在完整的、集成的系統上進行測試,驗證整個系統是否符合功能和非功能需求。這是功能測試的主要舞臺。
驗收測試 (Acceptance Testing):?由用戶、客戶或業務分析師執行,驗證系統是否滿足業務需求和用戶期望,決定是否可接受。包括:
用戶驗收測試 (UAT - User Acceptance Testing)
業務驗收測試 (BAT - Business Acceptance Testing)
Alpha/Beta 測試 (Alpha/Beta Testing)
黑盒測試 (Black Box Testing) 和白盒測試 (White Box Testing) 的區別?功能測試通常屬于哪種?
回答:
黑盒測試:?測試者不了解軟件內部結構、設計和代碼實現。只關注輸入和輸出,基于需求規格說明書進行測試。功能測試通常屬于黑盒測試范疇。
白盒測試:?測試者了解軟件內部結構、設計和代碼實現。基于代碼邏輯設計測試用例(如語句覆蓋、分支覆蓋)。單元測試、集成測試常用。
灰盒測試 (Grey Box Testing):?介于兩者之間,測試者了解部分內部結構(如接口定義、數據庫模式),結合需求和結構信息進行測試。很多集成測試、API測試可視為灰盒。
什么是回歸測試 (Regression Testing)?為什么它很重要?
回答:?當軟件被修改(修復缺陷、新增功能、優化代碼)后,重新執行之前已經執行過的測試用例,以驗證這些修改沒有引入新的缺陷或破壞原有的、正常的功能。
重要性:?確保軟件質量的穩定性。在快速迭代開發中尤其關鍵,避免“按下葫蘆浮起瓢”。自動化測試是高效執行回歸測試的關鍵。