軟工題第四章_第1頁
軟工題第四章_第2頁
軟工題第四章_第3頁
軟工題第四章_第4頁
軟工題第四章_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第四章習(xí)題一、選擇題1.從供選擇的答案中選出應(yīng)填入下列()中的字句。軟件測試的目的是(A)。為了提高測試的效率,應(yīng)該(B)。使用白盒測試方法時(shí),確定測試數(shù)據(jù)應(yīng)根據(jù)(C)和指定的覆蓋標(biāo)準(zhǔn)。與設(shè)計(jì)測試數(shù)據(jù)無關(guān)的文檔是(D)。軟件的集成測試工作最好由(E)承擔(dān),以提高集成測試的效果。供選擇的答案:A.①評(píng)價(jià)軟件的質(zhì)量②發(fā)現(xiàn)軟件的錯(cuò)誤③找出軟件中的所有錯(cuò)誤④證明軟件是正確的B.①隨機(jī)地選取測試數(shù)據(jù)②取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)③在完成編碼以后制定軟件的測試計(jì)劃④選擇發(fā)現(xiàn)錯(cuò)誤的可能性大的數(shù)據(jù)作為測試數(shù)據(jù)C.①程序的內(nèi)部邏輯②程序的復(fù)雜程度③使用說明書④程序的功能D.①該軟件的設(shè)計(jì)人員②程序的復(fù)雜程度③源程序④項(xiàng)目開發(fā)計(jì)劃E.①該軟件的設(shè)計(jì)人員②該軟件開發(fā)組的負(fù)責(zé)人③該軟件的編程人員④不屬于該軟件開發(fā)組的軟件設(shè)計(jì)人員2.請從供選擇的答案中選出應(yīng)填入下列()中的字句。程序的三種基本控制結(jié)構(gòu)是(A)。它們的共同點(diǎn)是(B)。結(jié)構(gòu)化程序設(shè)計(jì)的一種基本方法是(C)。軟件測試的目的是(D)。軟件調(diào)試的目的是(E)。供選擇的答案:A.①過程,子程序,分程序②順序,條件,循環(huán)③遞歸,堆棧,隊(duì)列④調(diào)用,返回,轉(zhuǎn)移B.①不能嵌套使用②只能用來寫簡單的程序③已經(jīng)用硬件實(shí)現(xiàn)④只有一個(gè)入口和一個(gè)出口C.①篩選法②遞歸法③歸納法④逐步求精法D.①證明程序中沒有錯(cuò)誤②發(fā)現(xiàn)程序中的錯(cuò)誤③測量程序的動(dòng)態(tài)特性④檢查程序中的語法錯(cuò)誤E.①找出錯(cuò)誤所在并改正之②排除存在錯(cuò)誤的可能性③對(duì)錯(cuò)誤性質(zhì)進(jìn)行分類④統(tǒng)計(jì)出錯(cuò)的次數(shù)3.從下列關(guān)于軟件測試的敘述中,選出5條正確的敘述。精選文庫用黑盒法測試時(shí),測試用例是根據(jù)程序內(nèi)部邏輯設(shè)計(jì)的。盡量用公共過程或子程序去代替重復(fù)的代碼段。測試是為了驗(yàn)證該軟件已正確地實(shí)現(xiàn)了用戶的要求。(4) 對(duì)于連鎖型分支結(jié)構(gòu),若有 n個(gè)判定語句,則有 2n條路徑。盡量采用復(fù)合的條件測試,以避免嵌套的分支結(jié)構(gòu)。(6)GOTO語句概念簡單,使用方便,在某些情況下,保留 GOTO語句反能使寫出的程序更加簡潔。發(fā)現(xiàn)錯(cuò)誤多的程序模塊,殘留在模塊中的錯(cuò)誤也多。黑盒測試方法中最有效的是因果圖法。在做程序的單元測試時(shí),樁(存根)模塊比驅(qū)動(dòng)模塊容易編寫。程序效率的提高主要應(yīng)通過選擇高效的算法來實(shí)現(xiàn)。從供選擇的答案中選出同下列關(guān)于軟件測試的各條敘述關(guān)系最密切的字句。對(duì)可靠性要求很高的軟件,例如操作系統(tǒng),由第三者對(duì)源代碼進(jìn)行逐行檢查。已有的軟件被改版時(shí),由于受到變更的影響,改版前正常的功能可能發(fā)生異常,性能也可能下降。因此,對(duì)變更的軟件進(jìn)行測試是必要的。在意識(shí)到被測試模塊的內(nèi)部結(jié)構(gòu)或算法的情況下進(jìn)行測試。為了確認(rèn)用戶的需求,先做出系統(tǒng)的主要部分,提交給用戶試用。在測試具有層次結(jié)構(gòu)的大型軟件時(shí),有一種方法是從上層模塊開始,由上到下進(jìn)行測試。此時(shí),有必要用一些模塊替代尚未測試過的下層模塊。供選擇的答案:A~E: ① 仿真器 ② 代碼審查 ③ 模擬器 ④ 樁模塊 ⑤驅(qū)動(dòng)器⑥ 域測試 ⑦ 黑盒測試 ⑧ 原型 ⑨ 白盒測試 ⑩退化測試5. 從供選擇的答案中選出應(yīng)填入下面有關(guān)軟件測試的敘述的 ( )內(nèi)的正確答案。軟件測試方法可分為黑盒測試法和白盒測試法兩種。黑盒測試法是通過分析程序的( A )來設(shè)計(jì)測試用例的方法。除了測試程序外,它還適用于對(duì)( B )階段的軟件文檔進(jìn)行測試。白盒測試法是根據(jù)程序的( C )來設(shè)計(jì)測試用例的方法。除了測試程序外,它也適用于對(duì)( D )階段的軟件文檔進(jìn)行測試。白盒法測試程序時(shí)常按照給定的覆蓋條件選取測試用例。 ( E )覆蓋比( F )覆蓋嚴(yán)格,它使得每一個(gè)判定的每一條分支至少經(jīng)歷一次。 ( G )覆蓋既是判定覆蓋,又是條件覆蓋,但它并不保證使各種條件都能取到所有可能的值。( H )覆蓋比其他條件都要嚴(yán)格,但它不能保證覆蓋程序中的每一條路徑。單元測試一般以( I )為主,測試的依據(jù)是( J )。供選擇的答案:A,C:①應(yīng)用范圍 ②內(nèi)部邏輯 ③功能 ④輸入數(shù)據(jù)— 2精選文庫B,D:①編碼 ②軟件詳細(xì)設(shè)計(jì) ③軟件總體設(shè)計(jì) ④需求分析E,F,G,H :① 語句 ②判定 ③條件 ④判定/條件⑤多重條件 ⑥路徑I:① 白盒法 ②黑盒法J:① 模塊功能規(guī)格說明 ②系統(tǒng)模塊結(jié)構(gòu)圖 ③系統(tǒng)需求規(guī)格說明6. 從供選擇的答案中選出應(yīng)該填入下列關(guān)于軟件測試的敘述的 ( )內(nèi)的正確答案。軟件測試中常用的靜態(tài)分析方法是( A )和( B )。( B )用于檢查模塊或子程序間的調(diào)用是否正確。分析方法(白盒方法)中常用的方法是( C )方法。非分析方法(黑盒方法)中常用的方法是( D )方法和( E )方法。( E )方法根據(jù)輸出對(duì)輸入的依賴關(guān)系設(shè)計(jì)測試用例。供選擇的答案:A~B: ①引用分析 ②算法分析 ③可靠性分析 ④效率分析⑤接口分析 ⑥操作分析C~E: ①路徑測試 ②等價(jià)類 ③因果圖 ④歸納測試⑤綜合測試 ⑥追蹤 ⑦深度優(yōu)先 ⑧調(diào)試⑨相對(duì)圖二、簡答題編程時(shí)使用的程序設(shè)計(jì)語言,對(duì)軟件的開發(fā)與維護(hù)有何影響?2.如果一個(gè)程序有兩個(gè)輸入數(shù)據(jù),每個(gè)輸入都是一個(gè) 32位的二進(jìn)制整數(shù),那么這個(gè)程序有多少個(gè)可能的輸入?如果每微妙可進(jìn)行一次測試, 那么對(duì)所有可能的輸入進(jìn)行測試需要多長時(shí)間?3.假設(shè)有一個(gè)由 5000行FORTRAN語句構(gòu)成的程序(經(jīng)編譯后大約有 25000條機(jī)器指令),你估計(jì)在對(duì)它進(jìn)行測試期間將發(fā)現(xiàn)多少個(gè)錯(cuò)誤?為什么?設(shè)計(jì)下列偽碼程序的語句覆蓋和路徑覆蓋測試用例:STARTINPUT(A,B,C)IFA>5THENX=10ELSEX=1ENDIFIFB>10THENY=20ELSEY=2ENDIFIFC>15— 3精選文庫THENZ=30ELSEZ=3ENDIFPRINT(A,B,C)STOP設(shè)計(jì)下列偽碼程序的分支覆蓋和條件組合覆蓋測試用例:STARTINPUT(A,B,C,D)IF(A>0)AND(B>0)THENX=A+BELSEX=A-BENDIF(C>A)OR(DTHENY=C-DELSEY=C+DENDPRINT(X,Y)STOP使用基本路徑測試方法,設(shè)計(jì)測試下面列出的偽碼程序的測試用例:1:STARTINPUT(A,B,C,D)2:IF(A>0)3: AND(B>0)4:THENX=A+B5:ELSEX=A-B6:END7:IF(C>A)8: OR(D9:THENY=C-D10:ELSEY=C+D11:END12:PRINT(X,Y)STOP設(shè)計(jì)測試下列函數(shù)的測試方案:、函數(shù)SEARCH(somearray,size,value)的功能是,在一組整數(shù)數(shù)組somearray中搜索一個(gè)值為value的整數(shù),如果數(shù)組中有這個(gè)數(shù),則函數(shù)值等于該數(shù)的下標(biāo),否則函數(shù)值等于-1.數(shù)組的長度由參數(shù) size指定。假定數(shù)組第一個(gè)元素的下標(biāo)為 1.— 4精選文庫8.一個(gè)折半查找程序可搜索按字母順序排列的名字列表, 如果查找的名字在列表中則返回真,否則返回假。為了對(duì)它進(jìn)行功能測試,應(yīng)該使用哪些測試用例?某圖書館有一個(gè)使用CRT終端的信息檢索系統(tǒng),該系統(tǒng)有下列四個(gè)基本檢索命令,如表4.1所示。表4.1 檢索命令要求:1)設(shè)計(jì)測試數(shù)據(jù)以全面測試系統(tǒng)的正常操作;2)設(shè)計(jì)測試數(shù)據(jù)以測試系統(tǒng)的非正常操作。10.航空公司 A向軟件公司 B訂購了一個(gè)規(guī)劃飛行路線的程序。假設(shè)你是軟件公司 C的軟件工程師。A公司已雇用你所在的公司對(duì)上述程序進(jìn)行驗(yàn)收測試。你的任務(wù)是,根據(jù)下述事實(shí)設(shè)計(jì)驗(yàn)收測試的輸入數(shù)據(jù)。領(lǐng)航員向程序輸入出發(fā)地點(diǎn)和目的地,以及根據(jù)天氣和飛行型號(hào)而初步確定的飛行高度。程序讀入途中的風(fēng)向風(fēng)力等數(shù)據(jù),并且制定出三套飛行計(jì)劃(高度,速度,方向及途中的五個(gè)位置校核點(diǎn))。所制定的飛行計(jì)劃應(yīng)該做到燃料消耗和飛行時(shí)間都最少。11.對(duì)一個(gè)包含 10000條機(jī)器指令的程序進(jìn)行一個(gè)月集成測試后, 總共改正了 15個(gè)錯(cuò)誤,此時(shí)MTTF=10h;經(jīng)過兩個(gè)月測試后,總共改正了 25個(gè)錯(cuò)誤(第二個(gè)月改正了 10個(gè)錯(cuò)誤),MTTF=15h.要求:(1)根據(jù)上述數(shù)據(jù)確定 MTTF與測試時(shí)間之間的函數(shù)關(guān)系,畫出 MTTF與測試時(shí)間 t的關(guān)系曲線。在畫這條曲線時(shí)你做了什么假設(shè)?為做到MTTF=100h,必須進(jìn)行多長時(shí)間的集成測試?當(dāng)集成測試結(jié)束時(shí)總共改正了多少個(gè)錯(cuò)誤,還有多少個(gè)錯(cuò)誤潛伏在程序中?在測試一個(gè)長度為48000條指令的程序時(shí),第一個(gè)月由甲、乙兩名測試員各種獨(dú)立測試這個(gè)程序。經(jīng)一個(gè)月測試后,甲發(fā)現(xiàn)并改正了 20個(gè)錯(cuò)誤,使 MTTF達(dá)到8h。與此同時(shí),乙發(fā)現(xiàn)24個(gè)錯(cuò)誤,其中的 6個(gè)甲也發(fā)現(xiàn)了。以后由甲一個(gè)人繼續(xù)測試這個(gè)程序。問:剛開始測試時(shí)程序中總共有多少潛藏的錯(cuò)誤?— 5精選文庫為使MTTF達(dá)到240h,必須再改正多少個(gè)錯(cuò)誤?第四章習(xí)題解答一、選擇題1.A. ② B. ④ C. ① D. ④ E. ④軟件測試的目的是軟件中的錯(cuò)誤。因?yàn)椴豢赡馨阉锌赡艿妮斎霐?shù)據(jù)都拿來測試(時(shí)間花費(fèi)不起),為了提高測試的效率,應(yīng)該選擇發(fā)現(xiàn)錯(cuò)誤的可能性大的數(shù)據(jù)作為測試數(shù)據(jù)。使用白盒測試方法時(shí),確定測試數(shù)據(jù)應(yīng)根據(jù)程序的內(nèi)部邏輯和指定的覆蓋標(biāo)準(zhǔn),可以不考慮程序的功能。與設(shè)計(jì)測試數(shù)據(jù)無關(guān)的文檔是項(xiàng)目開發(fā)計(jì)劃。軟件的集成測試工作最好由不屬于該軟件開發(fā)組的軟件設(shè)計(jì)人員承擔(dān), 以提高集成測試的效果。2.A. ② B. ④ C. ④ D. ② E. ①1966年,Bohm與Jacopini 提出任何單入口單出口的沒有“死循環(huán)”的程序都能由三種最基本的控制結(jié)構(gòu)構(gòu)造出來。這三種基本控制結(jié)構(gòu)就是“順序結(jié)構(gòu)”、“選擇 IF-THEN-ELSE結(jié)構(gòu)”、“重復(fù) DO-WHILE或DO-UNTIL結(jié)構(gòu)”。 它們的共同點(diǎn)是只有一個(gè)入口和一個(gè)出口。 提出了程序要實(shí)現(xiàn)結(jié)構(gòu)化的主張,并將這一類程序設(shè)計(jì)稱為結(jié)構(gòu)化程序設(shè)計(jì)。這種方法的一個(gè)重要原則就是采用自頂向下、 逐步求精的方法編寫程序。 N.Wirth曾做過如下說明:“我們對(duì)付一個(gè)復(fù)雜問題的最重要的方法就是抽象。 因此,對(duì)于一個(gè)復(fù)雜的問題,不要急于馬上用計(jì)算機(jī)指令、 數(shù)字和邏輯符號(hào)來表示它, 而應(yīng)當(dāng)先用較自然的抽象的語句來表示,從而得到抽象的程序。抽象程序?qū)Τ橄蟮臄?shù)據(jù)類型進(jìn)行某些特定的運(yùn)算,并用一些合適的記號(hào) (可以是自然語言) 來表示。下一步對(duì)抽象程序再做分解,進(jìn)入下一個(gè)抽象的層次。這樣的細(xì)化過程一直進(jìn)行下去, 直到程序能被計(jì)算機(jī)接受為止。 此時(shí)的程序已經(jīng)是用某種高級(jí)語言或機(jī)器指令書寫的了?!避浖{(diào)試則是在進(jìn)行了成功的測試之后才開始的工作。它與軟件測試不同,軟件測試的目的是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤, 但進(jìn)一步診斷和改正程序中潛在的錯(cuò)誤, 則是調(diào)試的任務(wù)。調(diào)試活動(dòng)由兩部分組成: ①確定程序中可疑錯(cuò)誤的確切性質(zhì)和位置。 ②對(duì)程序(設(shè)計(jì),編碼)進(jìn)行修改,排除這個(gè)錯(cuò)誤。3. 正確的敘述有 (4)、(5)、(6)、(7)、(10)。黑盒測試主要是根據(jù)程序的有關(guān)功能規(guī)格說明和覆蓋準(zhǔn)則來設(shè)計(jì)測試用例,進(jìn)行測試的,不是根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)測試用例, 這是白盒測試做的事情。 在所有黑盒測試方法中,最有效的不是因果圖法, 而是邊界值分析方法。 測試的目的是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤,其附帶的收獲才是驗(yàn)證該軟件已正確地實(shí)現(xiàn)了用戶的要求。 測試的一條重要原則是:— 6精選文庫發(fā)現(xiàn)錯(cuò)誤多的程序模塊,殘留在模塊中的錯(cuò)誤也多。軟件可靠性模型( Shooman)就是依據(jù)這個(gè)原則建立它的公式的。對(duì)于連鎖型分支結(jié)構(gòu),若有 n個(gè)判定語句,則有 2n條路徑。因此,隨著n的增大,路徑數(shù)增長非常快。單元測試時(shí),因?yàn)闃赌K要模擬子模塊的功能,這不是一件容易的事情, 而驅(qū)動(dòng)模塊只是控制被測模塊的執(zhí)行, 所以樁模塊的編寫比驅(qū)動(dòng)模塊的編寫要難得多。在程序設(shè)計(jì)風(fēng)格方面,如果重復(fù)的代碼段沒有明顯的功能,不可以抽取出來形成獨(dú)立的公共過程或子程序, 只有在這些代碼段表現(xiàn)出獨(dú)立的功能時(shí), 才可把它們抽取出來形成獨(dú)立的公共過程或子程序。 另外,程序效率的提高主要應(yīng)通過選擇高效的算法或使用高效的語言編譯器來實(shí)現(xiàn)。 GOTO語句概念簡單,使用方便,在某些情況下,保留 GOTO語句反能使寫出的程序更加簡潔,這句話是正確的。4.(1) ② (2) ⑩ (3) ⑨ (4) ⑧ (5) ④對(duì)可靠性要求很高的軟件,由第三者對(duì)源代碼進(jìn)行逐行檢查,這是代碼審查。軟件變更時(shí)可能發(fā)生退化現(xiàn)象:原來正常的功能可能發(fā)生異常,性能也可能下降。因此,對(duì)變更的軟件要進(jìn)行退化測試。基于被測試模塊的內(nèi)部結(jié)構(gòu)或算法設(shè)計(jì)測試用例進(jìn)行測試,這是白盒測試。為了確認(rèn)用戶的需求,先做出系統(tǒng)的原型,提交給用戶試用。自頂向下對(duì)具有層次結(jié)構(gòu)的大型軟件進(jìn)行集成測試時(shí),需要設(shè)計(jì)一些虛擬模塊來替代尚未測試過的下層模塊,這些模塊叫做樁模塊。5.A.③ B.④ C. ② D. ② E. ② F. ① G. ④ H. ⑤ I. ① J.①軟件測試方法可分為黑盒測試法和白盒測試法兩種。 黑盒測試法是基于程序的功能來設(shè)計(jì)測試用例的方法。 除了測試程序外, 它還適用于對(duì)需求分析階段的軟件文檔進(jìn)行測試。 白盒測試法是根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)測試用例的方法。 除了測試程序外, 它也適用于對(duì)軟件詳細(xì)設(shè)計(jì)階段的軟件文檔進(jìn)行測試。白盒法測試程序時(shí)常按照給定的覆蓋條件選取測試用例。判定覆蓋比語句覆蓋嚴(yán)格,它使得每一個(gè)判定的每一條分支至少經(jīng)歷一次。 判定/條件覆蓋既是判定覆蓋, 又是條件覆蓋,但它并不保證使各種條件都能取到所有可能的值。 多重條件覆蓋,也叫組合條件覆蓋, 比其他條件都要嚴(yán)格,但它不能保證覆蓋程序中的每一條路徑。單元測試一般以白盒法為主,測試的依據(jù)是系統(tǒng)的模塊功能規(guī)格說明。6.A. ① B. ⑤ C. ① D.② E. ③軟件測試中常用的靜態(tài)分析方法是引用分析和接口分析。 接口分析用于檢查模塊或子程序間的調(diào)用是否正確。 分析方法(白盒方法)中常用的方法是路徑測試方法。 非分析方法(黑盒方法)中常用的方法是等價(jià)類 (劃分)方法和因果圖方法。 因果圖方法根據(jù)輸出對(duì)輸入的依賴關(guān)系設(shè)計(jì)測試用例。二、簡答題答:程序設(shè)計(jì)語言是人用計(jì)算機(jī)解決問題的基本工具,因此,它將影響軟件開發(fā)人員的思維方式和解題方式?!?7精選文庫程序設(shè)計(jì)語言是表達(dá)具體的解題方法的工具,它的語法是否清晰易懂,閱讀程序時(shí)是否容易產(chǎn)生二義性,都對(duì)程序的可讀性和可理解性有較大影響。程序設(shè)計(jì)語言所提供的模塊化機(jī)制是否完善,編譯程序差錯(cuò)能力的強(qiáng)弱等,對(duì)程序的可靠性有明顯影響。程序設(shè)計(jì)語言實(shí)現(xiàn)設(shè)計(jì)結(jié)果的難易程度,是否提供了良好的獨(dú)立編譯機(jī)制,可利用的軟件開發(fā)工具是否豐富而且有效,都對(duì)軟件的開發(fā)效率有影響。編譯程序優(yōu)化能力的強(qiáng)弱,程序設(shè)計(jì)語言直接操縱硬件設(shè)施的能力等,將明顯地影響程序的運(yùn)行效率。程序設(shè)計(jì)語言的標(biāo)準(zhǔn)化程度,所提供的模塊封裝機(jī)制,源程序的可讀性和可理解性等,將影響軟件的可維護(hù)性。答:每個(gè)32位的二進(jìn)制整數(shù)具有232個(gè)可能的值,因此,具有兩個(gè)整數(shù)輸入的程序應(yīng)該具有264個(gè)可能的輸入。每微妙可進(jìn)行一次測試,即每秒可進(jìn)行 106個(gè)測試,因此,每天可進(jìn)行的測試數(shù)為60*60*24*106=8.64*1010這等于每年大約可進(jìn)行 3.139*1013 個(gè)測試。因?yàn)?10=1024≈103,所以264=(210)6.4≈1019.2。1019.2/(3.139*1013)>105,所以做完全部測試將至少需要 105年(即10萬年)。3.答:經(jīng)驗(yàn)表明,在類似的程序中,單位長度里的錯(cuò)誤數(shù) ET/IT近似為常數(shù)。美國的一些統(tǒng)計(jì)數(shù)字告訴我們,通常0.5*10-2≤ET/IT≤2*10-2也就是說,在測試之前每 1000條指令中大約有 5~20個(gè)錯(cuò)誤。假設(shè)在該程序的每 1000條指令中有 10個(gè)錯(cuò)誤,則估計(jì)在對(duì)它進(jìn)行測試期間將發(fā)現(xiàn)的錯(cuò)誤數(shù)為25000*(10/1000)=250答:(1)語句覆蓋的測試用例因?yàn)槊總€(gè)判定表達(dá)式為真或?yàn)榧贂r(shí)均有賦值語句,為了使每個(gè)語句都至少執(zhí)行一次,總共需要兩組測試數(shù)據(jù), 以便使得每個(gè)判定表達(dá)式取值為真或?yàn)榧俑饕淮巍?下面是實(shí)現(xiàn)語句覆蓋的典型測試用例:1)使3個(gè)判定表達(dá)式之值全為假輸入:A=1,B=1,C=1預(yù)期的輸出:X=1,Y=2,Z=32)使3個(gè)判定表達(dá)式之值全為真輸入:A=20,B=40,C=60預(yù)期的輸出:X=10,Y=20,Z=30路徑覆蓋的測試用例本程序共有 8條可能的執(zhí)行通路,為做到路徑覆蓋總共需要 8組測試數(shù)據(jù)。下面是實(shí)現(xiàn)路徑覆蓋的典型測試用例:— 8精選文庫1)3個(gè)判定表達(dá)式之值全為假輸入:A=1,B=1,C=1預(yù)期的輸出:X=1,Y=2,Z=32)3個(gè)判定表達(dá)式依此為假、假、真輸入:A=1,B=1,C=60預(yù)期的輸出:X=1,Y=2,Z=303)3個(gè)判定表達(dá)式依此為假、真、假輸入:A=1,B=40,C=1預(yù)期的輸出:X=1,Y=20,Z=34)3個(gè)判定表達(dá)式依此為假、真、真輸入:A=1,B=40,C=60預(yù)期的輸出:X=1,Y=20,Z=305)3個(gè)判定表達(dá)式依此為真、假、假輸入:A=20,B=1,C=1預(yù)期的輸出:X=10,Y=2,Z=36)3個(gè)判定表達(dá)式依此為真、假、真輸入:A=20,B=1,C=60預(yù)期的輸出:X=10,Y=2,Z=307)3個(gè)判定表達(dá)式依此為真、真、假輸入:A=20,B=40,C=1預(yù)期的輸出:X=10,Y=20,Z=38)3個(gè)判定表達(dá)式全為真輸入:A=20,B=40,C=60預(yù)期的輸出:X=10,Y=20,Z=30答:(1)分支覆蓋(即判定覆蓋)標(biāo)準(zhǔn)為,不僅使每個(gè)語句至少執(zhí)行一次,而且使每個(gè)判定表達(dá)式的每個(gè)分支都至少一次。為做到分支覆蓋,至少需要兩組測試數(shù)據(jù),以使每個(gè)判定表達(dá)式之值為真或?yàn)榧俑饕淮?。下面是典型的測試用例:1)使兩個(gè)判定表達(dá)式之值全為假輸入:A=-1,B=-2,C=-3 ,D=1預(yù)期的輸出:X=1,Y=-22)使兩個(gè)判定表達(dá)式之值全為真輸入:A=1,B=2,C=3,D=1預(yù)期的輸出:X=3,Y=2條件組合覆蓋標(biāo)準(zhǔn)為,使得每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。本題程序中共有兩個(gè)判定表達(dá)式,每個(gè)判定表達(dá)式中有兩個(gè)簡單條件,因此,總共有 8種可能的條件組合,它們是:— 9精選文庫1)A>0,B>02)A>0,B≤03)A≤0,B>04)A≤0,B≤05)C>A,D6)C>A,D≥B7)C≤A,D8)C≤A,D≥B下面的4個(gè)測試用例,可以使上面列出的 8種條件組合每種至少出現(xiàn)一次:1)實(shí)現(xiàn)1,5兩種條件組合輸入:A=1,B=1,C=2,D=0預(yù)期的輸出:X=2,Y=22)實(shí)現(xiàn)2,6兩種條件組合輸入:A=1,B=0,C=2,D=1預(yù)期的輸出:X=1,Y=13)實(shí)現(xiàn)3,7兩種條件組合輸入:A=0,B=1,C=-1 ,D=0預(yù)期的輸出:X=-1,Y=-14)實(shí)現(xiàn)4,8兩種條件組合輸入:A=0,B=0,C=-1 ,D=1預(yù)期的輸出:X=0,Y=06.答:用基本路徑測試方法設(shè)計(jì)測試用例的過程,有下述 4個(gè)步驟:根據(jù)過程設(shè)計(jì)的結(jié)果畫出流圖與本題給出的偽碼程序相對(duì)應(yīng)的流圖如圖 4.1所示。— 10精選文庫計(jì)算流圖的環(huán)形復(fù)雜度使用下述 3種方法中的任一種都可以算出圖 4.1所示流圖的復(fù)雜度為 5.1)該流圖共有 15條邊,12個(gè)結(jié)點(diǎn),所以環(huán)形復(fù)雜度為15-12+2=52)該流圖共有 5個(gè)區(qū)域,因此環(huán)形復(fù)雜度為 5.3)該流圖中共有 4個(gè)判定結(jié)點(diǎn),因此環(huán)形復(fù)雜度為4+1=53)確定線性獨(dú)立路徑的基本集合所謂線性獨(dú)立路徑是指至少引入程序的一個(gè)新語句集合或一個(gè)新條件的路徑,用流圖術(shù)語來描述,獨(dú)立路徑至少包含一條在定義該路徑之前不曾用過的邊。使用基本路徑測試法設(shè)計(jì)測試用例時(shí),程序的環(huán)形復(fù)雜度決定了程序中獨(dú)立路徑的數(shù)量,而且這個(gè)數(shù)值是確保程序中所以語句至少被執(zhí)行一次所需的測試數(shù)量的上界。對(duì)于圖4.1所示流圖來說,由于它的環(huán)形復(fù)雜度為5,因此共有5條獨(dú)立路徑。下面列出了5條獨(dú)立路徑:— 11精選文庫路徑1:1-2-3-4-6-7-9-11-12路徑2:1-2-5-6-7-9-11-12路徑3:1-2-3-5-6-7-9-11-12路徑4:1-2-3-4-6-7-8-9-11-12路徑5:1-2-3-4-6-7-8-10-11-12圖4.1 與第6題偽碼程序?qū)?yīng)的流圖設(shè)計(jì)可強(qiáng)制執(zhí)行基本路徑集合中每條路徑的測試用例1)執(zhí)行路徑 1(兩個(gè)判定表達(dá)式全為真)輸入:A=1,B=1,C=2,D=2(任意)預(yù)期的輸出:X=2,Y=02)執(zhí)行路徑 2(第一個(gè)判定表達(dá)式為假,第二個(gè)判定表達(dá)式為真)輸入:A=0,B=1(任意),C=2,D=0(任意)預(yù)期的輸出:X=-1,Y=23)執(zhí)行路徑 3(第一個(gè)判定表達(dá)式為假,第二個(gè)判定表達(dá)式為真)輸入:A=1,B=0,C=2,D=0(任意)預(yù)期的輸出:X=1,Y=24)執(zhí)行路徑 4(兩個(gè)判定表達(dá)式全為真)輸入:A=1,B=1,C=0,D=-1預(yù)期的輸出:X=2,Y=15)執(zhí)行路徑 5(第一個(gè)判定表達(dá)式為真,第二個(gè)判定表達(dá)式為假)輸入:A=1,B=1,C=0,D=2預(yù)期的輸出:X=2,Y=27.答:題中并沒有給出實(shí)現(xiàn)函數(shù)SEARCH的算法,僅僅描述了它的功能,因此,只能用黑盒測試技術(shù)設(shè)計(jì)測試它的測試方案.為了用等價(jià)劃分法設(shè)計(jì)測試用例,首先需要?jiǎng)澐州斎霐?shù)據(jù)的等價(jià)類。根據(jù)該函數(shù)的功能,可以把它的輸入數(shù)據(jù)劃分成以下等價(jià)類:(1)有效輸入的等價(jià)類●數(shù)組有偶數(shù)個(gè)元素,第1個(gè)元素是所要找的數(shù)。●數(shù)組有偶數(shù)個(gè)元素,最后一個(gè)元素是所要找的數(shù)?!駭?shù)組有偶數(shù)個(gè)元素,數(shù)組中沒有所要找的數(shù)?!駭?shù)組有奇數(shù)個(gè)元素,第1個(gè)元素是所要找的數(shù)?!駭?shù)組有奇數(shù)個(gè)元素,最后一個(gè)元素是所要找的數(shù)?!駭?shù)組有奇數(shù)個(gè)元素,數(shù)組中沒有所要找的數(shù)?!駭?shù)組有多個(gè)元素,其中一個(gè)正整數(shù)是所要找的數(shù)。●數(shù)組有多個(gè)元素,其中一個(gè)負(fù)整數(shù)是所要找的數(shù)?!駭?shù)組有多個(gè)元素,其中一個(gè)0是所要找的數(shù)。(2)無效輸入的等價(jià)類— 12精選文庫數(shù)組實(shí)際長度不等于變元 size的值。為了使用邊界值分析法設(shè)計(jì)測試方案,應(yīng)該再考慮下述幾種邊界情況:●數(shù)組長度為 1,其元素是所要找的數(shù)。●數(shù)組長度為 1,其元素不是所要找的數(shù)?!駭?shù)組為空(長度為 0)。根據(jù)上面劃分出的等價(jià)類及邊界情況,可以設(shè)計(jì)出下述測試方案:1)數(shù)組長度為 1,其正整數(shù)元素是所要找的數(shù)輸入:somearray={6},size=1,value=6預(yù)期的輸出:12)數(shù)組長度為 1,其負(fù)整數(shù)元素是所要找的數(shù)輸入:somearray={-20},size=1,value=-20預(yù)期的輸出:13)數(shù)組長度為 1,其元素0是所要找的數(shù)輸入:somearray={0,size=1,value=0預(yù)期的輸出:14)數(shù)組長度為 1,其元素不是所要找的數(shù)輸入:somearray={6},size=1,value=8預(yù)期的輸出:-15)數(shù)組為空輸入:somearray={},size=0,value=6預(yù)期的輸出:-16)數(shù)組有偶數(shù)個(gè)元素,第1個(gè)元素是正整數(shù)且是所要找的數(shù)輸入:somearray={1,2,3,4},size=4,value=1預(yù)期的輸出:17)數(shù)組有偶數(shù)個(gè)元素,最后一個(gè)元素是負(fù)整數(shù)且是所要找的數(shù)輸入:somearray={1,2,3,-4},size=4,value=-4預(yù)期的輸出:48)數(shù)組有偶數(shù)個(gè)元素,其中一個(gè)元素 0是所要找的數(shù)輸入:somearray={1,2,0,3},size=4,value=0預(yù)期的輸出:39)數(shù)組有偶數(shù)個(gè)元素,元素中沒有所要找的數(shù)輸入:somearray={1,2,3,4},size=4,value=5預(yù)期的輸出:-110)數(shù)組有奇數(shù)個(gè)元素,第 1個(gè)元素是 0且是要找的數(shù)輸入:somearray={0,1,2},size=3,value=0預(yù)期的輸出:111)數(shù)組有奇數(shù)個(gè)元素,最后一個(gè)元素是負(fù)整數(shù)且是所要找的數(shù)— 13精選文庫輸入:somearray={1,2,-3},size=3,value=-3預(yù)期的輸出:312)數(shù)組有奇數(shù)個(gè)元素,沒有要找的數(shù)輸入:somearray={1,2,3},size=3,value=-3預(yù)期的輸出:-113)數(shù)組實(shí)際長度不等于 size輸入:somearray={1,2,3},size=3,value=1預(yù)期的輸出:“無效的 size值”答:為了對(duì)這個(gè)折半查找程序進(jìn)行功能測試,應(yīng)該使用下述測試用例:1)查找列表中第一個(gè)名字預(yù)期的輸出:TRUE2)查找列表中最后一個(gè)名字預(yù)期的輸出:TRUE3)查找第一個(gè)名字后的名字預(yù)期的輸出:TRUE4)查找最后一個(gè)名字前的名字預(yù)期的輸出:TRUE5)查找位于列表中間的一個(gè)名字預(yù)期的輸出:TRUE6)查找不在列表中但按字母順序恰好在第一個(gè)名字后的名字預(yù)期的輸出:FALSE7)查找不在列表中但按字母順序恰好在最后一個(gè)名字前的名字預(yù)期的輸出:FALSE答:(1)測試系統(tǒng)正常操作的測試數(shù)據(jù)1)順序執(zhí)行下列 3個(gè)命令:b(KEYWORD)(L)d(N)其中,KEYWORD是正確的關(guān)鍵字; L是執(zhí)行命令 b后在屏幕上顯示的約 20個(gè)行號(hào)中的一個(gè)(至少應(yīng)該使 L分別為第一個(gè)、最后一個(gè)和中央一個(gè)行號(hào)); N是執(zhí)行命令 s后列出的索引號(hào)中的一個(gè)(至少應(yīng)該使 N分別為第一個(gè)、最后一個(gè)和中央一個(gè)索引號(hào))。針對(duì)若干個(gè)不同的 KEYWORD重復(fù)執(zhí)行上述命令序列。2)順序執(zhí)行下列 2個(gè)命令:(NAME)d(N)其中,NAME是已知的作者姓名; N是執(zhí)行命令 f后列出的索引號(hào)中的一個(gè)(至少應(yīng)該使N分別為第一個(gè)、最后一個(gè)和中央一個(gè)索引號(hào))。— 14精選文庫針對(duì)若干個(gè)不同的 NAME重復(fù)執(zhí)行上述命令序列。測試系統(tǒng)非正常操作的測試數(shù)據(jù)1)用過長的關(guān)鍵字作為命令 b的參數(shù),例如, b(reliability software andhardwarecombined)預(yù)期的輸出:系統(tǒng)截短過長的關(guān)鍵字,例如,上列命令中的關(guān)鍵字可能被截短為reliabilitysoftware2)用不正確的關(guān)鍵字作為命令 b的參數(shù),例如, b(AARDVARK)預(yù)期的輸出:顯示出最接近的匹配結(jié)果,例如,執(zhí)行上列命令后可能顯示1.AARON,JULES(book)3)用比執(zhí)行命令b后列出的最大行號(hào)大1的數(shù)作為命令s的參數(shù)預(yù)期的輸出:“命令s的參數(shù)不在行號(hào)列表中”4)用數(shù)字和標(biāo)點(diǎn)符號(hào)作為命令b和命令f的參數(shù)預(yù)期的輸出:“參數(shù)類型錯(cuò)”5)用字母符號(hào)作為命令s和命令d的參數(shù)預(yù)期的輸出:“參數(shù)數(shù)值錯(cuò)”6)用0和負(fù)數(shù)作為命令s和命令d的參數(shù)預(yù)期的輸出:“參數(shù)數(shù)值錯(cuò)”7)命令順序錯(cuò),例如,沒執(zhí)行命令b就執(zhí)行命令s,或沒執(zhí)行命令s就執(zhí)行命令d預(yù)期的輸出:“命令順序錯(cuò)”8)命令語法錯(cuò),例如,遺漏命令名 b、s、d或f,或命令參數(shù)沒用圓括號(hào)括起來預(yù)期的輸出:“命令語法錯(cuò)”9)命令參數(shù)空,例如, b()、s()、d()或f()預(yù)期的輸出:系統(tǒng)提供默認(rèn)參數(shù)或給出出錯(cuò)信息10)使用拼錯(cuò)了的作者姓名作為命令 f的參數(shù)預(yù)期的輸出:“找不到這位作者的著作”答:應(yīng)該分別使用正常的輸入數(shù)據(jù)和異常的輸入數(shù)據(jù),作為驗(yàn)收測試數(shù)據(jù)。(1)用正常的輸入數(shù)據(jù)作為測試數(shù)據(jù)1)輸入常規(guī)的出發(fā)點(diǎn)、目的地、 5個(gè)位置校核點(diǎn)、高度、速度及飛機(jī)型號(hào)。2)針對(duì)5對(duì)不同的出發(fā)點(diǎn)和目的地,重復(fù)執(zhí)行測試 1)。3)固定出發(fā)點(diǎn)、目的地、位置校核點(diǎn)、高度和速度,分別輸入 3~5種不同的飛機(jī)型號(hào),重復(fù)執(zhí)行測試 1)。4)固定出發(fā)點(diǎn)、目的地、位置校核點(diǎn)、高度和飛機(jī)型號(hào),分別輸入 3~5個(gè)不同的速度,重復(fù)執(zhí)行測試 1)。5)固定出發(fā)點(diǎn)、目的地、位置校核點(diǎn)、速度和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論