2009-12-24 70 views
0

我真的堅持了一些基於狀態檢測的概念...基於狀態的測試(狀態圖)過渡序列

我想計算一些檢查序列將涵蓋從每個州的所有轉變和我有答案,但我不明白他們:

alt text http://www.gam3r.co.uk/1m.jpg

現在的答案我已經有:

alt text http://www.gam3r.co.uk/2m.jpg

我完全不理解它。例如,假設我們想檢查s1中的轉換a/x,我們是否只做ab?因爲我們已經在s1中,所以我們做一個/ x來測試到s2的過渡,然後b來檢查我們是否處於前一個正確的狀態(s1)?我不明白爲什麼它是ABA或甚至BB的S1 ...

任何人都可以通過它談我嗎?

由於

回答

1

有在各4種狀態可用2個事件,給8個過渡,其中作者已決定在8個獨立的測試序列,以測試。每個序列(S1序列除外 - 顯然機器的初始狀態爲S1)需要將機器驅動到目標狀態,然後執行事件a或事件b。

他選擇的序列就足夠了,因爲每個轉換都被覆蓋了。但是,它們並不是獨一無二的,而且正如你所觀察到的 - 不是最小的。

一個更明智的選擇應該是:

A B AB AA AAA AAB BA BB

我不明白作者的目的,在每個序列末尾添加多餘的過渡。該系統是一個Mealy機器 - 機器的行爲由當前狀態和事件唯一確定。沒有通往當前狀態的路徑的記憶;因此作者的額外過渡不會給予額外的報道,只會造成混淆。

您也可以使用圖中較短的一組路徑來覆蓋所有轉換。但是,我會不願意這樣做。清晰度比測試代碼的優化更重要。