軟件設計師考前模擬試題及答案解析十
譯文試題3
閱讀以下利用場景法設計測試用例的技術說明,根據要求回答問題1~問題4。(15分)
【說明】
現有的軟件通常都是由事件觸發來控制流程的,事件觸發時的情景便形成了場景,而同一事件不同的觸發順序和處理結果就形成了事件流。該軟件設計思想也可被引入到軟件測試中,從而生動描繪出事件觸發時的情景,有利于測試設計者設計測試用例,同時使得測試用例更容易得到理解和執行。
用例場景是通過描述流經用例的路徑來確定的過程,這個流經過程要從用例開始到結束遍歷其中所有基本流(基本事件)和備選流(分支事件)。表12是對某IC卡加油機應用系統基本流的描述,表13是對該IC卡加油機應用系統備選流的描述。
表12 基本流描述表
序 號 |
用 例 名 稱 |
用 例 描 述 |
A1 |
準備加油 |
客戶將IC加油卡插入加油機 |
A2 |
驗證加油卡 |
加油機從加油卡的磁條中讀取賬戶代碼,并檢查它是否屬于可以接收的加油卡 |
A3 |
驗證黑名單 |
加油機驗證該卡賬戶是否存在于黑名單中,如果屬于黑名單,則加油機吞卡 |
A4 |
輸入購油量 |
客戶輸入需要購買的汽油數量 |
A5 |
加油 |
加油機完成加油操作,從加油卡中扣除相應金額 |
A6 |
返回加油卡 |
退還加油卡 |
表13 備選流描述表
序 號 |
用 例 名 稱 |
用 例 描 述 |
B |
加油卡無效 |
在基本流A2過程中,該卡不能夠識別或是非本機可以使用的IC卡,加油機退卡,并退出基本流 |
C |
卡賬戶屬于黑名單 |
在基本流A3過程中,判斷該卡賬戶屬于黑名單(如已經掛失),加油機吞卡并退出基本流 |
D |
加油卡賬面資金不足 |
系統判斷加油卡內資金不足,重新加入基本流A4,或選擇退卡 |
E |
加油機油量不足 |
系統判斷加油機內油量不足,重新加入基本流A4,或選擇退卡 |
【問題1】(3分)
圖15是對該IC卡加油機應用系統的基本流路徑和備選流路徑的描述,請用試題描述中的相應字母(見表12和表13)將圖中(1)~(6)空缺處的內容填寫完整。
【問題1】答案解析:
這是一道要求考生掌握場景法的基本流和備選流路徑描述的應用分析題。本題的解答思路如下。
① 經過用例的每條不同路徑都反映了基本流和備選流,而且都用箭頭來表示?;玖饔么种焙诰€來表示,是經過用例的最簡單的路徑。圖15中粗直黑線就是對該IC卡加油機應用系統基本流路徑的描述。
② 根據表12中A1~A6各個基本流的描述和描述順序,以及圖14中已給出的基本流A1、A2、A3和A6的路徑位置可知,圖14中(3)空缺處填寫的內容就是“A4(輸入購油量)”,(4)空缺處填寫的內容應為“A5(加油)”。
③ 備選流用不同的彩色曲線表示,一個備選流可能從基本流開始,在某個特定條件下執行,然后重新加入基本流中;也可能起源于另一個備選流,或者終止用例而不再重新加入某個流。
④ 根據表13中備選流B的描述“在基本流A2過程中,該卡不能夠識別或是非本機可以使用的IC卡,加油機退卡,并退出基本流”可知,備選流B的路徑起源于基本流A2,終點是基本流A6(退還加油卡)。因此圖14中(1)空缺處填寫的內容就是“B(加油卡無效)”。
⑤ 同理,根據表13中備選流C的關鍵描述“在基本流A3過程中,判斷該卡賬戶屬于黑名單,加油機吞卡退出基本流”可知,備選流C的路徑起源于基本流A3,終點是基本流A6(退還加油卡)。因此圖14中(2)空缺處填寫的內容就是“C(卡賬戶屬于黑名單)”。
⑥ 備選流D(加油卡賬面資金不足)的描述“系統判斷加油卡內資金不足,重新加入基本流A4,或選擇退卡”中,“系統判斷加油卡內的資金不足”是指當客戶輸入需要購買的汽油數量時,該IC卡加油機應用系統將準備購買的汽油數量乘以單位油價得到需支付的費用,并將此費用與客戶加油卡內資金進行比較后的一種可能結果。因此備選流D的路徑起源于基本流A4(輸入購油量)之后,基本流A5(加油)之前。由備選流D的描述“重新加入基本流A4,或選擇退卡”可知,備選流D的路徑終點可能是基本流A4,以便重新進行購油量的輸入;也可能是基本流A6(退還加油卡)。因此需將“D(加油卡賬面資金不足)”的內容同時填入圖14中(5)和(6)空缺處。
⑦ 備選流E(加油機油量不足)的描述“系統判斷加油機內油量不足,重新加入基本流A4,或選擇退卡”中,“系統判斷加油機內油量不足”是指當客戶輸入需要購買的汽油數量時,該IC卡加油機應用系統將準備購買的汽油數量與系統加油機內現存的汽油數量進行比較后的一種可能結果。因此備選流E的路徑起源于基本流A4(輸入購油量)之后,基本流A5(加油)之前。備選流E的路徑終點可能是基本流A4,以便重新進行購油量的輸入,也可能是基本流A6(退還加油卡)。因此需將“E(加油機油量不足)”的內容同時填寫入圖14中(5)和(6)空缺處。
【問題2】(8分)
場景中的每一個場景都需要確定測試用例,一般采用矩陣或決策表來確定和管理測試用例。表14是一種通用格式,表中各行代表各個測試用例,而各列代表測試用例的信息。本例中的測試用例包含測試用例ID號、場景(或說明/條件)、測試用例中涉及的所有數據元素(作為輸入或已經存在于數據庫中),以及預期結果等項目。
![]() |
圖14 |
測試用例的設計步驟通常是,首先確定執行用例場景所需的數據元素(本例中包括賬號、是否黑名單卡、輸入油量、賬面金額和加油機油量),然后構建矩陣,最后確定包含執行場景所需的適當條件的測試用例。在表14的測試矩陣中,V表示有效數據元素,I表示無效數據元素,n/a表示不適用,例如CW01表示“成功加油”基本流。請按上述規定為其他地應用場景設計測試用例矩陣。
表14 測試用例表
測試用例ID號 |
場 景 |
賬 號 |
是否黑名單卡 |
輸 入 油 量 |
賬 面 金 額 |
加油機油量 |
預 期 結 果 |
CW01 |
場景1: |
V |
I |
V |
V |
V |
成功加油 |
CW02 |
|
|
|
|
|
|
|
CW03 |
|
|
|
|
|
|
|
CW04 |
|
|
|
|
|
|
|
CW05 |
|
|
|
|
|
|
|
【問題2】答案解析:
這是一道要求考生掌握在場景法中設計測試用例的綜合分析題。本題的分析思路如下。
① 根據題目的描述可知,本案例中存在著以下5種場景。
場景1:基本流A。
場景2:基本流A、備選流B。
場景3:基本流A、備選流C。
場景4:基本流A、備選流D。
場景5:基本流A、備選流E。
② 測試用例表(表14)已給出了場景1的測試用例,對于其他4行所填寫的內容可以通過參照場景1的測試用例的解答思路進行。
③ 本案例中與場景2(AB)相關的描述如下。
A2,驗證加油卡。加油機從加油卡的磁條中讀取賬戶代碼,并檢查它是否屬于可以接收的加油卡。
B,加油卡無效。在基本流A2過程中,該卡不能夠識別,或是非本機可以使用的IC卡,加油機退卡,并退出基本流。
由“備選流B(加油卡無效)”的描述中提取出場景2(AB)的名稱-“卡無效”,輸入值是“賬號無效”,預期結果是“退卡”。
④ 本案例中與場景3(AC)相關的描述如下。
A2,驗證加油卡。加油機從加油卡的磁條中讀取賬戶代碼,并檢查它是否屬于可以接收的加油卡。
A3,驗證黑名單。加油機驗證卡賬戶是否存在于黑名單中,如屬于黑名單,則加油機吞卡。
C,卡賬戶屬于黑名單。在基本流A3過程中,判斷該卡賬戶屬于黑名單,例如,已經掛失,加油機吞卡并退出基本流。
由“備選流C(卡賬戶屬于黑名單)”的描述提取出場景3(AC)的名稱-“黑名單卡”,輸入值是“賬號有效”和“黑名單卡”,預期結果是“吞卡”。
⑤ 基本流A1~A4、備選流D的相關描述與本案例中場景4(AD)有關。由“備選流D(加油卡賬面資金不足)”的描述提取出場景4(AD)的名稱-“金額不足”,其輸入值為“賬號有效”、“非黑名單卡”、“輸入購油量有效”、“加油機油量有效”和“賬面金額無效”,預期結果是“提示錯誤,或重新輸入購油量,或退卡”。
⑥ 基本流A1~A4、備選流E的相關描述與本案例中場景5(AE)有關。由“備選流E(加油機油量不足)”的描述提取出場景5(AE)的名稱-“油量不足”,其輸入值為“賬號有效”、“非黑名單卡”、“輸入購油量有效”、“賬面金額有效”和“加油機油量無效”,預期結果是“提示錯誤,或重新輸入購油量,或退卡”。
⑦ 將以上分析結果按照試題中的規定-“V表示有效數據元素,I表示無效數據元素,n/a表示不適用”,歸納整理成如表15所示的測試用例表。
表15 完整的測試用例表
測試用例ID號 |
場 景 |
賬 號 |
是否黑名單卡 |
輸 入 油 量 |
賬 面 金 額 |
加油機油量 |
預 期 結 果 |
CW01 |
場景1: |
V |
I |
V |
V |
V |
成功加油 |
CW02 |
場景2: |
I |
n/a |
n/a |
n/a |
n/a |
退卡 |
CW03 |
場景3: |
V |
V |
n/a |
n/a |
n/a |
吞卡 |
CW04 |
場景4: |
V |
I |
V |
I |
V |
提示錯誤,或重新輸入購油量,或退卡 |
CW05 |
場景5: |
V |
I |
V |
V |
I |
提示錯誤,或重新輸入購油量,或退卡 |
⑧ 用如表15所示的方法創建測試用例矩陣時,無須為條件輸入任何實際的值,只需查看表中的V和I項就能判斷是否已經確定了充足的測試用例,即該創建方法的優點在于容易看到測試的是什么條件。例如,從表15中可以看出,數據元素“輸入油量”僅有“V”項,缺少“I”項(如輸入“-1”等情況),這表明表15的測試用例還不完整。
【問題3】(2分)
對于基本流A來說,表14中哪些測試用例屬于正面測試用例,哪些測試用例屬于負面測試用例,請用表14中相應的“測試用例ID號”回答問題。
【問題3】答案解析:
這是一道要求考生掌握根據具體應用環境區分場景法中正面/負面測試用例的分析題。本題的解答思路如下。
① 先將【問題1】的分析結果歸納整理為如圖15所示的場景路徑的描述圖。
② 在圖15中,對于基本流A來說,測試用例CW01一直沿著用例的基本流路徑執行,未發生任何偏差,因此,該測試用例是基本流A的正面測試用例。
③ 基本流A的全面測試必須包括負面測試用例,以確保只有在符合條件的情況下才執行基本流。測試用例CW02~CW05是基本流A的負面測試用例。
④ 另外說明一點,測試用例CW02~CW05相對于基本流A而言都是負面測試用例,但它們相對于各自的備選流而言是正面測試用例。對于這些備選流中的每一個來說,至少存在一個負面測試用例-測試用例CW01。
![]() |
完整的場景路徑描述圖 |
【問題4】(2分)
假如加油機內油量足夠,油價為5元/升,用戶的賬戶金額為800元,那么在基本流A4輸入油量的過程中,請利用邊界值分析方法為A4選取合適的輸入數據(即油量,單位為升)。
【問題4】答案解析:
這是一道要求考生應用邊界值法設計測試用例的分析題。本題的解答思路如下。
邊界值分析法是一種黑盒測試方法,是對等價類分析方法的一種補充。選擇其測試用例取值的原則有:①如果輸入條件規定了值的范圍,則應該取剛達到這個范圍的邊界值,以及使用剛剛超過這個范圍邊界的值作為測試輸入數據;②如果輸入條件規定了值的個數,則用最大個數、最小個數、比最大個數多1個和比最小個數少1個的數作為測試數據;③如果程序的規格說明給出的輸入域或輸出域是有序集合(如有序表和順序文件等),則應選擇集合的第一個和最后一個元素作為測試用例;④如果程序用了一個內部結構,則應該選擇這個內部數據結構的邊界值作為測試用例;⑤分析規格說明,找出其他可能的邊界條件。
由“油價為5元/升,用戶的賬戶金額為800元”可計算出用戶合理的購油量輸入范圍是0~160升。本案例邊界值法的取值原則可按照取最小值、最大值、比最小值稍小的值和比最大值稍大的值進行。因此,用邊界值法設計基本流A4輸入油量的測試數據的最大值為160升,比最大值稍大的輸入數據為161升,最小值為0升。由于比0小的數是負數,不符合現實意義,因此,本試題不選擇“比最小值稍小的值”作為輸入數據。
【編輯推薦】