1. 程式人生 > >軟體工程---軟體測試

軟體工程---軟體測試

目錄

 

一、軟體測試的目的和原則

軟體測試的目的

軟體測試的原則

測試資訊流

測試與軟體開發各階段的關係

 

二、測試用例設計

1、邏輯覆蓋

2、路徑測試:設計足夠的測試用例,覆蓋程式中所有可能的路徑

測試用例設計:

等價類劃分原則:

邊界值分析

基本步驟


一、軟體測試的目的和原則

軟體測試的目的

軟體測試的原則

軟體測試的物件

測試資訊流

測試與軟體開發各階段的關係

 

軟體測試的目的

-1測試時程式的執行過程,目的在於發現錯誤 

 -2一個好的測試用例在於能發現至今未發現的錯誤  

-3一個成功的測試是發現了至今未發現的錯誤的測試

軟體測試的原則

-1應當把“儘早地和不斷地進行軟體測試”作為軟體開發者的座右銘

-2測試用例應由測試輸入資料和對應的預期輸出結果這兩部分組成

-3程式設計師應避免檢查自己的程式

-4在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件

測試資訊流

三個輸入

-軟體配置  -測試配置  -測試工具

三個輸出

-測試結果分析   -排錯   -修正後的文件再測試

測試與軟體開發各階段的關係

軟體開發過程是一個自頂向下,逐步細化的過程

測試過程是依相反順序安排的自底向上,逐步整合的過程

 

二、測試用例設計

分為黑盒測試和白盒測試

白盒測試:內部結構透明,主要測試程式邏輯路徑,又稱結構測試---邏輯驅動測試

1、邏輯覆蓋

語句覆蓋、判斷覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋、路徑覆蓋

-語句覆蓋:設計若干個測試用例,執行被測程式,使得每一可執行語句至少執行一次

判定覆蓋:設計若干個測試用例,執行被測程式,使得程式中每個判斷的取真分支和取假分支至少經歷一次

-條件覆蓋:設計若干個測試用例,執行被測程式,使得程式中每個判斷的每個條件的可能取值至少執行一次

-判定-條件覆蓋:設計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執行一次,同時每個判斷中的每個條件的可能取值至少      執行一次

條件組合覆蓋:條件組合覆蓋就是設計足夠的測試用例,執行被測程式,使得每個判斷的所有可能的條件取值組合至少執行一次

2、路徑測試:設計足夠的測試用例,覆蓋程式中所有可能的路徑

條件測試路徑選擇:當程式中判定多於一個時,形成的分支結構可以分為兩類 -巢狀型分支結構和連鎖型分支結構

迴圈測試路徑選擇:簡單迴圈、巢狀迴圈、連鎖迴圈、非結構迴圈(儘量轉化為結構迴圈)

黑盒測試:把測試物件看成一個黑盒,主要測試功能,又稱功能測試---資料驅動測試

測試用例設計:

等價類劃分、邊界值分析、錯誤推測法、因果圖

等價類劃分:把所有可能的輸入資料,即程式的輸入域化糞池若干部分,然後從每一部分中選取少數有代表性的資料做為測試用例

分為有效等價類和無效等價類

等價類劃分原則:

-1輸入條件規定了取值範圍或值的個數,則可以確立一個有效等價類和兩個無效等價類

-2如果輸入條件規定了輸入值的集合,或者是規定了“必須如何”的條件,這時可確立一個有效等價類和一個無效等價類

-3如果輸入條件是一個布林量,則可以確定一個有效等價類和一個無效等價類

-4如果規定了輸入資料的一組值,而且程式要對每個輸入值分別進行處理

-5如果規定了輸入資料必須遵守的規則,則可以確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則)

邊界值分析

邊界值分析設計測試用例應遵循原則:

1、如果輸入條件規定了取值範圍,則應對範圍的邊界內附近,恰好在邊界和邊界外附近(無效等價類中)設計,測試用例

2、如果屬入條件規定了資料的個數,則應對最小個數,最大個數,比最少個數少1,比最大個數大1等清空設計測試用例

等價類和邊界值方法的區別

1、邊界值不是從等價類中隨便取一個數據作為代表,而是選一個或幾個特定值,使這個等價類的每個邊界都作為測試的目標

2、邊界值分析不僅要考慮輸入條件,而且要考慮輸出條件(輸出等價類)

一般聯合使用等價類劃分和邊界值分析兩種種方法

錯誤推測法:列舉出程式中所有可能有的錯誤和容易發生錯誤的特殊情況,根據它們選擇測試用例

因果圖:如果在測試時必須考慮輸入條件的各種組合,可使用一種適合於描述對於多種條件的組合,相應產生多個動作的形式來設計測試用例,因果圖方法最終生成的就是判定表

基本步驟

1、分析軟體規格說明描述中,哪些是原因,哪些是結果,並給每個原因和結果賦予一個識別符號

2、分析軟體規格說明描述中的語義,找出原因與結果之間,原因與原因之間對應的是什麼關係?根據這些關係,畫出因果圖

3、由於語法或環境限制,有些原因與原因之間,原因與結果之間的組合情況不可能出現,為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件

4、把因果圖轉換成判定表

5、把判定表的每一列拿出來作為依據 ,設計測試用例