軟件測試需要掌握哪些技術? | 當前位置: 首頁> 學習中心> 測試知識> 詳情 |
之前看到有小伙伴說:軟件測試(測試工程師)沒啥技術含量,也沒有難度。
其實,真正牛逼的測試工程師,是需要掌握很多技能的,要熟悉產品的各項功能、應用場景,根據產品整理測試用例、記錄結果等等...
這里簡單的給大家介紹下關于測試的一些基本知識。
1、黑盒測試、白盒測試、灰盒測試
1.1 黑盒測試
黑盒測試 又叫 功能測試、數據驅動測試 或 基于需求規格說明書的功能測試。該類測試注重于測試軟件的功能性需求。
采用這種測試方法,測試工程師把測試對象看作一個黑盒子,完全不考慮程序內部的邏輯結構和內部特性,只依據程序的《需求規格說明書》,檢查程序的功能是否符合它的功能說明。
測試工程師無需了解程序代碼的內部構造,完全模擬軟件產品的最終用戶使用該軟件,檢查軟件產品是否達到了用戶的需求。黑盒測試方法能更好、更真實地從用戶角度來考察被測系統的功能性需求實現情況。
在軟件測試的各個階段,如 單元測試、集成測試、系統測試及驗收測試 等階段中,黑盒測試都發揮著重要作用,尤其在系統測試和確認測試中,其作用是其他測試方法無法取代的。
1.2 白盒測試
白盒測試 又稱 結構測試、透明盒測試、邏輯驅動測試 或 基于代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,即清楚盒子內部的東西以及里面是如何運作的。
"白盒"法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯著手,得出測試數據。貫穿程序的獨立路徑數是天文數字。
白盒測試的測試方法有 代碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程序變異。
白盒測試法的覆蓋標準有 邏輯覆蓋、循環覆蓋 和 基本路徑測試。
其中 邏輯覆蓋 包括 語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋 和 修改條件判斷覆蓋 。六種覆蓋標準發現錯誤的能力呈 由弱到強 的變化:
語句覆蓋:每條語句至少執行一次。
判定覆蓋:每個判定的每個分支至少執行一次。
條件覆蓋:每個判定的每個條件應取到各種可能的值。
判定/條件覆蓋:同時滿足判定覆蓋、條件覆蓋。
條件組合覆蓋:每個判定中各條件的每一種組合至少出現一次。
修改條件判斷覆蓋:每一個判斷的所有可能結果都出現過、每一個判斷中所有條件的所有可能結果都出現過、每一個進入點及結束點都執行過、判斷中每一個條件都可以獨立的影響判斷的結果。
1.3 灰盒測試
灰盒測試,是介于白盒測試與黑盒測試之間的一種測試,灰盒測試多用于集成測試階段,不僅關注輸出、輸入的正確性,同時也關注程序內部的情況。
灰盒測試不像白盒那樣詳細、完整,但又比黑盒測試更關注程序的內部邏輯,常常是通過一些表征性的現象、事件、標志來判斷內部的運行狀態。
2、自頂向下集成和自底向上集成各自的優缺點
集成測試的方法有兩種:非增量式測試 和 增量式測試。
非增量式是每個模塊測試完了再連接。
增量式則是測一個模塊,就連接一個模塊。而采用增量式測試時又有兩種選擇:自頂向下結合、自底向上結合。
2.1 自頂向下集成
自頂向下的集成測試就是 按照系統層次結構圖,以主程序模塊為中心,自上而下按照深度優先或者廣度優先策略,對各個模塊一邊組裝一邊進行測試。
優點:
較早地驗證了主要控制和判斷點
按深度優先可以首先實現和驗證一個完整的軟件功能
功能較早證實,帶來信心;只需一個驅動,減少驅動器開發的費用
支持故障隔離。
缺點:
柱的開發量大
底層驗證被推遲
底層組件測試不充分
適應于產品控制結構比較清晰和穩定;高層接口變化較小;底層接口未定義或經常可能被修改;產口控制組件具有較大的技術風險,需要盡早被驗證;希望盡早能看到產品的系統功能行為。
2.2 自底向上集成
自底向上集成是 從系統層次結構圖的底層模塊開始進行組裝和集成測試的方式。對于某一個層次的特定模塊,因為它的子模塊(包括子模塊的所有下屬模塊)已經組裝并測試完成,所以不再需要樁模塊。在測試過程中,如果想要從子模塊得到信息可以通過直接運行子模塊得到。也就是說,在集成測試的過程中只需要開發相應的驅動模塊就可以了。
優點:
對底層組件行為較早驗證
工作起初可以并行集成,比自頂向下效率高
減少了樁的工作量;支持故障隔離。
缺點:
驅動的開發工作量大
對高層的驗證被推遲,設計上的錯誤不能被及時發現
適應于底層接口比較穩定;高層接口變化比較頻繁;底層組件較早被完成。
3、按照開發階段劃分,軟件測試可以分為哪幾個流程?
軟件測試類型按開發階段分為:
單元測試 又稱為模塊測試,是針對軟件設計的最小單位——程序模塊進行正確性檢查的測試工作,單元測試需要從程序內部結構出發設計測試用例,多個模塊可以平行地獨立進行單元測試。
集成測試 又稱為 組裝測試 或 聯合測試,在單元測試的基礎上需要將所有模塊按照概要設計說明書和詳細設計說明書的要求進行組裝。
確認測試 的目標是驗證軟件的功能和性能以及其他特性是否與用戶的要求一致。確認測試一般包括有效性測試和軟件配置復查。一般由第三方測試機構進行。
系統測試 軟件作為計算機系統的一部分,與硬件、網絡、外設、支撐軟件、數據以及人員結合在一起,在實際或模擬環境下,對計算機系統進行測試,目的在于與系統需求比較,發現問題。
驗收測試 以用戶為主的測試,軟件開發人員和質量保證人員參加,由用戶設計測試用例。不是對系統進行全覆蓋測試,而是對核心業務流程進行測試。
4、什么是測試用例,為什么要設計測試用例?
測試用例(Test Case)是為某個特殊目標而編制的 一組測試輸入、執行條件以及預期結果,以便測試某個程序路徑或核實是否滿足某個特定需求。
1、指導測試的實施
測試用例主要適用于集成測試、系統測試和回歸測試。在實施測試時測試用例作為測試的標準,測試人員一定要按照測試用例嚴格按用例項目和測試步驟逐一實施測試。并對測試情況記錄在測試用例管理軟件中,以便自動生成測試結果文檔。
根據測試用例的測試等級,集成測試應測試那些用例,系統測試和回歸測試又該測試那些用例,在設計測試用例時都已作明確規定,實施測試時測試人員不能隨意作變動。
2、規劃測試數據的準備
在我們的實踐中測試數據是與測試用例分離的。按照測試用例配套準備一組或若干組測試原始數據,以及標準測試結果。
尤其象測試報表之類數據集的正確性,按照測試用例規劃準備測試數據是十分必須的。
除正常數據之外,還必須根據測試用例設計大量邊緣數據和錯誤數據。
3、編寫測試腳本的"設計規格說明書"
為提高測試效率,軟件測試已大力發展自動測試。自動測試的中心任務是編寫測試腳本。
如果說軟件工程中軟件編程必須有設計規格說明書,那么測試腳本的設計規格說明書就是測試用例。
4、評估測試結果的度量基準
完成測試實施后需要對測試結果進行評估,并且編制測試報告。
判斷軟件測試是否完成、衡量測試質量需要一些量化的結果。例:測試覆蓋率是多少、測試合格率是多少、重要測試合格率是多少,等等。以前統計基準是軟件模塊或功能點,顯得過于粗糙。采用測試用例作度量基準更加準確、有效。
5、分析缺陷的標準
通過收集缺陷,對比測試用例和缺陷數據庫,分析確證是漏測還是缺陷復現。漏測反映了測試用例的不完善,應立即補充相應測試用例,最終達到逐步完善軟件質量。而已有相應測試用例,則反映實施測試或變更處理存在問題。
更多軟件測試相關推薦:
文章來源:網絡 版權歸原作者所有
上文內容不用于商業目的,如涉及知識產權問題,請權利人聯系博為峰小編(021-64471599-8103),我們將立即處理