在遇到有事務流或由于某種條件成立導致狀態改變的軟件項目時,如何進行測試用例的設計就比較麻煩。以前所講的各種方法,每個被測對象之間是沒有相互的關聯或數據流向發生,遇到這樣的事務流軟件就要考慮用其他方法進行用例的設計了。
以前在講操作系統原理時,曾經提到過進程的狀態轉換。我們看以下圖形: ![]() 當進程從就緒隊列中被進程調度算法選中的時候,它就被調進CPU里執行,這個時候進程的狀態由就緒狀態變換到執行狀態;而當該進程執行完畢的時候,是由于所分配的時間片用完,進程調度算法又回到就緒隊列里重新提取。當進程執行到一定階段時,由于發生I/O事件,例如:外部數據的輸入或運行的中間數據的輸出,這時候CPU必須進行中斷處理,那么該進程就由執行狀態轉變成阻塞狀態,等待事件的完成;當事件完成后,進程從阻塞狀態就轉換成就緒狀態,等待進程調度算法的再一次選中。 以上是操作系統中進程的狀態遷徙過程。 我們以QQ登錄界面為例子,用來講解狀態圖法設計測試用例。 (一)通過對QQ登錄界面的分析,我們看到有4個輸入項: ip1:輸入帳號 ip2:輸入密碼 ip3:點擊“登錄”按鈕 ip4:點擊“關閉”按鈕 (二)那么從QQ啟動界面開始,進行狀態遷徙分析: 第1輪狀態圖: ![]() 第2輪狀態圖:
|