第一部分:基礎概念
1. 軟件測試是什么?
在規定的條件下對一個產品或者程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。
軟件測試工程師的任務
2. 軟件測試工程師的任務
軟件測試工程師主要工作是檢查軟件是否有bug、是否具有穩定性,寫出相應的測試計劃、測試規范、測試用例、測試數據、測試報告,及時糾錯及時更正,確保產品的正常運轉。
3. 測試開發工程師的任務
測試開發的核心職能依然是測試。
只是工程師在具備測試經驗、熟練使用測試工具并有一定開發能力的前提下,可以自主開發平臺,或對現有的開源工具進行二次開發
最終目的是提升產品的測試效率。
4. 測試開發與開發的聯系
測試開發是測試崗位衍生的一個分支,利用開發能力解決測試工作中的問題,
小到生成數據、并發模擬等工具的開發,大到整個自動化測試平臺的設計與實現,
旨在提高效率,降低成本。
5. 你知道哪些測試方法?
黑盒測試(也稱為功能測試):把測試對象看成一個黑盒子,不需要了解其內部實現,只需要根據需求說明書來檢查程序的功能是否滿足它的功能說明。(UI自動化測試實現是一個黑盒測試,只是功能測試的案例變成了代碼執行)
白盒測試:把測試對象當成一個透明的盒子,針對其代碼內部實現進行測試。(一般是大企業 開發來搞)
灰盒測試:介于黑盒測試和白盒測試之間,需要了解一點業務+代碼,比如自動化接口測試
單元測試:白盒測試的一種,對軟件設計中的單元模塊進行測試。
集成測試:在單元測試的基礎上,對單元模塊之間的連接和組裝進行測試。
系統測試:在所有都考慮的情況下,對系統進行測試。
驗收測試:第三方進行的確認軟件滿足需求的測試。
回歸測試:開完修改完后,驗證之前出現的問題是否還會在新版本中再次出現
6. 你理解的黑盒測試和白盒測試是什么?
黑盒測試常用方法并舉例:
等價類劃分法
等價類劃分是將系統的輸入域劃分為若干部分,從每個部分選取代表性數據進行測試,一個理想的測試用例能獨自發現一類錯誤。
邊界值分析法
邊界值分析法是對等價類劃分的一種補充,通過優先選擇不同等價類間的邊界值覆蓋有效等價類和無效等價類來更有效的進行測試,因此該方法要和等價類劃分法結合使用。選取的測試數據應該剛好等于、剛剛小于和剛剛大于邊界值(驗證程序員的>= <=這種寫的對不對)
判定表法
判定表是分析和表達多邏輯條件下執行不同操作的情況的工具。
錯誤分析法
錯誤推測法是基于以往的經驗和直覺,參照以往的軟件系統出現的錯誤,推測當前被測程序中可能存在的缺陷和錯誤。
白盒測試常用方法并舉例:
強度由低到高:
語句覆蓋:設計若干個測試用例,保證程序中的每一個執行語句至少執行一次,是”最弱的覆蓋“,難以發現代碼中的問題
判定覆蓋(分支覆蓋):使得程序中每個判斷的取真或取假至少經歷一次。
條件覆蓋:每個條件至少有一次真值或假值(不考慮組合情況)。
判定條件覆蓋:包含判定覆蓋和條件覆蓋。說白了程序中每個判斷的取真或取假至少經歷一次(判定覆蓋),同時每個條件至少有一次真值或假值(條件覆蓋)。不難發現判定條件覆蓋同時滿足判定覆蓋和條件覆蓋,彌補了兩者各自的不足,但是判定條件覆蓋并未考慮條件的組合情況。
條件組合覆蓋(組合覆蓋):每個條件的每種組合至少出現一次。顯然,滿足條件組合覆蓋的測試用例一定是滿足判定覆蓋、條件覆蓋和判定條件覆蓋的。
路徑覆蓋:所有路徑至少執行一次。
7. 軟件測試的流程是什么?測試人員該從那個階段進行介入?
需求分析階段
測試人員會進行需求評審,對產品的功能進行整體把握,根據需求寫用例
寫測試計劃
根據開發計劃制定具體的測試時間和人員計劃
撰寫測試用例
根據詳細的需求文檔,進行用例的編寫
使用思維導圖列舉測試大綱,盡量發散,想到什么就寫什么。先放后收,對知識點進行總結和歸納,標記重點測試模塊,刪除冗余及重復測試點
可使用邊界值法、等價類劃分法、錯誤推測法、因果圖法等設計案例
根據測試大綱制定測試用例,需包含模塊名、測試優先級、操作步驟、期望結果、測試結果、備注
用例評審
測試作為主導,聯合開發、項目經理、PM進行測試用例評審
可先講解測試大綱,讓開發、項目經理對測試用例有個大概后再詳細測試用例講解
執行測試用例
根據測試用例執行測試
發現問題保留現場,記錄測試方法,通知開發解決問題
覆蓋測試用例之外若有時間可進行探索性測試
缺陷報告編寫及提交
將發現的缺陷編寫成正式的缺陷報告,提交給開發人員進行缺陷的確認和修復
跟蹤BUG修改情況
執行自動化測試,編寫腳本,執行,分析,報告
進行性能測試,壓力測試等其他測試,執行,分析,調優,報告
8. 什么是單元測試?什么是集成測試?什么是系統測試?什么是回歸測試?什么是驗收測試?
測試的相關流程:需求測試->概要設計測試->詳細設計測試->單元測試->集成測試->系統測試->驗收測試
單元測試:白盒測試的一種,對軟件設計中的單元模塊進行測試。
集成測試:黑盒和白盒結合,在單元測試的基礎上,對單元模塊之間的連接和組裝進行測試。
系統測試:黑盒測試的一種,是對已經集成好的軟件系統進行徹底的測試,以驗證軟件系統的正確性和性能等是否滿足其規約所指定的要求。
回歸測試:是指在發生修改之后重新測試先前的測試用例以保證修改的正確性。
驗收測試:是部署軟件之前的最后一個測試操作。目的是確保軟件準備就緒,展示該系統滿足用戶的需求
9. 單元測試、集成測試、系統測試、驗收測試、回歸測試這幾步最重要的是那一步?
我認為系統測試更重要
因為此時單元測試和集成測試已經完成,能夠對軟件所有功能進行功能測試,能夠覆蓋系統所有聯合的部件,是針對整個產品系統進行的測試,能夠驗證系統是否滿足了需求規格的定義,因此我認為系統測試很重要。
10. 測試用例設計的方法有哪些?
等價類劃分法
邊界值分析法
判定表法
錯誤推測法
11. Bug
Bug的周期?
提交->確認->分配->修復->驗證->關閉