標籤:
(a)為printPrime( )方法畫控制流程圖。
此圖我用的Word完成,非常累,後來想起我還有OmniGraffle但是為時已晚,圖如下:
(b)考慮測試案例t1=(n=3)和t2=(n=5)。即使這些測試案例遊歷printPrimes()方法中相同的主路徑,他們不一定找出相同的錯誤。設計一個簡單的錯誤,使得t2比t1更容易發現。
答:如果n值大,t2=(n=5)就容易出現資料越界的錯誤。
(c)針對printPrimes(),找到一個測試案例,使得響應的測試路徑訪問串連while語句開始到for語句的邊,而不用通過while迴圈體。
答:找到測試案例 n = 1,不滿足numPrimes < n的條件,使得響應的測試路徑訪問串連while語句開始到for語句的邊,而不用通過while迴圈體。
(d) 針對printPrimes()的圖例列舉每個節點覆蓋,邊覆蓋和主路徑覆蓋的測試需求。
答:1)節點覆蓋: TR = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
2 邊覆蓋: TR = {(1,2),(2,3),(2,12),(3,4),(4,5),(5,6),(6,7),(6,8),(7,5),(8,9),(5,9),(9,10),(9,11),(10,11),(11,2),(12,13),(13,14),(14,15),(15,13),(13,16)}
3)主路徑覆蓋:
TR = {(1,2,3,4,5,6,7),
(1,2,3,4,5,6,8,9,10,11),
(1,2,3,4,5,6,8,9,11),
(1,2,3,4,5,9,10,11),
(1,2,3,4,5,9,11),
(1,2,12,13,14,15),
(1,2,12,16),
(2,3,4,5,6,8,9,10,11,2),
(2,3,4,5,6,8,9,11,2),
(2,3,4,5,9,10,11,2),
(2,3,4,5,9,11,2),
(3,4,5,6,8,9,10,11,2,12,13,14,15),
(3,4,5,6,8,9,11,2,12,13,14,15),
(3,4,5,6,8,9,10,11,2,12,13,16),
(3,4,5,6,8,9,11,2,12,13,16),
(3,4,5,9,10,11,2,12,13,14,15),
(3,4,5,9,11,2,12,13,14,15),
(3,4,5,9,10,11,2,12,13,16),
(3,4,5,9,11,2,12,13,16),
(5,6,7,5),
(6,7,5,9,10,11,2,12,13,14,15),
(6,7,5,9,11,2,12,13,14,15),
(6,7,5,9,10,11,2,12,13,16),
(6,7,5,9,11,2,12,13,16),
(13,14,15,13),
(14,15,13,16),
}
軟體測試作業隨筆之三:printPrime( )課後問題(a)(b)(c)(d)