書籍訂閱的例子中包含了一個基本流程和8個可選流程。它們中的4個向前走,另外4個向后走。如果你想描述全部可能的用例結合,你將有超過4000個場景 (這里有8個可選流程,我們想讓其中4個做兩次,因為他們向后循環,所以是2的(8+4)次冪,,等于4096。很明顯,我們不需要把他們全部做完。
選擇能代表這四千個場景的一個合理子集。通常,明智的做法是選擇一個基礎流程,一個覆蓋了每一個可選流程的場景,以及一些合理的可選流程的結合。使用表 1的例子,做一個包含流程A1和A7的場景也許沒有什么意義,因為它們在圖標上分隔太遠以至于不能互相影響。但是,做A1和A2是有意義的,因為他們互相緊埃,之間互相影響。
表 2 圖解了選擇的場景:一個代表基本流程,8個代表每一個可選流程,6個反射可一些流程的結合(特別是那些擁有兩個距離很近的向后循環)。
以下15個場景值得測試:
表2. 值得測試的場景
在RequisitePro中如何創建一個場景
在RequisitePro中場景不是一個標準的需求類型,所以你需要增加它成為一個新的需求種類。為了完成它,去Project Properties,選擇Requirement Types 標簽,然后點擊 Add。接下來,填充到適當的區域 (如圖 8所示),然后點擊OK。
圖8. 增加一個需求類型場景
創建了這個需求類型之后,我們應當輸入全部的場景并設置從用例到這些場景的追蹤,如圖 9所示。
圖9. 從用例到場景的追蹤
在RequisitePro中,你可以用用例的名字和一系列可選流程的名字為場景命名(例如:UC1, A6, A7)。
既然你有了所有的場景,你就需要獲得測試用例。這里需要完成4個步驟:
為用例的每個步驟確定變量
為每個變量有效地確定不同的選項
在測試用例中測試結合選項
為變量賦值
以下部分描述了這些步驟的細節。
步驟1:為每個用例步驟確定變量
在所給場景的所有步驟中你需要確定全部輸入的變量。例如,在某些步驟中,如果用戶輸入了用戶ID和密碼,這就產生了兩個變量。一個變量是用戶ID,另一個變量是密碼。變量也可以被用戶選擇(例如,保存更改或取消)。
這里是書籍訂購例子的全部變量:
在步驟B2中,這里有兩個變量:電子郵件地址和密碼。它們全是字符串。在步驟B3中,搜索一本書,這個變量是一個搜索字符串,因此它也是字符串。 在步驟B4,我們需要從系統返回的目錄中選擇一本書。在步驟 B8中,我們需要選擇送貨方式。Amazon.com 提供了4個選擇。
步驟2:為每個變量有效地確定不同的選項
如果它們引發不同的系統行為,選項將是"明顯不同的"。例如,如果我們選擇大概6到10的字符長的用戶id,以下的輸入顯然是不同的 :
Alex ——因為太短,我們希望顯示一個錯誤的信息
Alexandria ——因為它是一個有效的用戶id
Alexandrena ——因為太長,我們期待系統可以阻止我們輸入如此長的id
然而,"Alexandria" 和 "JohnGordon" 卻不是明顯不同,因為它們都是有效的用戶id,可以使系統有相同的反應。
以下的指導方針描述了一些特殊的例子。
一個選項可以認為是非常不同的,如果:
它引發了不同的程序流程 (通常是一個可選流程)例如
輸入無效的密碼將會引發可選流程2
它引發不同的錯誤信息例如
如果電子郵件太長,信息就會是 "電子郵件應當在50個字符以內"
如果電子郵件沒有包含 @ 符號,信息就會是:"無效的電子郵件地址"
它顯示了不同的用戶界面例如
如果付費的方式是信用卡,在區域里顯示的是信用卡號輸入號碼,產品有效期和持卡人的姓名。
它使得在下框中有不同的選則可以使用例如
顧客注冊界面包含了 "國家和州/省"的下拉框。"州/省"的下拉框一般是基于國家的選擇:比如美國,它包含了全部的州,加拿大是全部的省,其他國家是缺省的。它創建了3個不同的選項:
原文轉自:http://www.uml.org.cn/Test/200607073.htm