狀態遷移圖
通過描繪系統的狀態及引起狀態轉換的事件,來表示系統的行為
例如:訂機票
l向航空公司打電話預定機票—>此時機票信息處于
“完成”狀態
顧客支付了機票費用后—>機票信息就變為“已支付”狀態
旅行當天到達機場后,拿到機票后—>機票信息就變為“已出票”狀態
登機檢票后—>機票信息就變為“已使用”狀態
在登上飛機之前任何時間可以取消自己的訂票信息,
如果已經支付了機票的費用,則還可以得到退款,
取消后—>訂票信息處于“已被取消”狀態
轉換成遷移樹:
2.狀態遷移圖設計測試用例步驟:
1)畫出狀態遷移圖
2)通過狀態遷移圖畫出狀態轉換樹
3)從狀態轉換樹推導出測試路徑
4)根據測試路徑編寫合法(正常)測試用例或非法(異常)測試用例
注意:保證從狀態轉換樹的根節點到每個葉節點的每一條路徑都至少設計出一個測試用例
案例:打印機狀態
狀態遷移圖:
狀態遷移樹:
推到用例:
a.驗證打印完成
b.驗證打印完成(修復故障)
c.驗證打印完成(加紙)
2.因果圖
1)定義:因果圖提供了一個把規格轉化為判定表的系統化方法,從該圖中可以產生測試數據,其中,原因表示輸入條件,結果是對輸入執行的一系列計算后得到的輸出。
2)作用:因果圖方法最終生成的就是判定表,它適合檢查軟件輸入條件的各種組合情況。
3)因果圖中的約束:在實際問題中輸入狀態相互之間,輸出狀態相互之間可能存在某些依賴關系,稱為“約束”。對于輸入條件的約束有E,I,O,R四種約束,對于輸出條件的約束只有M約束。
?E約束(異):a和b中最多有一個可能為1,即a和b不能同時為1。
?I 約束(或):a、b、c中至少有一個必須為1,即 a、b、 c不能同時為0。
?O約束(唯一):a和b必須有一個且僅有一個為1。
?R約束(要求):a是1時,b必須是1,即a為1時,b不能 為0。
?M約束(強制):若結果a為1,則結果b強制為0。
4)因果圖中的四種基本關系:
在因果圖的基本符號中,圖中的左結點ci表示輸入狀態(或稱原因),右結點ei表示輸出狀態(或稱結果)。
ci與ei取值0或1,0表示某狀態不出現,1表示某狀態出現。
?恒等:若 c1 是1,則 e1 也為1,否則 e1 為0。
例如:有錢=富豪
?非:若c1是1,則e1為0,否則e1為1:;
5)因果圖轉換判定表的方法:
a.將因果圖中的所有條件(因)填入判定表的條件樁中;
b.將因果圖中的所有動作(果)填入判定表的動作樁中;
c.根據因果圖確定各個條件組合對應的動作,并且確定判定表中各個規則的條件項和動作項,在需要時優化判定表。
6)因果圖的步驟:
a.把大的系統規格劃分解成可以測試的規格片段;
b.分析分解后待測的系統規格,找出哪些是原因,哪些是結果
c.畫出因果圖
d.把因果圖轉化成判定表
e.簡化判定表
f.用判定表中每一列生成測試用例
7)因果圖的優缺點:
優點:
a. 等價類法盡管各個輸入條件可能出錯的情況都考慮 到了,但是多個輸入條件組合起來出錯的情況卻被 忽略了
b. 因果圖法能夠幫助我們按照一定步驟,高效的選擇 測試用例,設計多個輸入條件組合用例
c. 因果圖分析還能為我們指出,程序規格說明描述中 存在什么問題
缺點:
a. 輸入條件與輸出結果的因果關系,有時難以從軟件 需求規格說明書得到
b. 即使得到了這些因果關系,也會因為因果關系復雜 導致因果圖非常龐大,測試用例數目及其龐大
案例:
一個處理單價為5角錢的飲料的自 動售貨機。其規格說明如下:
若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應的飲料就送出來。若售貨機沒有零錢找,則一個顯示〖零錢找完〗的紅燈亮,這時在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時退還5角硬幣。