參考答案與分析
一、選擇題(1-25每題2分,共50分)
1. A 2. A 3. C 4. C5. C
6. B 7. B 8. B 9. D10. C
11. B 12. D 13. A 14. D15. C
16. D 17. B 18. C 19. D20. C
21. C 22. C 23. A 24. C25. A
二、論述題
1.首先分析手機中MP3播放器的各種狀態(tài)有三個:播放、待機和停止。故根據(jù)題意找出各種狀態(tài)之間轉(zhuǎn)換的關(guān)系及條件,畫出該程序狀態(tài)圖,如下圖所示:
2.問題1:
解答:
首先分析軟件中出現(xiàn)的所有原因和結(jié)果,并將其標號。
原因:
1 投入1元5角硬幣
2 投入2元硬幣
3 按"可樂"按鈕
4 按"雪碧"按鈕
5 按"紅茶"按鈕
結(jié)果:
21 退還5角硬幣
22 送出"可樂"飲料
23 送出"雪碧"飲料
24 送出"紅茶"飲料
中間狀態(tài):
11 已投幣
12 已按鈕
然后根據(jù)上述原因和結(jié)果,以及各狀態(tài)間的關(guān)系,畫出因果圖,如圖所示:
問題2:
解答:
將上述因果圖轉(zhuǎn)換為判定表,如表所示,每一列可以作為確定測試用例的依據(jù)。
3.問題1:
解答:
根據(jù)源程序易得流程圖,如圖所示。
問題2:
解答:
經(jīng)過分析不難知,上面這個程序包含:
1)五個語句:每行一個語句。
2)三個條件:a>0;b<0;c>0
3)四個分支:有兩個if語句,每個if語句有兩個分支。
4)六個條件組合:條件表達式(a>0)||(b<0) 共有兩個條件,a>0和 b<0,故有四個條件組合;條件表達式(c>0) 只有一個條件c>0,故有兩個條件組合。所以該程序共有六個條件組合。
5)四條路徑:從程序的入口到出口的路徑共有四條,分別是:
Path1:1-2-3-5-6-8
Path2:1-2-3-5-7-8
Path3:1-2-4-5-6-8
Path4:1-2-4-5-7-8
這個程序有三個輸入:a、b、c,其輸入數(shù)據(jù)組合是非常大的。下面對該程序分別應(yīng)用不同的邏輯覆蓋準則,設(shè)計測試用例。
1 語句覆蓋
根據(jù)語句覆蓋準則,只需要采用兩個輸入數(shù)據(jù)組合:(a,b,c)=(1,1,1)、(-1,1,1),便可以把該程序的所有五個語句執(zhí)行一遍。
2 分支覆蓋(判定覆蓋)
根據(jù)分支覆蓋準則,只需要采用兩個輸入數(shù)據(jù)組合:(a,b,c)=(1,1,-1)、(-1,1,1),便可以把該程序的所有四個分支走遍。但未考慮b<0的情況,故不滿足條件覆蓋。說明滿足分支覆蓋的測試用例未必滿足條件覆蓋。
3條件覆蓋
根據(jù)條件覆蓋準則,只需要采用兩個輸入數(shù)據(jù)組合:(a,b,c)=(1,1,-1)、(-1,-1,1),便可以把該程序的三個條件的真假情況都覆蓋到。 由于表達式(a>0)||(b<0)的計算值都為真,不會執(zhí)行else語句,即不滿足分支覆蓋和語句覆蓋。說明滿足條件覆蓋的未必滿足分支覆蓋和語句覆蓋。
4條件組合覆蓋
根據(jù)條件組合的覆蓋準則 只需要采用四個輸入數(shù)據(jù)組合:(a,b,c)=(1,-1,1)、(1,1,1)、(-1,1,-1)、(-1,-1,-1),便可以把該程序的六個條件組合情況覆蓋到。但執(zhí)行的路徑數(shù)只有2個,故不滿足路徑覆蓋。說明滿足條件組合的覆蓋不一定滿足路徑覆蓋。
5 路徑覆蓋
根據(jù)路徑覆蓋的準則,由圖 可見,只需要采用四個輸入數(shù)據(jù)組合:(a,b,c)=(1,1,1)、(1,1,-1)、(-1,1,1)、(-1,1,-1),便可以把該程序的所有四條路徑都覆蓋。路徑覆蓋是最強的覆蓋準則。
![]() | ![]() .. 定價:¥133 優(yōu)惠價:¥133.0 更多書籍 |
![]() | ![]() .. 定價:¥124 優(yōu)惠價:¥124.0 更多書籍 |