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