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




?軟件測試工程師筆試試題
請根據您以往的學習和工作經歷,結合您的個人經驗回答以下問題。您可以盡可能詳細和完整的表達出自己的思想,如果書寫空間不夠,您可以將答案寫在題目所在頁的背面。如果需要稿紙請同接待人員聯系。

01.?? 為什么要在一個團隊中開展軟件測試工作?
02.?? 您是否了解以往所工作的企業的軟件測試過程?如果了解,請試述在這個過程中都有哪些工作要做?分別由哪些不同的角色來完成這些工作?
03.?? 您是否了解以往所工作的企業的軟件開發過程?如果了解,請試述一個完整的開發過程需要完成哪些工作?分別由哪些不同的角色來完成這些工作?(對于軟件測試部分,可以簡述)
04.?? 您在以往的測試工作中都曾經具體從事過哪些工作?其中最擅長哪部分工作?
05.?? 您所熟悉的軟件測試類型都有哪些?請試著分別比較這些不同的測試類型的區別與聯系(如功能測試、性能測試……)
06.?? 請試著比較一下黑盒測試、白盒測試、單元測試、集成測試、系統測試、驗收測試的區別與聯系。
07.?? 測試計劃工作的目的是什么?測試計劃工作的內容都包括什么?其中哪些是最重要的?
08.?? 您認為做好測試計劃工作的關鍵是什么?

09.?? 您所熟悉的測試用例設計方法都有哪些?請分別以具體的例子來說明這些方法在測試用例設計工作中的應用。10.?? 您認為做好測試用例設計工作的關鍵是什么?