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

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

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

18+45+28=91(條);

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

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

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

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

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

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

3×2=6.

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

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

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

同步練習(xí)冊(cè)答案