軟體工程---軟體測試
目錄
一、軟體測試的目的和原則
軟體測試的目的
軟體測試的原則
軟體測試的物件
測試資訊流
測試與軟體開發各階段的關係
軟體測試的目的
-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、把判定表的每一列拿出來作為依據 ,設計測試用例