-
按照測試手段分類:黑盒測試、白盒測試;靜態測試、動態測試;手工測試、自動化測試
一、黑盒測試
不考慮程序內部結構和特性下,通過相關暴露出的接口,對程序進行測試
只檢查程序的功能是否按照需求規格說明的規定正常使用
程序是否能正常的接收輸入數據并產生輸出數據
一般針對軟件界面或可見的功能
從用戶的視角,通過不同的數據驅動系統,通過輸出來判斷
優缺點:
優點:容易實施,不需要關注內部的實現;更貼近用戶的使用角度
缺點:測試覆蓋率較低,一般只能覆蓋到代碼量的不到40%
針對黑盒的自動化測試,復用率較低,維護成本較高(關注功能,變化多的也是功能 自動化測試代碼維護成本高)
黑盒測試主要測試什么:
1)是否有不正確或遺漏的功能;
2)在接口上,輸入是否能正確的接受,能否輸出正確的結果;
3)數據結構錯誤或外部信息(文件數據)訪問錯誤;
4)性能是否滿足要求
設計方法:
1)等價類劃分法:輸入條件等價的歸為一類,形成幾組代表性的輸入
2)邊界值分析法:關注邊界條件
3)錯誤推測法:基于經驗或直覺來判斷程序中可能出現錯誤,針對性的設計測試用例(文件超大或文件不存在;界面輸入時考慮特殊字符)
4)因果圖法:對多種輸入條件組合的測試方法
5)正交試驗分析法:篩選代表性的輸入數據
6)狀態遷移圖法:梳理軟件功能點中的狀態關系,畫出狀態變遷圖設計測試用例
7)流程分析法:梳理程序的邏輯執行的路徑來設計測試用例
二、白盒測試(結構化測試 透明盒測試)
1、根據程序的邏輯結構來設計測試用例,用邏輯的覆蓋率來衡量測試的完整性,強調邏輯
2、邏輯的單位:
語句 :語句覆蓋指的是用例設計出來保證每一條語句至少執行一次
條件 :保證每一個條件表達式執行一次
條件組合: 覆蓋所有不同條件的組合成果
分支 :每個分支執行一次
路徑:每一個可能的路徑至少執行一次
優點:迫使測試人員去仔細思考軟件的實現,理解原理;可以檢測代碼中的每條分支和路徑;揭露隱藏在代碼中的錯誤;對代碼的測試比較徹底
缺點:追求高覆蓋率導致成本高;無法檢測代碼中遺漏的路徑和數據敏感性(數據處理的有問題)的錯誤;不能直接驗證需求的正確性
測試方法:
代碼檢測法:多面檢查 走查
靜態結構分析法:測試工具分析源代碼的內部邏輯結構
靜態質量度量法
邏輯覆蓋法
基本路徑測試法
三、灰盒測試
介于黑白盒測試之間的,關注輸出對于輸入的正確性,同時也關注內部表現
四、靜態測試
不運行被測程序,直接看文檔或代碼,來發現程序的不足
互審 走查 會議
五、動態測試
動態測試是指通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率、正確性和健壯性等
六、手工測試
由專門的測試人員從用戶視角來驗證軟件是否滿足設計要求的行為。更適用于針對深度的測試和強調主觀判斷的測試(探索性測試)
七、自動化測試
使用單獨的測試工具軟件控制測試的自動化執行以及對預期和結果進行自動檢查(單元測試 接口測試 性能測試)
八、手動測試與自動化測試區別
1、手工測試的優缺點
易發現缺陷(創造性 主觀性)
容易實施(只要環境具備 人員到位)
創造性、靈活性
覆蓋量化難(人對測試做到什么程度很難量化、覆蓋率能達到多少不好量化)
重復測試效率低
不一致性、可靠性低
人力資源依賴(依賴人能力的高低)
2、自動化測試
高效率、速度快
高復用性
覆蓋率容易度量
準確、可靠
不知疲勞
機械、發現缺陷率低
一次性投入大(從測試工具的選型、框架的設計、腳本的編寫與維護投入大)
查看全部 -
其他測試
回歸測試
Monkey測試
冒煙測試
AB測試
查看全部 -
文檔測試
可靠性測試
易用性測試
本地化測試
部署測試
無障礙測試
查看全部 -
兼容性測試
查看全部 -
安全測試
滲透測試
查看全部 -
性能測試
查看全部 -
軟件測試類型
查看全部 -
敏捷測試(Agile Testing)
遵循敏捷宣言的一種測試實踐
探索式測試的優點:
????更能激發測試人員的創造性和工作樂趣
????增加了發現新的或較深入Bug的可能性
????在較短的時間內找到更多Bug以及對SUT做一個快速的評估
????有利于更加有效地實施自動化
????更加適用于敏捷項目
????減少了在簡單、繁復上用例的無謂編寫時間
探索式測試的缺點:
????測試管理上有局限性,較難協調和控制
????對于Bug的重復利用和重現上作用有限
????對測試人員的測試技能和業務知識深度依賴較大
????只有在SUT已完全可用的前提下才更有作用
????ET的生產率很難定義
????ET本身較難進行自動化
查看全部 -
軟件測試的分類
按階段分類:單元測試、集成測試、系統測試、驗收測試
單元測試
定義:對軟件中的最小可測試單元進行檢查和驗證
原則1:盡可能保證各個測試用例時互相獨立的
原則2:一般由代碼的開發人員來實施,用以檢驗所開發的代碼功能符合自己的設計要求
益處:能盡早發現缺陷、有利于重構、簡化集成、文檔、用于設計
集成測試
定義:是在單元測試的基礎上,測試在將所有的軟件單元按照概要設計規格說明的要求組裝城模塊、子系統或系統的過程中各部分工作是否達到或實現相應技術指標及要求的活動
主要實施方案:Big bang、自頂向下、自底向上、核心系統集成、高頻集成
與單元測試對比:測試的對象、依據、方法不同
系統測試
定義:是將經過集成測試的軟件,作為計算機系統的一個部分,與系統中其他部分結合起來,在實際運行環境下對計算機系統進行一系列嚴格有效地測試,以發現軟件潛在的問題,保證系統的正常運行
關注點:系統本身的使用、與其他相關系統的連通、在不同使用壓力下的表現、在真實使用環境下的表現
與集成測試的對比:
驗收測試
定義:也稱交付測試。針對用戶需求、業務流程的正式的測試,確定系統是否滿足驗收標準,由用戶、客戶或其他授權機構決定是否接受系統。
細分:用戶驗收測試、運行驗收測試、合同和規范驗收測試、alpha測試、Beta測試
查看全部 -
軟件測試的分類
軟件測試模式
查看全部 -
講的特別好,點贊。
查看全部 -
測試分為:單元測試、集成測試、系統測試、驗收測試
單元測試:對軟件中最小可測試單元進行檢測與驗證。
單元測試益處:盡早發現缺陷、有利于重構、簡化集成、減少文檔、用于設計
單元測試限制:不可覆蓋所有執行路徑,不可保證捕捉到所有路徑,每一行代碼,一般需要3-5行測試代碼才可完成
集成測試:在單元測試基礎上測試,測試是否可達到或實現相應技術指標要求的活動、
驗收測試分為:用戶驗收測試、運行驗收測試、合同與規范驗收、alpha測試,Beta測試
查看全部 -
2-軟件測試手段
根據測試對象的可見度:黑盒測試、 白盒測試
根據狀態:靜態測試、動態測試
執行方式:手工測試、自動化測試
黑盒測試:
不考慮程序內部結構和內部特性下,通過相關暴露出的接口,對程序進行測試。
只檢查程序的功能是否按照需求規定,正常使用;
程序是否能適當的輸入輸出數據,并產生正確的輸出信息;
一般針對軟件外面的界面,可見的功能;
從用戶的視角,通過不同數據事件,通過輸出結果進行判斷;
優點:
1.容易實施,不需要關注內部的實現
2.更貼近用戶的使用角度
缺點:
1.測試覆蓋率較低,一般只能覆蓋到代碼量的不到40%
2.針對黑盒的自動化測試,復用率較低,維護成本較高。因:產品活動增/刪(更新)
黑盒測試主要測試什么
1.是否有不正確或遺漏的功能?
2.在接口上,輸入是否能正確的接受?能否輸出正確的結果?
3.是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?
4.性能上是否能夠滿足要求?
黑盒測試的主要設計方法
等價類劃分法:針對程序的輸入條件進行分類,輸入典型的數據
邊界值分析法:特殊的邊界數據,測試代碼的邊界狀態
錯誤推測法:基于經驗,直覺,判斷錯誤的地方;特殊字符,文件不存在
因果圖法:根據輸入輸出看做原因和結果,形成因果圖。(因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。)
正交試驗分析法:選出代表性的數據,作為輸入數據
狀態遷移圖法:軟件審批的過程,各種狀態遷移關系圖來設計
流程分析法:處理程序邏輯執行的路徑
白盒測試:邏輯覆蓋率??
主要的邏輯單位:?
? ? ? ? ? ?語句覆蓋:保證每條語句執行一次
分支(判定):保證每條分支至少執行一次
條件:條件表達式,至少計算一次
條件組合:所以不同條件下的組合情況
路徑:程序中,每個可能的路徑至少執行一次
優點
1.迫使測試人員去仔細思考軟件的實現,理解原理。
2.可以檢測代碼中的每條分支和路徑。
3.揭示隱藏在代碼中的錯誤。
4.對代碼的測試比較徹底。
缺點
1.昂貴。
2.無法檢測代碼中遺漏的路徑和數據敏感性錯誤
3.不能直接驗證需求的正確性白盒主要測試方法:
代碼檢測法:多面 代碼審查??
靜態結構分析法:測試工具,內部結構分析
靜態質量度量法:標準的度量模型
邏輯覆蓋法:6種邏輯,語句 ,分支,條件,條件組合,路徑,判定
基本路徑測試法:通過分析復雜度,選出基本可執行路徑的集合。程序控制流圖,描述程序控制流
灰盒測試
介于黑、白盒測試之間的,關注輸出對于輸入的正確性,同時也關注內部表現
靜態測試
定義:靜態測試是指無須執行被測程序,而是通過評審軟件文檔或代碼,度量程序靜態復雜度,檢查軟件是否符合編程標準,借以發現編寫的程序的不足之處,減少錯誤出現的概率;
動態測試
定義:動態測試是指通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率、正確性和健壯性等。
手工測試
由專門的測試人員從用戶視角來驗證軟件是否滿足設計要求的行為。更適用針對深度的測試和強調主觀判斷的測試。眾包測試,探索式測試
自動化測試
使用單獨的測試工具軟件控制測試的自動化執行以及對預期和結果進行自動檢查。
單元測試、接口測試、性能測試等查看全部 -
很不錯很不錯很不錯
查看全部 -
性能測試:驗證軟件的系統性能,可以滿足需求規格,驗證我們的系統可以滿足需求所要求的性能
a·負載測試:在測試過程中,逐步的增加負載,來觀察系統的表現,最終確定出系統在正常的指標范圍下的最大負載。
b·壓力測試:測試系統在極限情況下的壓力情況,最終系統在什么樣的壓力環境下會導致失效,不能正常運行,確定出我們這個系統所能承受的最大極限。
c·穩定性測試:一般是以稍大于正常業務量的負載進行持續的、長時間的測試,比如:24*5,連續5天的對這個系統進行24小時的施加壓力,以確定系統在較長時間的運行情況下,我們這個系統地穩定性情況。
性能指標:(WAB應用)
并發用戶數VU,同時訪問系統的用戶數量;
每秒事務數TPS,每秒系統處理業務的數量;
系統響應時間;
設備性能,CPU等內存使用情況
性能測試工具:LoadRunner(國內普及高) ,Silkperformer , Jmeter(java開源的有效的測試工具) ,WebLoad , Apache Bench, LoadUI(專門針對http接口的性能測試)
靜態性能評估:開發Web應用時,基于一系列Web應用頁面性能的最佳實踐隊Web應用的頁面進行靜態分析,并給出評估結果的性能分析方法。
評估的標準/工具(YSlow,PageSpeed)
下面博主以chrome瀏覽器為例,演示了這兩個插件。
應用性能管理(APM):
提供對系統的實時監控以實現性能管理、故障管理的解決方案。
下面博主演示了聽云公司的官網上的產品——聽云server的使用。
查看全部
舉報