2018年下半年《软件评测师》下午试卷及答案
(共15分)
一、閱讀下列C程序,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
問題:1.1?? (3分)
請針對上述C程序給出滿足100%DC(判定覆蓋)所需的邏輯條件。
本問題考查白盒測試用例設(shè)計(jì)方法:判定覆蓋法。
判定覆蓋指設(shè)計(jì)足夠的測試用例,使得被測程序中每個(gè)判定表達(dá)式至少獲得一次“真”值和“假”值,從而使程序的每一個(gè)分支至少都通過一次。本題中程序有3個(gè)判定,所以滿足判定覆蓋一共需要6個(gè)邏輯條件。
問題:1.2?? (8分)
請畫出上述程序的控制流圖,并計(jì)算其控制流圖的環(huán)路復(fù)雜度V(G)。
控制流圖如下,環(huán)路復(fù)雜度V(G)=4
本問題考查白盒測試用例設(shè)計(jì)方法:基本路徑測試法。涉及到的知識點(diǎn)包括:根據(jù)代碼繪制控制流圖、計(jì)算環(huán)路復(fù)雜度。
控制流圖是描述程序控制流的一種圖示方式,它由節(jié)點(diǎn)和定向邊構(gòu)成。控制流圖的節(jié)點(diǎn)代表一個(gè)基本塊,定向邊代表控制流的方向。
程序的環(huán)路復(fù)雜度等于控制流圖中判定節(jié)點(diǎn)的個(gè)數(shù)加1,本題控制流圖中判定節(jié)點(diǎn)個(gè)數(shù)為3,所以V(G)=4。
問題:1.3?? (4分)
請給出問題2中控制流圖的線性無關(guān)路徑。
線性無關(guān)路徑:
1.1-2-8
2.1-2-3-4-2…8
3.1-2-3-4-5-6-4...2...8
4.1-2-3-4-5-7-4...2...8
本問題考查白盒測試用例設(shè)計(jì)方法:基本路徑法。涉及到的知識點(diǎn)包括:根據(jù)控制流圖和環(huán)路復(fù)雜度給出線性無關(guān)路徑。
線性無關(guān)路徑是指包含一組以前沒有處理的語句或條件的路徑。從控制流圖上來看,一條線性無關(guān)路徑是至少包含一條在其他線性無關(guān)路徑中從未有過的邊的路徑。程序的環(huán)路復(fù)雜度等于線性無關(guān)路徑的條數(shù),所以本題中應(yīng)該有4條線性無關(guān)路徑。
(共20分)
二、閱讀下列說明,回答問題1和問題2,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某連鎖酒店集團(tuán)實(shí)行積分獎勵計(jì)劃,會員每次入住集團(tuán)旗下酒店均可以獲得一定積分,積分由歡迎積分加消費(fèi)積分構(gòu)成。其中歡迎積分跟酒店等級有關(guān),具體標(biāo)準(zhǔn)如表2-1所示;消費(fèi)積分跟每次入住消費(fèi)金額有關(guān),具體標(biāo)準(zhǔn)為每消費(fèi)1美元獲得2積分(不足1美元的部分不給分)。此外,集團(tuán)會員分為優(yōu)先會員、金會員、白金會員三個(gè)級別,金會員和白金會員在入住酒店時(shí)可獲得消費(fèi)積分的額外獎勵,獎勵規(guī)則如表2-2所示。
該酒店集團(tuán)開發(fā)了一個(gè)程序來計(jì)算會員每次入住后所累積的積分,程序的輸入包括會員級別L、酒店等級C和消費(fèi)金額A(單位:美元),程序的輸出為本次積分S。其中,L為單個(gè)字母且大小寫不敏感,C為取值1到6的整數(shù),A為正浮點(diǎn)數(shù)且最多保留兩位小數(shù),S為整數(shù)。
問題:2.1?? (7分)
采用等價(jià)類劃分法對該程序進(jìn)行測試,等價(jià)類表如表2-3所示,請補(bǔ)充表2-3中空(1)-(7)。
(1) P
(2) 1
(3) 4,5
(4) 最多保留兩位小數(shù)的正浮點(diǎn)數(shù)
(5) 除M/G/P之外的單個(gè)字母
(6) 小于1的整數(shù)
(7) 非正的浮點(diǎn)數(shù)
本問題考查等價(jià)類劃分法中等價(jià)類表的構(gòu)造。
等價(jià)類劃分法的等價(jià)類表是把程序的輸入域按規(guī)則劃分為若干子集。
本題中L,C由多個(gè)輸入值構(gòu)成,并且需要對每個(gè)(或者每組)輸入值分別處理,按規(guī)則可以劃分為n個(gè)有效等價(jià)類(每個(gè)或者每組值確定一個(gè)有效等價(jià)類)和一個(gè)無效等價(jià)類(所有不允許輸入值的集合)。
對L來說,分成3個(gè)有效等價(jià)類(L分別取M、G、P)和1個(gè)無效等價(jià)類(其他情況),而這個(gè)無效等價(jià)類又可以進(jìn)一步細(xì)分為非字母、非單個(gè)字母以及除M/G/P之外其他字母。
對C來說,分成4個(gè)有效等價(jià)類(C分別取1、2或3、4或5、6)和1個(gè)無效等價(jià)類(其他情況),而這個(gè)無效等價(jià)類又可以進(jìn)一步細(xì)分為非整數(shù)、小于1的整數(shù)以及大于6的整數(shù)。
對A來說,規(guī)定了輸入值集合必須滿足的條件(即最多兩位小數(shù)的正浮點(diǎn)數(shù)),根據(jù)規(guī)則可以劃分為1個(gè)有效等價(jià)類(最多兩位小數(shù)的正浮點(diǎn)數(shù))和3個(gè)無效等價(jià)類(非浮點(diǎn)數(shù),非正的浮點(diǎn)數(shù),多于兩位小數(shù)的正浮點(diǎn)數(shù))。
問題:2.2?? (13分)
根據(jù)以上等價(jià)類表設(shè)計(jì)的測試用例如下表所示,請補(bǔ)充表2-4中空(1)-(13)。
(1) 300
(2) 100
(3) 3,6,8
(4) 6
(5) 非字母,如1
(6) 非單個(gè)字母,如GG
(7) N/A
(8) 非整數(shù),如A
(9) 1,8,13
(10) 大于6的整數(shù),如7
(11) 非浮點(diǎn)數(shù),如A
(12) 非正浮點(diǎn)數(shù),如0
(13) 多于兩位小數(shù)的正浮點(diǎn)數(shù),如500.123
本問題考査等價(jià)類劃分法中根據(jù)等價(jià)類表編寫測試用例。
在編寫等價(jià)類劃分法的測試用例時(shí),如果輸入全部都來自有效等價(jià)類,則從每個(gè)有效等價(jià)類選取一個(gè)代表元素作為輸入,如果要考慮無效等價(jià)類,則每次只選取一個(gè)無效等價(jià)類,其余輸入都從有效等價(jià)類中選取。
從試題三至試題五中,任選兩題解答。
(共20分)
三、閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某公司欲開發(fā)一套基于Web的房屋中介系統(tǒng),以有效管理房源和客戶,提升成交效率。該系統(tǒng)的主要功能是:
(1)房源管理。員工或客戶對客戶擬出售/出租的意向房進(jìn)行登記和管理。
(2)客戶管理。員工對客戶信息進(jìn)行管理,支持客戶交互。
(3)房源推薦。根據(jù)客戶的需求和房源情況,進(jìn)行房源推薦。
(4)交易管理。對租售客戶雙方進(jìn)行交易管理,收取中介費(fèi),更改客戶狀態(tài)。
問題:3.1?? (6分)
系統(tǒng)前端采用HTML5實(shí)現(xiàn),以使用戶可以通過電腦和不同移動設(shè)備的瀏覽器進(jìn)行訪問。請?jiān)O(shè)計(jì)兼容性測試矩陣,對系統(tǒng)瀏覽器兼容性進(jìn)行測試。
本題考查Web應(yīng)用測試相關(guān)知識。Web應(yīng)用測試除了類似傳統(tǒng)軟件系統(tǒng)測試的性能測試、壓力測試等之外,還需要測試頁面、鏈接、瀏覽器、表單和可用性等多個(gè)方面,由于對Web應(yīng)用訪問的大眾化特點(diǎn),對安全性尤其要重視。
此類題目要求考生閱讀題目對現(xiàn)實(shí)問題的描述,根據(jù)對問題的分析,回答測試有關(guān)的問題。本題目說明和問題中,除了功能背景之外,給出了HTML5、兼容性、應(yīng)用性能指數(shù)的概念等技術(shù)點(diǎn)。
本問題考查Web應(yīng)用兼容性測試的內(nèi)容。本題給出系統(tǒng)前端采用HTML5加以實(shí)現(xiàn),使用戶可以通過電腦和不同移動設(shè)備的瀏覽器進(jìn)行正確訪問。而Web應(yīng)用用戶所使用環(huán)境的不確定性,使得Web應(yīng)用需要在包括移動端在內(nèi)不同平臺的不同瀏覽器上正確顯示,并且所有JavaScript、AJAX腳本和認(rèn)證功能正常工作,兼容性測試更為重要。兼容性測試矩陣是進(jìn)行兼容性測試的有效工具,針對該應(yīng)用需支持的不同移動設(shè)備進(jìn)行操作系統(tǒng)平臺和瀏覽器的兼容性測試。包括移動操作系統(tǒng)Windows Phone、iOS和Android等,與其上可以使用的瀏覽器移動版IE、UCWEB、Google Chrome、Android browser和Safari等進(jìn)行結(jié)合,構(gòu)建兼容性二維矩陣,行列分別表示操作系統(tǒng)平臺和瀏覽器。測試時(shí)分別在單元格記錄操作系統(tǒng)和瀏覽器組合的測試情況。
問題:3.2?? (8分)
客戶交易時(shí),前端采用表單提交價(jià)格(正整數(shù),單位:元)和中介費(fèi)比例(0到1之間的小數(shù),保留小數(shù)點(diǎn)后2位),針對這一功能設(shè)計(jì)4個(gè)測試用例。
測試一:1234567,0.05(說明:分別為任何正整數(shù)、0到1之間且保留2位小數(shù)的數(shù)值);
測試二:1234567.5,0.12(說明:分別為任何非正整數(shù)、0到1之間且保留2位小數(shù)的數(shù)值);
測試三:1234567,1.18(說明:分別為任何正整數(shù)、不滿足“0到1之間且保留2位小數(shù)的數(shù)值”);
測試四:體現(xiàn)安全性的測試輸入:其中任意輸入域包含任何HTML,如:<HTML>,或任何腳本如:<SCRIPT>,或SQL功能符號,如:‘,OR、'--、2018 OR‘1'=‘1'等,以測試XSS腳本和使SQL改變?yōu)椴环显O(shè)計(jì)意圖的用例。
本問題考查Web應(yīng)用功能測試的測試用例設(shè)計(jì)。針對本系統(tǒng)中的價(jià)格和中介費(fèi)比例設(shè)計(jì)測試用例。測試的輸入包括不同情況、安全性方面的SQL注入和XSS跨站攻擊等。題目約定輸入價(jià)格為正整數(shù),中介費(fèi)比例為0到1之間的小數(shù),且保留2為小數(shù)。對輸入不同情況,可以采用等價(jià)類劃分或邊界值分析發(fā)等設(shè)計(jì)測試輸入。
等價(jià)類劃分法是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分為若干部分(子集),然后從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。邊界值分析法通常作為對等價(jià)類劃分法的補(bǔ)充,更多地選取每一等價(jià)類的邊界上以及兩側(cè)的情況設(shè)計(jì)測試用例。
根據(jù)等價(jià)類劃分原則,測試輸入應(yīng)該考慮價(jià)格和中介費(fèi)比例是否合法的不同組合。
第一類:針對價(jià)格和中介費(fèi)比例均合法的情況。輸入價(jià)格為正整數(shù)、中介費(fèi)比例在0到1之間的保留2位小數(shù)的數(shù)值的組合。
第二類:針對非法的價(jià)格和合法的中介費(fèi)的情況。輸入價(jià)格為非正整數(shù),中介費(fèi)比例在0到1之間的保留2位小數(shù)的數(shù)值的組合。
第三類:針對合法的價(jià)格和非法的中介費(fèi)的情況。輸入價(jià)格為正整數(shù),中介費(fèi)比例不滿足在0到1之間的保留2位小數(shù)的數(shù)值的組合。
第四類:體現(xiàn)安全性的測試輸入,即輸入的內(nèi)容中輸入某些功能符號可能會傳到后臺引進(jìn)行數(shù)據(jù)庫操作或作為新頁面的顯示內(nèi)容,而引起安全性方面的問題。因此,需要在測試用例設(shè)計(jì)的時(shí)候考慮XSS或SQL注入等安全性方面的問題,以盡早發(fā)現(xiàn)。本系統(tǒng)測試時(shí),設(shè)計(jì)測試如:對任一字段設(shè)計(jì)包含HTML或SQL功能符號,包含如<HTML>或任何腳本<SCRIPT>等標(biāo)簽,檢查結(jié)果是否造成問題。
問題:3.3?? (6分)
采用性能測試工具在對系統(tǒng)性能測試時(shí),采用Apdex(應(yīng)用性能指數(shù))對用戶使用該系統(tǒng)的性能滿意度進(jìn)行度量,系統(tǒng)需要滿足的Apdex指數(shù)為0.85以上。
Apdex量化時(shí),對應(yīng)的用戶滿意度分為三個(gè)區(qū)間,通過響應(yīng)時(shí)間閾值(Threshold)T來劃分,Apdex的用戶滿意度區(qū)間如下:
滿意:(0,T],讓用戶感到很愉快
容忍:(T,4T],慢了一點(diǎn),但還可以接受,繼續(xù)這一應(yīng)用過程
失望:高于4T,太慢了,受不了,用戶決定放棄這個(gè)應(yīng)用
Apdex的計(jì)算入如下:
Apdex= (滿意的樣本數(shù)+容忍的樣本數(shù)/2)/總樣本數(shù)
針對用戶功能,本系統(tǒng)設(shè)定T=2秒,記錄響應(yīng)時(shí)間,統(tǒng)計(jì)樣本數(shù)量,2秒以下記錄數(shù)4000,2~8秒記錄數(shù)1000,大于8秒500。
請計(jì)算本系統(tǒng)的Apdex指數(shù),并說明本系統(tǒng)是否到達(dá)要求
Apdex指數(shù)=(滿意:小于T的樣本數(shù)+容忍:T?4T的樣本數(shù)/2)/總樣本數(shù)
=(4000+1000/2)/5500
=0.818
0.818小于0.85,所以該系統(tǒng)的用戶滿意度沒有達(dá)到要求。
本問題考查Web應(yīng)用性能性測試的內(nèi)容,面向社會用戶的應(yīng)用,用戶滿意度是一個(gè)Web應(yīng)用成功與否的關(guān)鍵。
針對用戶功能,本系統(tǒng)設(shè)定T=2秒,記錄響應(yīng)時(shí)間,統(tǒng)計(jì)樣本數(shù)量,2秒以下記錄數(shù)4000,2?8秒記錄數(shù)1000,大于8秒500。采用Apdex(應(yīng)用性能指數(shù))對用戶使用房屋中介系統(tǒng)的滿意度進(jìn)行度量,系統(tǒng)需要滿足的Apdex指數(shù)為0.85以上。在上述條件下計(jì)算Apdex指數(shù),判定是否達(dá)到給定的要求。
Apdex量化時(shí)把最終用戶的體驗(yàn)和應(yīng)用性能聯(lián)系在了一起,對應(yīng)用戶滿意度通過響應(yīng)時(shí)間數(shù)值T來劃分為如下三個(gè)區(qū)間:
滿意:(0,T]讓用戶感到很愉快;
容忍:(T,4T]慢了一點(diǎn),但還可以接受,繼續(xù)這一應(yīng)用過程;
失望:大于4T,太慢了,受不了了,用戶決定放棄這個(gè)應(yīng)用。
Apdex的計(jì)算如下:
Apdex=(小于T的樣本數(shù)+T?4T的樣本數(shù)/2)/總樣本數(shù)
在題目所給的測試數(shù)據(jù)條件下,T=2,小于T的樣本數(shù)為4000,大于T且小于等于4T的樣本數(shù)為1000,大于4T的樣本數(shù)為500,用這些數(shù)據(jù)對Apdex加以計(jì)算:
Apdex指數(shù)=(滿意:小于T的樣本數(shù)+容忍:T?4T的樣本數(shù)/2)/總樣本數(shù)
=(4000+1000/2)/(4000+1000+500)
=0.818
0.818小于0.85,所以該系統(tǒng)的用戶滿意度沒有達(dá)到要求。
(共20分)
四、閱讀下列說明,回答問題1至問題4,將解答寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
某軟件的積分計(jì)算模塊每天定時(shí)根據(jù)用戶發(fā)布的文章數(shù)、文章閱讀數(shù)來統(tǒng)計(jì)用戶所獲取的積分,用戶分為普通用戶和專家用戶,兩類用戶具有不同的積分系數(shù)。
圖4-1是該模塊的類圖,圖中屬性和操作前的“+”、“#”和“-”分別表示公有成員、保護(hù)成員和私有成員。
其中:
(1)類Expert重新實(shí)現(xiàn)了類User的方法calPoints();
(2)方法calPoints()根據(jù)每個(gè)用戶每天的文章數(shù)(articleNum)、文章閱讀數(shù)(readNum)來計(jì)算當(dāng)天的積分;
(3)類System中的方法statPoints()中首先調(diào)用了該類的方法load(),獲取本系統(tǒng)用戶列表,然后調(diào)用了類User中的方法calPoints()。
現(xiàn)擬采用面向?qū)ο蟮姆椒ㄟM(jìn)行測試。
問題:4.1?? (4分)
(1)圖4-1所示的類圖中,類System和User之間是什么關(guān)系?
(2)類Expert重新實(shí)現(xiàn)了類User的方法calPoints(),這是面向?qū)ο蟮氖裁礄C(jī)制?
(1) 關(guān)聯(lián)關(guān)系
(2) 多態(tài)
本題考査面向?qū)ο鬁y試。
此類題目要求考生認(rèn)真閱讀題目對問題的描述,分析問題并結(jié)合面向?qū)ο蟮幕靖拍顏砘卮稹n}目給出二個(gè)類,基類User、子類Expert以及與User有關(guān)聯(lián)關(guān)系的System。
本問題考查基本概念,User以類屬性的形式出現(xiàn)在System中,是一種關(guān)聯(lián)關(guān)系。子類Expert重新實(shí)現(xiàn)父類User的方法,是面向?qū)ο蟮亩鄳B(tài)。
問題:4.2?? (6分)
類Expert中的方法calPoints()和getPoints()是否需要重新測試?
calPoints()需要
getPoints()不需要
本問題考査基本概念,若子類的某方法繼承了其基類,方法進(jìn)行了修改,則需要進(jìn)行測試;另一種情況是,繼承的方法沒有修改,用基類的方法,但是該方法調(diào)用了子類修改過的其他方法時(shí),也需要對該方法進(jìn)行測試。
問題:4.3?? (10分)
(1)請結(jié)合題干說明中的描述,給出測試類User方法calPoints()時(shí)的測試序列。
(2)請給出圖4-1中各個(gè)類的測試順序。
(3)從面向?qū)ο蠖鄳B(tài)特性考慮,測試類System中方法statPoints()時(shí)應(yīng)注意什么?
(1) new User()—setArticleNum()—setReadNum()—calPoints()—getPoints()
(2) User—Expert一System
(3) 測試方法statPoints()時(shí),要同時(shí)考慮類User和類Expert的calPoints()。
在測試方法calPoints()之前,需要先構(gòu)造對象,設(shè)置文章數(shù)和文章閱讀數(shù),即要先調(diào)用構(gòu)造函數(shù)new User(),然后setArticleNum()、setReadNum(),之后要打印結(jié)果看是否計(jì)算正確,需要調(diào)用getPoints()查看結(jié)果。
User和Expert是父類和子類的關(guān)系,User和System是關(guān)聯(lián)關(guān)系,所以順序是User-Expert-System。
本題干“類Expert重新實(shí)現(xiàn)了類User的方法calPoints()”是一個(gè)的多態(tài)機(jī)制。在這種情況下,需要同時(shí)考慮類User和類Expert的calPoints()。
(共20分)
五、閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某飛行器供油閥控制軟件通過控制左右兩邊的油箱BL、BR向左右發(fā)動機(jī)EL、ER供油,既要保證飛行器的安全飛行,又要保證飛行器的平衡,該軟件主要完成的功能如下:
(1) 無故障情況下,控制左油箱BL向左發(fā)動機(jī)EL供油,右油箱BR向右發(fā)動機(jī)ER供油,不上報(bào)故障;
(2) 當(dāng)左油箱BL故障時(shí),控制右油箱BR分別向左、右發(fā)動機(jī)EL和ER供油,并上報(bào)二級故障——左油箱故障;
(3) 當(dāng)右油箱BR故障時(shí),控制左油箱BL分別向左、右發(fā)動機(jī)EL和ER供油,并上報(bào)二級故障——右油箱故障;
(4) 當(dāng)左發(fā)動機(jī)EL故障時(shí),根據(jù)左右油箱的剩油量決定(如果左右油箱剩油量之差大于等于50L,則使用剩油量多的油箱供油,否則同側(cè)優(yōu)先供油)左油箱BL還是右油箱BR向右發(fā)動機(jī)ER供油,并上報(bào)一級故障——左發(fā)動機(jī)故障;
(5) 當(dāng)右發(fā)動機(jī)ER故障時(shí),根據(jù)左右油箱的剩油量決定(如果左右油箱剩油量之差大于等于50L,則使用剩油量多的油箱供油,否則同側(cè)優(yōu)先供油)左油箱BL還是右油箱BR向左發(fā)動機(jī)EL供油,并上報(bào)一級故障——右發(fā)動機(jī)故障;
(6) 當(dāng)一個(gè)油箱和一個(gè)發(fā)動機(jī)同時(shí)故障時(shí),則無故障的油箱為無故障發(fā)動機(jī)供油,并上報(bào)一級故障——故障油箱和發(fā)動機(jī)所處位置;
(7) 當(dāng)兩個(gè)油箱或兩個(gè)發(fā)動機(jī)同時(shí)故障或存在更多故障時(shí),則應(yīng)進(jìn)行雙發(fā)斷油控制,并上報(bào)特級故障——兩側(cè)油箱或兩側(cè)發(fā)動機(jī)故障;
(8) 故障級別從低級到高級依次為二級故障、一級故障和特級故障,如果低級故障和高級故障同時(shí)發(fā)生,則只上報(bào)最高級別故障。
問題:5.1?? (6分)
覆蓋率是度量測試完整性的一個(gè)手段,也是度量測試有效性的一個(gè)手段。在嵌入式軟件白盒測試過程中,通常以語句覆蓋率、條件覆蓋率和MC/DC覆蓋率作為度量指標(biāo)。在實(shí)現(xiàn)第6條功能時(shí),設(shè)計(jì)人員采用了下列算法:
請指出對上述算法達(dá)到100%語句覆蓋、100%條件覆蓋和100%MC/DC覆蓋所需的最少測試用例數(shù)目,填寫表5-1中的空(1)?(3)。
(1) 4
(2) 8
(3) 12
本題考查軟件測試的一些基本方法在測試實(shí)踐中的應(yīng)用。在軟件測試過程中,測試人員通過對軟件設(shè)計(jì)和算法的理解,運(yùn)用測試概念和方法進(jìn)行基于需求的測試用例設(shè)計(jì),不僅需要選擇恰當(dāng)?shù)臏y試用例設(shè)計(jì)方法,而且需要保證測試用例的充分性。
此題目要求考生認(rèn)真閱讀題目所給的軟件需求和算法信息,結(jié)合嵌入式軟件測試的測試用例設(shè)計(jì)要求,在此嵌入式軟件測試中進(jìn)行實(shí)際應(yīng)用。
本問題主要考查對語句覆蓋、條件覆蓋和MC/DC覆蓋概念的掌握以及應(yīng)用。
語句覆蓋要求設(shè)計(jì)適當(dāng)數(shù)量的測試用例,運(yùn)行被測程序,使得程序中每一條語句至少被運(yùn)行一遍,語句覆蓋在測試中主要發(fā)現(xiàn)錯(cuò)誤語句。
條件覆蓋要求設(shè)計(jì)適當(dāng)數(shù)量的測試用例,運(yùn)行被測程序,使得每個(gè)判斷中的每個(gè)條件的可能取值至少滿足一次。
修正判定條件覆蓋(MC/DC)要求設(shè)計(jì)適當(dāng)數(shù)量的測試用例,保證在一個(gè)程序中每一種輸入輸出至少出現(xiàn)一次,在程序中的每一個(gè)條件必須產(chǎn)生所有可能的輸出結(jié)果至少一次,并且每個(gè)判斷中的每個(gè)條件必須能夠獨(dú)立影響一個(gè)判斷的輸出,即在其他條件不變的前提下僅改變這個(gè)條件的值,而使判斷結(jié)果改變。
按照上述語句覆蓋要求,語句覆蓋就要使得問題1中的所有語句執(zhí)行一次。問題1中共有四個(gè)語句塊,由于問題1中程序片段實(shí)現(xiàn)第6條功能,即當(dāng)一個(gè)油箱和一個(gè)發(fā)動機(jī)同時(shí)故障時(shí)的情況,這個(gè)前提條件導(dǎo)致問題1中四個(gè)語句塊不可能同時(shí)執(zhí)行兩個(gè)或兩個(gè)以上,每次只能執(zhí)行一個(gè),故為了使問題1中的四個(gè)語句塊都執(zhí)行一次,就最少需要4個(gè)測試用例來覆蓋。
按照上述條件覆蓋要求,條件覆蓋要使得每個(gè)判斷中的每個(gè)條件的可能取值至少滿足一次。對問題1中的四個(gè)判斷進(jìn)行分析,每個(gè)判斷有兩個(gè)條件,如果每個(gè)判斷中的兩個(gè)條件同時(shí)取真或同時(shí)取假,則就可以保證條件覆蓋的要求,故每個(gè)判斷最少需要2個(gè)測試用例就可滿足條件覆蓋要求,四個(gè)判斷最少就需要8個(gè)測試用例來滿足條件覆蓋要求。
按照上述MC/DC覆蓋要求,即每個(gè)判斷中的每個(gè)條件必須能夠獨(dú)立影響一個(gè)判斷的輸出。對問題1中的四個(gè)判斷進(jìn)行分析,每個(gè)判斷有兩個(gè)條件,兩個(gè)條件共有四種組合,即TT(TRUE和TRUE)、TF(TRUE和FALSE)、FT(FALSE和TRUE)和FF(FALSE和FALSE)。但是由于每個(gè)判斷均為邏輯與條件,當(dāng)前一個(gè)條件為FALSE時(shí),其整個(gè)判斷值為FALSE,后一個(gè)條件的真或假均不能獨(dú)立影響整個(gè)判斷的輸出,所以只需要TT、TF和FX(X表示后一個(gè)條件為TRUE或FALSE都可以)三種情況就可以,故每個(gè)判斷至少需要3個(gè)測試用例滿足MC/DC覆蓋要求,總共四個(gè)判斷至少需要12個(gè)測試測試用例來滿足MC/DC覆蓋要求。
問題:5.2?? (12分)
為了測試此軟件功能,測試人員設(shè)計(jì)了表5-2所示的測試用例,請?zhí)顚懺摫碇械目?1)?(12)。
為了測試某飛行器供油閥控制軟件的功能,就要依據(jù)題目說明中對某飛行器供油閥控制軟件的具體功能描述,進(jìn)行測試用例的設(shè)計(jì)。此題考查測試用例的設(shè)計(jì),不僅包括輸入數(shù)據(jù)的設(shè)計(jì),還包括前置條件(例如剩油量)及預(yù)期輸出的設(shè)計(jì)(例如給發(fā)動機(jī)供油的郵箱和上報(bào)故障情況),條件較多,需要綜合考慮。
序號1,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左、右油箱BL、BR與左、右發(fā)動機(jī)EL、ER均無故障,依據(jù)第1條設(shè)計(jì)說明,輸出控制左油箱向左發(fā)動機(jī)故供油,右油箱BR向右發(fā)動機(jī)ER供油,不上報(bào)故障。
序號2,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左油箱BL故障,右油箱BR與左、右發(fā)動機(jī)EL、ER均無故障,依據(jù)第2條設(shè)計(jì)說明,輸出控制右油箱BR分別向左、右發(fā)動機(jī)供油,并上報(bào)二級故障——左油箱故障。
序號3,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,右油箱BR故障,左油箱BL與左、右發(fā)動機(jī)EL、ER均無故障,依據(jù)第3條設(shè)計(jì)說明,輸出控制左油箱BL分別向左、右發(fā)動機(jī)EL和ER供油,并上報(bào)二級故障——右油箱故障。
序號4,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左右油箱剩油量之差等于0L,左發(fā)動機(jī)EL故障,左、右油箱BL、BR與右發(fā)動機(jī)ER均無故障,依據(jù)第4條設(shè)計(jì)說明,輸出控制左發(fā)動機(jī)EL斷油,右油箱BR向右發(fā)動機(jī)ER供油,并上報(bào)一級故障——左發(fā)動機(jī)故障。
序號5,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左右油箱剩油量之差等于0L,右發(fā)動機(jī)ER故障,左、右油箱BL、BR與左發(fā)動機(jī)EL均無故障,依據(jù)第5條設(shè)計(jì)說明,輸出控制右發(fā)動機(jī)ER斷油,左油箱BL向左發(fā)動機(jī)EL供油,并上報(bào)一級故障——右發(fā)動機(jī)故障。
序號6,前置條件中左油箱BL油量未知,BR剩余油量均為180,左右油箱剩油量之差未知,右發(fā)動機(jī)ER故障,左、右油箱BL、BR與左發(fā)動機(jī)EL均無故障,輸出控制右發(fā)動機(jī)ER斷油,右油箱BR向左發(fā)動機(jī)EL供油,并上報(bào)一級故障——右發(fā)動機(jī)故障,依據(jù)第5條設(shè)計(jì)說明,得到這樣的輸出控制,需要左右油箱剩油量之差大于等于50L,所以這時(shí)左油箱的剩余油量為任意小于(180-50)的整數(shù),即任意小于130的整數(shù)。
序號7,前置條件中左油箱BL剩余油量為90,BR剩余油量未知,左右油箱剩油量之差未知,右發(fā)動機(jī)ER故障,左、右油箱BL、BR與左發(fā)動機(jī)EL均無故障,輸出控制右發(fā)動機(jī)ER斷油,左油箱隊(duì)向左發(fā)動機(jī)故供油,并上報(bào)一級故障——右發(fā)動機(jī)故障,依據(jù)第5條設(shè)計(jì)說明,得到這樣的輸出控制,需要左右油箱剩油量之差小于50L,所以這時(shí)左油箱的剩余油量為(90-50)至(90+50)之間的整數(shù),即任意大于40且小于130的整數(shù)。
序號8,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左右油箱剩油量之差等于0L,左油箱BL與左發(fā)動機(jī)EL均故障,右油箱BR與右發(fā)動機(jī)ER均無故障,依據(jù)第6條設(shè)計(jì)說明,輸出控制故障發(fā)動機(jī)(左發(fā)動機(jī)EL斷油,無故障的油箱(右油箱BR)為無故障發(fā)動機(jī)(右發(fā)動機(jī)ER)供油,并上報(bào)一級故障——故障油箱(左油箱BL)和故障發(fā)動機(jī)(左發(fā)動機(jī)EL)。
序號9,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左右油箱剩油量之差等于0L,右油箱BR與右發(fā)動機(jī)ER均故障,左油箱BL與左發(fā)動機(jī)EL均無故障,依據(jù)第6條設(shè)計(jì)說明,輸出控制故障發(fā)動機(jī)(右發(fā)動機(jī)ER)斷油,無故障的油箱(左油箱BL)為無故障發(fā)動機(jī)(左發(fā)動機(jī)EL)供油,并上報(bào)一級故障——故障油箱(右油箱BR)和故障發(fā)動機(jī)(右發(fā)動機(jī)ER)。
序號10,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左右油箱剩油量之差等于0L,右油箱BR與左發(fā)動機(jī)EL均故障,左油箱BL與右發(fā)動機(jī)ER均無故障,依據(jù)第6條設(shè)計(jì)說明,輸出控制故障發(fā)動機(jī)(左發(fā)動機(jī)EL)斷油,無故障的油箱(左油箱BL)為無故障發(fā)動機(jī)(右發(fā)動機(jī)ER)供油,并上報(bào)一級故障——故障油箱(右油箱BR)和故障發(fā)動機(jī)(左發(fā)動機(jī)EL)。
序號11,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左右油箱剩油量之差等于0L,左油箱BL與右發(fā)動機(jī)ER均故障,右油箱BR與左發(fā)動機(jī)EL均無故障,依據(jù)第6條設(shè)計(jì)說明,輸出控制故障發(fā)動機(jī)(右發(fā)動機(jī)ER)斷油,無故障的油箱(右油箱BR)為無故障發(fā)動機(jī)(左發(fā)動機(jī)EL)供油,并上報(bào)一級故障——故障油箱(左油箱BL)和故障發(fā)動機(jī)(右發(fā)動機(jī)ER)。
序號12,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左右油箱剩油量之差等于0L,左、右油箱BL、BR均故障,左、右發(fā)動機(jī)EL、ER均無故障,依據(jù)第7條設(shè)計(jì)說明,輸出控制左、右發(fā)動機(jī)EL、ER均斷油,并上報(bào)特級故障——兩側(cè)油箱均故障。
序號13,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左右油箱剩油量之差等于0L,左、右油箱BL,BR均無故障,左發(fā)動機(jī)EL故障,右發(fā)動機(jī)ER未知,但是輸出控制左、右發(fā)動機(jī)EL、ER均斷油,并上報(bào)特級故障,依據(jù)第7條設(shè)計(jì)說明,只有當(dāng)兩個(gè)油箱或兩個(gè)發(fā)動機(jī)同時(shí)故障或存在更多故障時(shí),才會得到如此的控制,故推斷右發(fā)動機(jī)ER一定故障。
序號14,前置條件中兩個(gè)油箱BL、BR剩余油量均為200,左右油箱剩油量之差等于0L,左油箱BL故障,左、右發(fā)動機(jī)EL、ER均故障,只有右油箱BR無故障,依據(jù)第7條和第8條設(shè)計(jì)說明,輸出控制左、右發(fā)動機(jī)EL、ER均斷油,并上報(bào)特級故障——兩側(cè)發(fā)動機(jī)均故障。左油箱故障的二級故障和兩側(cè)發(fā)動機(jī)均故障的特級故障同時(shí)發(fā)生,只上報(bào)特級故障。
問題:5.3?? (2分)
常見的黑盒測試的測試用例設(shè)計(jì)方法包括等價(jià)類劃分、決策表、因果圖、邊界值分析等。測試人員在針對本題設(shè)計(jì)測試用例時(shí),使用哪種測試用例設(shè)計(jì)方法最恰當(dāng)。
等價(jià)類劃分。
軟件測試人員在基于需求設(shè)計(jì)測試用例的過程中,通常需要使用一些黑盒測試方法,黑盒測試方法一般包括功能分解、等價(jià)類劃分、邊界值分析、判定表、因果圖、隨機(jī)測試、猜錯(cuò)法和正交試驗(yàn)法等。就本題而言,由于設(shè)計(jì)說明中是依據(jù)故障數(shù)目來進(jìn)行說明的,從無故障、一個(gè)故障、兩個(gè)故障到多個(gè)故障進(jìn)行軟件設(shè)計(jì)說明,所以采用以故障數(shù)目進(jìn)行等價(jià)類劃分來設(shè)計(jì)測試用例方法最恰當(dāng)。
總結(jié)
以上是生活随笔為你收集整理的2018年下半年《软件评测师》下午试卷及答案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux】ls命令查看linux目录
- 下一篇: 分享几个接口自动化的实战练手项目