問題1.1 (2分)請簡述基本路徑測試法的概念。
問題1.2 (8分)請畫出上述程序的控制流圖,並計算其控制流圖的環圖複雜度V(G)。
問題1.3 (5分)請給出問題2中的控制流圖的線性無關路徑
【分析】
【問題1】
本問題考查白盒測試用例設計方法中的基本路徑測試法。
基本路徑測試法是在程序控制流圖的基礎上,通過分析控制構造的環路複雜性,導出基本可執行路徑,從而設計測試用例的方法。
【問題2】
本問題考查白盒測試用例設計方法:基本路徑測試法。涉及的知識點包括根據代碼繪製控制流圖、計算環路複雜度。
控制流圖是描述程序控制流的一種圖示方式,它由節點和定向邊構成。控制流圖的節點代表一個基本塊,定向邊代表控制流的方向。其中要特別注意的是,如果判斷中的條件表達式是複合條件,即條件表達式是由一個或多個邏輯運算符連接的邏輯表達式,則需要改變複合條件的判斷爲一系列之單個條件的嵌套的判斷。本題程序中,if(tw!=size.x||th!=size.y)這條判斷語句中的判定由兩個條件組成,因此在畫控制流圖的時候需要拆開形成兩條判斷語句。需要注意的是,複合條件之間是“&&”的關係還是“||”的關係反應在控制流圖的畫法是不同的。
程序的環路複雜度等於控制流圖中判定節點的個數加1,本題控制流圖中判定節點個數爲4,所以V(G)=5.
【問題3】
本題考查白盒測試用例設計方法:基本路徑法。涉及的知識點包括:根據控制流圖和環路複雜度給出線性無關路徑。
線性無關路徑是指包含一組以前沒有處理的語句或條件的路徑。從控制流圖上來看,一條線性無關路徑是至少包含一條在其他線性無關路徑中從未有過的邊的路徑。程序的環路複雜度等於線性無關路徑的條數,所以本題中應該有5條線性無關路徑。
1 | 1-2-4-5-6-8-9-10 |
2 | 1-2-4-5-7-8-9-10(1-2-4-5-7-8-10) |
3 | 1-2-4-5-6-8-10(1-2-4-5-7-8-10) |
4 | 1-2-3-4-5-6-8-9-10(1-2-3-4-5-7-8-9-10,1-2-3-4-5-6-8-10,1-2-3-4-5-7-8-10) |
5 | 1-2-3-8-9-10(1-2-3-8-10) |