基于風險測試的兩個決定因素就是:該功能出問題對用戶的影響有多大,出問題的概率有多大。其它一些影響因素還有復雜性、可用性、依賴性、可修改性等。測試人員主要根據事情的輕重緩急來決定測試工作的重點。
?、芑谀P偷臏y試
模型實際上就是用語言把一個系統的行為描述出來,定義出它可能的各種狀態,以及它們之間的轉換關系,即狀態轉換圖。模型是系統的抽象?;谀P偷臏y試是利用模型來生成相應的測試用例,然后根據實際結果和原先預想的結果的差異來測試系統。
4.2邏輯覆蓋
邏輯覆蓋是以程序內部邏輯結構為基礎來設計測試用例的技術,屬白盒測試。這一方法要求測試人員對程序的邏輯結構有清楚的了解,甚至要能掌握源程序的所有細節。由于覆蓋測試的目標不同,邏輯覆蓋又可分為:語句覆蓋、判定覆蓋、判定-條件覆蓋、條件組合覆蓋及路徑覆蓋。
?、?語句覆蓋 :語句覆蓋就是設計若干個測試用例,運行被測程序,使得每一可執行語句至少執行一次。這種覆蓋又稱為點覆蓋,它使得程序中每個可執行語句都得到執行,但它是最弱的邏輯覆蓋,效果有限,必須與其它方法交互使用。
?、?判定覆蓋 :判定覆蓋就是設計若干個測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少經歷一次。判定覆蓋又稱為分支覆蓋。
判定覆蓋只比語句覆蓋稍強一些,但實際效果表明,只是判定覆蓋,還不能保證一定能查出在判斷的條件中存在的錯誤。因此,還需要更強的邏輯覆蓋準則去檢驗判斷內部條件。
?、?條件覆蓋 :條件覆蓋就是設計若干個測試用例,運行被測程序,使得程序中每個判斷的每個條件的可能取值至少執行一次。
條件覆蓋深入到判定中的每個條件,但可能不能滿足判定覆蓋的要求。
?、?判定-條件覆蓋 :判定-條件覆蓋就是設計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執行一次,同時每個判斷本身的所有可能判斷結果至少執行一次。換言之,即是要求各個判斷的所有可能的條件取值組合至少執行一次。
判定-條件覆蓋有缺陷。從表面上來看,它測試了所有條件的取值。但是事實并非如此。往往某些條件掩蓋了另一些條件。會遺漏某些條件取值錯誤的情況。為徹底地檢查所有條件的取值,需要將判定語句中給出的復合條件表達式進行分解,形成由多個基本判定嵌套的流程圖。這樣就可以有效地檢查所有的條件是否正確了。
?、?多重條件覆蓋 :多重條件覆蓋就是設計足夠的測試用例,運行被測程序,使得每個判斷的所有可能的條件取值組合至少執行一次。
這是一種相當強的覆蓋準則,可以有效地檢查各種可能的條件取值的組合是否正確。它不但可覆蓋所有條件的可能取值的組合,還可覆蓋所有判斷的可取分支,但可能有的路徑會遺漏掉。測試還不完全。
?、?路徑測試 :路徑測試就是設計足夠的測試用例,覆蓋程序中所有可能的路徑。這是最強的覆蓋準則。但在路徑數目很大時,真正做到完全覆蓋是很困難的,必須把覆蓋路徑數目壓縮到一定限度。
(2) 判定覆蓋
所謂判定覆蓋就是設計若干個測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少經歷一次。判定覆蓋又稱為分支覆蓋。
(3) 條件覆蓋
所謂條件覆蓋就是設計若干個測試用例,運行被測程序,使得程序中每個判斷的每個條件的可能取值至少執行一次。例如在本題所給出的例子中,我們事先可對所有條件的取值加以標記。
(4) 判定-條件覆蓋
所謂判定-條件覆蓋就是設計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執行一次,同時每個判斷本身的所有可能判斷結果至少執行一次。換言之,即是要求各個判斷的所有可能的條件取值組合至少執行一次
(5) 條件組合覆蓋
所謂條件組合覆蓋就是設計足夠的測試用例,運行被測程序,使得每個判斷的所有可能的條件取值組合至少執行一次。
(6) 路徑測試
路徑測試就是設計足夠的測試用例,覆蓋程序中所有可能的路徑。
4.3 等價類劃分
等價類劃分是一種典型的黑盒測試方法。使用這一方法時,完全不考慮程序的內部結構,只依據程序的規格說明來設計測試用例。由于不可能用所有可以輸入的數據來測試程序,而只能從全部可供輸入的數據中選擇一個子集進行測試。如何選擇適當的子集,使其盡可能多地發現錯誤。解決的辦法之一就是等價類劃分。
原文轉自:http://www.uml.org.cn/Test/201511262.asp