天天看點

軟體設計師--判定覆寫,判定條件覆寫,條件組合覆寫--一個栗子

軟體設計師--判定覆寫,判定條件覆寫,條件組合覆寫--一個栗子

針對上圖的一個判斷條件,在這裡将分别讨論判定覆寫、判定條件覆寫、條件組合覆寫的情況:

設T1=A>3,T2=B>3;為該判定節點的兩個子條件。

(一)判定覆寫:

    所謂的判定覆寫就是讓判定的真分支和假分支各執行一次,隻要列出的子條件能夠滿足真假分支各一次就可以了:

例如: A=4,B=3(T1=True,T2=False)走了真分支,A=3,B=3(T1=False,T2=False)走了假分支。

    當然,能走真假分支都走的條件組合還有很多種,這裡随便選一種就可以了。

(二)判定條件覆寫(條件覆寫):

    所謂判定條件覆寫就是給出的條件組合裡面每個子條件的真、假都出現過,也就是T1(True,False),T2(True,False)都出現過。現在如果我們拿過問題(一)的條件組合,那麼得到的就是:

     A=4,B=3(T1=True,T2=False)

    A=3,B=3(T1=False,T2=False)

發現T1(True,False)都有了,T2(__,False)隻有False,沒有出現True,是以随便補充一個T2=True的條件組合就可以了:

    A=3,B=4(T1=False,T2=True)

    這樣就滿足判定條件覆寫了,當然,如果不在問題(一)的基礎上擴充的話,可以用判定條件覆寫的最暴力的方式給出答案:

     A=4,B=4(T1=True,T2=True)

    A=3,B=3(T1=False,T2=False)

這樣就滿足了判定條件覆寫。

(三)條件組合覆寫:

    所謂的條件組合覆寫,就是一個判定的所有子條件的組合情況都出現一次。一般使用清單法,把子條件的所有組合情況都列出來,然後填表:

T1 T2 紅色是從問題 A B
TRUE TRUE (二)繼承的 5 5
FALSE FALSE ------ 3 3
TRUE FALSE 綠色是補充的 4 3
FALSE TRUE -------- 3 4

    在表格中的A B組合就滿足了條件組合覆寫,可見條件組合覆寫是包含着判定條件覆寫的,而判定條件覆寫不一定包含判定覆寫。

    注:本例中給出的測試用例嚴格來講都是錯誤的,因為一個完整的測試用例,還要給出結果,這裡隻是為了說明問題,程式是截塊的,是以就隻給了輸入,沒有給輸出。

繼續閱讀