【5-1】從供選擇的答案中選出應(yīng)填入下列( ? )中的字句。
軟件測試的目的是( A )。為了提高測試的效率,應(yīng)該( B )。使用白盒測試方法時,確定測試數(shù)據(jù)應(yīng)根據(jù)( C )和指定的覆蓋標準。與設(shè)計測試數(shù)據(jù)無關(guān)的文檔是( D )。
軟件的集成測試工作最好由( E )承擔,以提高集成測試的效果。
供選擇的答案:
A. ? ? ?① 評價軟件的質(zhì)量 ? ? ? ? ? ? ? ? ? ? ? ?② 發(fā)現(xiàn)軟件的錯誤
③ 找出軟件中的所有錯誤 ? ? ? ? ? ?④ 證明軟件是正確的
B. ? ? ?① 隨機地選取測試數(shù)據(jù) ? ? ? ? ? ? ? ? ?
② 取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
③ 在完成編碼以后制定軟件的測試計劃
④ 選擇發(fā)現(xiàn)錯誤的可能性大的數(shù)據(jù)作為測試數(shù)據(jù)
C. ? ? ?① 程序的內(nèi)部邏輯 ? ? ? ? ? ? ? ? ? ? ? ?② 程序的復(fù)雜程度
③ 使用說明書 ? ? ? ? ? ? ? ? ? ? ? ?④ 程序的功能
D. ? ? ?① 該軟件的設(shè)計人員 ? ? ? ? ? ? ? ? ?② 程序的復(fù)雜程度
③ 源程序 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?④ 項目開發(fā)計劃
E. ? ? ?① 該軟件的設(shè)計人員 ? ? ? ? ? ? ? ? ?② 該軟件開發(fā)組的負責人
③ 該軟件的編程人員 ? ? ? ? ? ? ? ? ?④ 不屬于該軟件開發(fā)組的軟件設(shè)計人員
【5-2】請從供選擇的答案中選出應(yīng)填入下列( ? )中的字句。
程序的三種基本控制結(jié)構(gòu)是( A )。它們的共同點是( B )。結(jié)構(gòu)化程序設(shè)計的一種基本方法是( C )。軟件測試的目的是( D )。軟件調(diào)試的目的是( E )。
供選擇的答案:
A. ? ? ?① 過程,子程序,分程序 ? ? ? ? ? ? ? ? ?② 順序,條件,循環(huán)
③ 遞歸,堆棧,隊列 ? ? ? ? ? ? ? ? ? ? ? ?④ 調(diào)用,返回,轉(zhuǎn)移
B. ? ? ?① 不能嵌套使用 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?② 只能用來寫簡單的程序
③ 已經(jīng)用硬件實現(xiàn) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?④ 只有一個入口和一個出口
C. ? ? ?① 篩選法 ? ? ? ? ? ?② 遞歸法 ? ? ? ? ? ?③ 歸納法 ? ? ? ? ? ?④ 逐步求精法
D. ? ? ?① 證明程序中沒有錯誤 ? ? ? ? ? ? ? ? ?② 發(fā)現(xiàn)程序中的錯誤
③ 測量程序的動態(tài)特性 ? ? ? ? ? ? ? ? ?④ 檢查程序中的語法錯誤
E. ? ? ?① 找出錯誤所在并改正之 ? ? ? ? ? ? ? ? ?② 排除存在錯誤的可能性
③ 對錯誤性質(zhì)進行分類 ? ? ? ? ? ? ? ? ?④ 統(tǒng)計出錯的次數(shù)
【5-3】從下列關(guān)于軟件測試的敘述中,選出5條正確的敘述。
(1) 用黑盒法測試時,測試用例是根據(jù)程序內(nèi)部邏輯設(shè)計的。
(2) 盡量用公共過程或子程序去代替重復(fù)的代碼段。
(3) 測試是為了驗證該軟件已正確地實現(xiàn)了用戶的要求。
(4) 對于連鎖型分支結(jié)構(gòu),若有n個判定語句,則有2n條路徑。
(5) 盡量采用復(fù)合的條件測試,以避免嵌套的分支結(jié)構(gòu)。
(6) GOTO語句概念簡單,使用方便,在某些情況下,保留GOTO語句反能使寫出的程序更加簡潔。
(7) 發(fā)現(xiàn)錯誤多的程序模塊,殘留在模塊中的錯誤也多。
(8) 黑盒測試方法中最有效的是因果圖法。
(9) 在做程序的單元測試時,樁(存根)模塊比驅(qū)動模塊容易編寫。
(10) 程序效率的提高主要應(yīng)通過選擇高效的算法來實現(xiàn)。
【5-4】從供選擇的答案中選出同下列關(guān)于軟件測試的各條敘述關(guān)系最密切的字句。
(1) 對可靠性要求很高的軟件,例如操作系統(tǒng),由第三者對源代碼進行逐行檢查。
(2) 已有的軟件被改版時,由于受到變更的影響,改版前正常的功能可能發(fā)生異常,性能也可能下降。因此,對變更的軟件進行測試是必要的。
(3) 在意識到被測試模塊的內(nèi)部結(jié)構(gòu)或算法的情況下進行測試。
(4) 為了確認用戶的需求,先做出系統(tǒng)的主要部分,提交給用戶試用。
(5) 在測試具有層次結(jié)構(gòu)的大型軟件時,有一種方法是從上層模塊開始,由上到下進行測試。此時,有必要用一些模塊替代尚未測試過的下層模塊。
供選擇的答案:
A ? E: ? ? ?① 仿真器 ? ? ? ? ② 代碼審查 ? ③ 模擬器 ? ? ? ④ 樁 ? ? ? ? ? ? ⑤ 驅(qū)動器
⑥ 域測試 ? ? ? ⑦ 黑盒測試 ? ? ? ⑧ 原型 ? ? ? ? ? ? ? ⑨ 白盒測試 ? ? ? ⑩ 退化測試
【5-5】對小的程序進行窮舉測試是可能的,用窮舉測試能否保證程序是百分之百正確呢?
【5-6】在任何情況下單元測試都是可能的嗎?都是需要的嗎?
【5-7】從供選擇的答案中選出應(yīng)填入下面有關(guān)軟件測試的敘述的( ? )內(nèi)的正確答案。
軟件測試方法可分為黑盒測試法和白盒測試法兩種。
黑盒測試法是通過分析程序的( A )來設(shè)計測試用例的方法。除了測試程序外,它還適用于對( B )階段的軟件文檔進行測試。
白盒測試法是根據(jù)程序的( C )來設(shè)計測試用例的方法。除了測試程序外,它也適用于對( D )階段的軟件文檔進行測試。
白盒法測試程序時常按照給定的覆蓋條件選取測試用例。( E )覆蓋比( F )覆蓋嚴格,它使得每一個判定的每一條分支至少經(jīng)歷一次。( G )覆蓋既是判定覆蓋,又是條件覆蓋,但它并不保證使各種條件都能取到所有可能的值。( H )覆蓋比其他條件都要嚴格,但它不能保證覆蓋程序中的每一條路徑。
單元測試一般以( I )為主,測試的依據(jù)是( J )。
供選擇的答案:
A, C:① 應(yīng)用范圍 ? ? ?② 內(nèi)部邏輯 ? ? ? ?③ 功能 ? ? ? ? ? ?④ 輸入數(shù)據(jù)
B, D:① 編碼 ? ? ? ? ? ? ?② 軟件詳細設(shè)計 ? ? ?③ 軟件總體設(shè)計 ④ 需求分析
E, F, G, H:① 語句 ? ? ?② 判定 ? ? ? ? ? ?③ 條件 ? ? ? ? ? ?④ 判定/條件
⑤ 多重條件 ? ? ?⑥ 路徑
I:① 白盒法 ? ? ? ? ?② 黑盒法
J:① 模塊功能規(guī)格說明 ? ? ?② 系統(tǒng)模塊結(jié)構(gòu)圖 ? ? ?③ 系統(tǒng)需求規(guī)格說明
【5-8】從供選擇的答案中選出應(yīng)該填入下列關(guān)于軟件測試的敘述的( )內(nèi)的正確答案。
軟件測試中常用的靜態(tài)分析方法是( A )和( B )。( B )用于檢查模塊或子程序間的調(diào)用是否正確。分析方法(白盒方法)中常用的方法是( C )方法。非分析方法(黑盒方法)中常用的方法是( D )方法和( E )方法。( E )方法根據(jù)輸出對輸入的依賴關(guān)系設(shè)計測試用例。
供選擇的答案:
A ? B: ? ? ?① 引用分析 ? ? ? ? ② 算法分析 ? ? ? ③ 可靠性分析 ? ? ? ④ 效率分析
? ? ? ? ?⑤ 接口分析 ? ? ? ? ⑥ 操作分析
C ~ E: ? ? ?① 路徑測試 ? ② 等價類 ? ? ? ③ 因果圖 ? ? ? ④ 歸納測試
⑤ 綜合測試 ? ⑥ 追蹤 ? ? ? ? ? ? ⑦ 深度優(yōu)先 ? ? ? ⑧ 調(diào)試
⑨ 相對圖
【5-9】下面是選擇排序的程序,其中datalist是數(shù)據(jù)表,它有兩個數(shù)據(jù)成員:一是元素類型為Element的數(shù)組V,另一個是數(shù)組大小n。算法中用到兩個操作,一是取某數(shù)組元素V的關(guān)鍵碼操作getKey ( ),一是交換兩數(shù)組元素內(nèi)容的操作Swap( )::
? ? ? void SelectSort ( datalist & list ) {
? ? ? //對表list.V[0]到list.V[n-1]進行排序, n是表當前長度。
? ? ? ? for ( int i = 0; i < list.n-1; i++ ) {
? ? ? ? ? ? ? int k = i; ? ? ? ? ? ? ? //在list.V.key到list.V[n-1].key中找具有最小關(guān)鍵碼的對象
? ? ? ? ? ? ? for ( int j = i+1; j < list.n; j++)
? ? ? ? ? ? ? ? if ( list.V[j].getKey ( ) < list.V[k].getKey ( ) ) k = j; ? ? ? //當前具最小關(guān)鍵碼的對象
? ? ? ? ? ? ? if ( k != i ) Swap ( list.V, list.V[k] ); ? ? ? ? ? ? ? ? ? ? ? ? //交換
? ? ? }
? ? }
(1) 試計算此程序段的McCabe復(fù)雜性;
(2) 用基本路徑覆蓋法給出測試路徑;
(3) 為各測試路徑設(shè)計測試用例。
【5-10】根據(jù)下面給出的規(guī)格說明,利用等價類劃分的方法,給出足夠的測試用例。
“一個程序讀入三個整數(shù)。把此三個數(shù)值看成是一個三角形的三個邊。這個程序要打印出信息,說明這個三角形是三邊不等的、是等腰的、還是等邊的。”
【5-11】設(shè)要對一個自動飲料售貨機軟件進行黑盒測試。該軟件的規(guī)格說明如下:
“有一個處理單價為1元5角錢的盒裝飲料的自動售貨機軟件。若投入1元5角硬幣,按下“可樂”、“雪碧”或“紅茶”按鈕,相應(yīng)的飲料就送出來。若投入的是2元硬幣,在送出飲料的同時退還5角硬幣。”
(1) 試利用因果圖法,建立該軟件的因果圖;
(2) 設(shè)計測試該軟件的全部測試用例。
【5-12】對一個長度為100,000條指令的程序進行測試,記錄下來的數(shù)據(jù)如下:
? 測試開始, 發(fā)現(xiàn)錯誤個數(shù)為0;
? 經(jīng)過160小時的測試, 累計改正100個錯誤, 此時, MTTF = 0.4小時;
? 又經(jīng)過160小時的測試, 累計改正300個錯誤, 此時, MTTF = 2小時;
(1) 估計程序中固有的錯誤總數(shù);
(2) 為使MTTF達到10小時, 必須測試和調(diào)試這個程序多長時間?
(3) 給出MTTF與測試時間t之間的函數(shù)關(guān)系。
【5-13】應(yīng)該由誰來進行確認測試?是軟件開發(fā)者還是軟件用戶?為什么?
?軟件測試工程師筆試試題
請根據(jù)您以往的學習和工作經(jīng)歷,結(jié)合您的個人經(jīng)驗回答以下問題。您可以盡可能詳細和完整的表達出自己的思想,如果書寫空間不夠,您可以將答案寫在題目所在頁的背面。如果需要稿紙請同接待人員聯(lián)系。01.?? 為什么要在一個團隊中開展軟件測試工作?
02.?? 您是否了解以往所工作的企業(yè)的軟件測試過程?如果了解,請試述在這個過程中都有哪些工作要做?分別由哪些不同的角色來完成這些工作?
03.?? 您是否了解以往所工作的企業(yè)的軟件開發(fā)過程?如果了解,請試述一個完整的開發(fā)過程需要完成哪些工作?分別由哪些不同的角色來完成這些工作?(對于軟件測試部分,可以簡述)
04.?? 您在以往的測試工作中都曾經(jīng)具體從事過哪些工作?其中最擅長哪部分工作?
05.?? 您所熟悉的軟件測試類型都有哪些?請試著分別比較這些不同的測試類型的區(qū)別與聯(lián)系(如功能測試、性能測試……)
06.?? 請試著比較一下黑盒測試、白盒測試、單元測試、集成測試、系統(tǒng)測試、驗收測試的區(qū)別與聯(lián)系。
07.?? 測試計劃工作的目的是什么?測試計劃工作的內(nèi)容都包括什么?其中哪些是最重要的?
08.?? 您認為做好測試計劃工作的關(guān)鍵是什么?
09.?? 您所熟悉的測試用例設(shè)計方法都有哪些?請分別以具體的例子來說明這些方法在測試用例設(shè)計工作中的應(yīng)用。10.?? 您認為做好測試用例設(shè)計工作的關(guān)鍵是什么?