計算機編程人員在編寫好程序以后需要對程序進行測試.程序員需要知道到底有多少條執(zhí)行路徑(即程序從開始到結(jié)束的路線),以便知道需要提供多少個測試數(shù)據(jù).一般地,一個程序模塊由許多子模塊組成.如圖所示,它是一個具有許多執(zhí)行路徑的程序模塊.問這個程序模塊有多少條執(zhí)行路徑?

思路解析:整個模塊的任意一條執(zhí)行路徑都分兩步完成:第1步是從開始執(zhí)行到A點;第2步是從A點執(zhí)行到結(jié)束.而第1步可由子模塊1或子模塊2或子模塊3來完成;第2步可由子模塊4或子模塊5來完成.因此,分析一條指令在整個模塊的執(zhí)行路徑需要用到兩個計數(shù)原理.

解:由分類加法計數(shù)原理,子模塊1或子模塊2或子模塊3中的子路徑共有

18+45+28=91(條);

子模塊4或子模塊5中的子路徑共有38+43=81(條).

又由分步乘法計數(shù)原理,整個模塊的執(zhí)行路徑共有91×81=7 371(條).

巧妙變式  為了減少測試的時間,程序員需要設(shè)法減少測試次數(shù).你能幫助程序員設(shè)計一個測試方法,以減少測試次數(shù)嗎?

解:在實際測試中,可把每一個子模塊看成一個黑箱,即通過只考察是否執(zhí)行了正確的子模塊的方式來測試整個模塊.這樣,可以先分別單獨測試5個模塊,以考察每個子模塊的工作是否正常.總共需要的測試次數(shù)為

18+45+28+38+43=172.

再測試各個模塊之間的信息交流是否正常,只需要測試程序第1步中的各個子模塊和第2步中的各個子模塊之間的信息交流是否正常,需要的測試次數(shù)為

3×2=6.

如果每個子模塊都工作正常,并且各個子模塊之間的信息交流也正常,那么整個程序模塊就工作正常.這樣,測試整個模塊的次數(shù)就變?yōu)?72+6=178(次).

顯然,178與7 371的差距是非常大的.

練習(xí)冊系列答案
相關(guān)習(xí)題

同步練習(xí)冊答案