1. 程式人生 > >軟體測試工程師筆試題及答案(二)

軟體測試工程師筆試題及答案(二)

測試人員考試試卷二(考試時間90分鐘,滿分100分)


一、 判斷題(每題2分,正確的“√”,錯誤的“╳”) 


1 、 好的測試員不懈追求完美。(×) 


2、 測試程式僅僅按預期方式執行就行了。(×) 


3、 不存在質量很高但可靠性很差的產品。(×) 


4、 軟體測試員可以對產品說明書進行白盒測試。(×) 


5、 靜態白盒測試可以找出遺漏之處和問題。(√) 


6、 總是首先設計白盒測試用例。( ) 


7、 可以釋出具有配置缺陷的軟體產品。(×) 


8、 所有軟體必須進行某種程度的相容性測試。(√) 


9、 所有軟體都有一個使用者介面,因此必須測試易用性。(√) 


10、 測試組負責軟體質量。(√) 


二、 簡答題 


1、 軟體的缺陷等級應如何劃分?(3 分)


1.致命錯誤,可能導致本模組以及其他相關模組異常,宕機等問題;   


2.嚴重錯誤,問題侷限在本模組,導致模組功能失效或異常退出    


3.一般錯誤,模組功能部分失效;  
  
4.建議問題,由問題提出人對測試物件的改進意見;


2、 如果能夠執行完美的黑盒測試,還需要進行白盒測試嗎?為什麼?(5 分) 


任何工程產品(注意是任何工程產品)都可以使用以下兩種方法之一進行測試。    


黑盒測試:已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求。


白盒測試:已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格要求,所有內部成分是否以經過檢查。   
 
軟體的黑盒測試意味著測試要在軟體的介面處進行。這種方法是把測試物件看做一個黑盒子,測試人員完全不考慮程式內部的邏輯結構和內部特性,只依據程式的需求規


格說明書,檢查程式的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或資料驅動測試。黑盒測試主要是為了發現以下幾類錯誤:    


1、是否有不正確或遺漏的功能?    


2、在介面上,輸入是否能正確的接受?能否輸出正確的結果?    


3、是否有資料結構錯誤或外部資訊(例如資料檔案)訪問錯誤?    


4、效能上是否能夠滿足要求?    


5、是否有初始化或終止性錯誤?    


軟體的白盒測試是對軟體的過程性細節做細緻的檢查。這種方法是把測試物件看做一個開啟的盒子,它允許測試人員利用程式內部的邏輯結構及有關資訊,設計或選擇測


試用例,對程式所有邏輯路徑進行測試。通過在不同點檢查程式狀態,確定實際狀態是否與預期的狀態一致。因此白盒測試又稱為結構測試或邏輯驅動測試。白盒測試主


要是想對程式模組進行如下檢查:    


1、對程式模組的所有獨立的執行路徑至少測試一遍。    


2、對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。   


3、在迴圈的邊界和執行的界限內執行迴圈體。   


4、測試內部資料結構的有效性,等等。    


以上事實說明,軟體測試有一個致命的缺陷,即測試的不完全、不徹底性。由於任何程式只能進行少量(相對於窮舉的巨大數量而言)的有限的測試,在未發現錯誤時,不


能說明程式中沒有錯誤。

3、 你認為一個優秀的測試工程師應該具備哪些素質?(3 分)


  (自主多答)


4、 產品測試到什麼時候就算是足夠了?(2 分) 


測試一直貫穿軟體的整個生命週期,從需求、設計到編碼、實現一直到軟體的最終交付使用者。並不等於軟體的除錯。只要使用者滿意。


5、 測試計劃的目的是什麼?(2 分) 


軟體測試計劃是指導測試過程的綱領性檔案,包含了產品概述、測試策略、測試方法、測試區域、測試配置、測試周期、測試資源、測試交流、風險分析等內容。藉助軟


件測試計劃,參與測試的專案成員,尤其是測試管理人員,可以明確測試任務和測試方法,保持測試實施過程的順暢溝通,跟蹤和控制測試進度,應對測試過程中的各種


變更。


6、 為什麼要進行軟體測試?軟體測試的目的是什麼? (5 分) 


因為軟體測試就是利用測試工具按照測試方案和流程對產品進行功能和效能測試,甚至根據需要編寫不同的測試工具,設計和維護測試系統,對測試方案可能出


現的問題進行分析和評估。執行測試用例後,需要跟蹤故障,以確保開發的產品適合需求。


軟體測試的目的:第一是確認軟體的質量,其一方面是確認軟體做了你所期望做的事情(Do the right thing),另一方面是確認軟體以正確的方式來做了這個


事情(Do it right)。第二是提供資訊,比如提供給開發人員或程式經理的回饋資訊,為風險評估所準備的資訊。第三軟體測試不僅是在測試軟體軟體產品本身,而且還


包括軟體開發的過程。如果一個軟體產品開發完成之後發現了很多問題,這說明此軟體開發過程很可能是有缺陷的。因此,軟體測試的第三個目的是保證整個軟體開發過


程是高質量的。


7、軟體測試應該劃分幾個階段?簡述各個階段應重點測試的點?各個階段的含義?(5 分) 


大體上來說可分為單元測試,整合測試,系統測試,驗收測試,每個階段又分為以下五個步驟:
   
測試計劃,測試設計,用例設計,執行結果,測試報告
   
初始測試集中在每個模組上,保證原始碼的正確性,該階段成為單元測試,主要用白盒測試方法。接下來是模組整合和整合以便組成完整的軟體包。整合測試集中在證實


和程式構成問題上。 主要採用黑盒測試方法,輔之以白盒測試方法。軟體整合後,需要完成確認和系統測試。確認測試提供軟體滿足所有功能、效能需求的最後保證。


確認測試僅僅應用黑盒測試方法。
  
 單元測試  
  
單元測試是對軟體中的基本組成單位進行的測試,如一個模組、一個過程等等。它是軟體動態測試的最基本的部分,也是最重要的部分之一,其目的是檢驗軟體基本組成


單位的正確性。
  
整合測試  
  
整合測試是在軟體系統整合過程中所進行的測試,其主要目的是檢查軟體單位之間的介面是否正確。
  
系統測試 
  
系統測試是對已經整合好的軟體系統進行徹底的測試,以驗證軟體系統的正確性和效能等滿足其規約所指定的要求,檢查軟體的行為和輸出是否正確並非一項簡單的任務


,它被稱為測試的“先知者問題”。
   
驗收測試  
   
驗收測試旨在向軟體的購買者展示該軟體系統滿足其使用者的需求。它的測試資料通常是系統測試的測試資料的子集.
   
迴歸測試  
  
 迴歸測試是在軟體維護階段,對軟體進行修改之後進行的測試。其目的是檢驗對軟體進行的修改是否正確。


8、 如何做一名合格的測試人員?(3 分) 
 (自主多答)


9、針對缺陷採取怎樣的管理措施?(5 分) 


1. 要更好的管理缺陷,必須引入缺陷管理工具,商用的或者開源的都可。    


2. 根據缺陷的生命週期,考慮缺陷提交的管理、缺陷狀態的管理和缺陷分析的管理。    


3. 所有發現的缺陷(不管是測試發現的還是走讀程式碼發現的)都必須全部即時的、準確的提交到缺陷管理工具中,這是缺陷提交的管理。    


4. 缺陷提交後,需要即時的指派給相應的開發人員,提交缺陷的人需要密切注意缺陷的狀態, 幫助缺陷的儘快解決。缺陷解決後需要即時對缺陷的修復進行驗證。這樣


的目的有兩個:一個是讓缺陷儘快解決;二是方便後面缺陷的分析(保證缺陷相關的資訊準確,如齡期等),這是缺陷狀態的管理。 


5. 為了更好的改進開發過程和測試過程,需要對缺陷進行分析,總結如缺陷的類別、缺陷的齡期分佈等資訊,這是缺陷分析的管理。


三、 專業詞語解釋(每題2 分) 


α測試: 測試人員用使用者提供的資料,而不是模擬資料進行測試;測試整個系統,以保 證其達到可以交付使用的狀態。(內部人員)


β測試: 指將軟體安裝在一些潛在的客戶處,由客戶們根據實際使用情況將遇到的問題 報告出來的測試方法。


驅動模組: 驅動模組在大多數場合稱為"主程式",它接收測試資料並將這些資料傳遞到被測試模組.單元測試一個函式單元時,被測單元本身是不能獨立執行的,需要為其


傳送資料,為此寫驅動   驅動模組主要完成以下事情:    


1、接受測試輸入;    


2、對輸入進行判斷;    


3、將輸入傳給被測單元,驅動被測單元執行;    


4、接受被測單元執行結果,並對結果進行判斷;   


5、將判斷結果作為用例執行結果輸出測試報告。


樁模組:比如對函式A做單元測試時,被測的函式單元下還包括了一個函式B,為了更好的錯誤,定位錯誤,就要為函式B寫樁,來模擬函式B的功能,保證其正確。 


白盒測試:根據軟體內部的工作原理分析來進行測試,基於程式碼的測試,測試人員通過閱讀程式程式碼或者通過使用開發工具中的單步除錯來判斷軟體的質量,


黑盒測試:指測試人員不關心程式具體如何實現的一種測試方法。 根據軟體的規格對軟體進行各種輸入和觀察軟體的各種輸出結果來發現軟體的缺陷的測試,這類測試不


考慮軟體內部的運作原理,因此軟體對使用者來說就像一個黑盒子。


靜態測試:在不執行程式的情況下,對軟體進行測試的方法稱為靜態測試,如原始碼走 查、文件測試等都屬於靜態測試。 


四、 選擇題(每題2分) 


1.下面哪些屬於動態分析(ABCD) 


A. 程式碼覆蓋率 


B. 模組功能檢查 


C. 系統壓力測試 


D. 程式資料流分析 


2.下面哪些屬於靜態分析(ABC) 


A、 程式碼規則檢查 


B、 序結構分析 


C、 序複雜度分析 


D、 記憶體洩漏 


五、 設計題(10分) 


在三角形計算中,要求三角型的三個邊長:A、B 和C。當三邊不可能構成三角形時提示錯誤,可構成三角


形時計算三角形周長。若是等腰三角形列印“等腰三角形”,若是等邊三角形,則提示“等邊三角形”。畫出程


序流程圖、控制流程圖、找出基本測試路徑 ,對此設計一個測試用例。 


一、等價類劃分:三角形三條邊A、B、C的資料型別不同


二、邊界值分析:由於三角形的邊長可以是正整數或正小數,所以就不對長度進行測試,那麼邊界值分析就不用了
    
  三、因果圖法:三角形的三條邊資料輸入組合
         
 我們看一下三角形的流程圖:
                
    
 我們再分析一下三角形的等價類:
     
 有效等價類:
                        輸入3個正整數或正小數:
                          1、兩數之和大於第三數,如A<B+C;B<C+A;C<A+B
                          2、兩數之和不大於第三數
                          3、兩數相等,如A=B或B=C或C=A
                          4、三數相等,如A=B=C
                          5、三數不相等,如A!=B,B!=C,C!=A
    無效等價類:
                           1、空
                           2、負整數
                           3、非數字                           
                           4、少於三個數
三角形測試用例類別


輸入條件 有效等價類 無效等價類


是否是三角形 


(A>0)   (1)
(B>0)   (2)
(C>0)   (3)
(A+B>C)   (4)
(B+C>A)   (5)
(C+A>B)   (6) (A<=0)   (7)
(B<=0)   (8)
(C<=0)   (9)
(A+B<=C)   (10)
(B+C<=A)   (11)
(C+A<=B)   (12)


是否是等腰三角形 


(A=B)   (13)     
(B=C)   (14)
(C=A)   (15) (A!=B)and(B!=C)and(C!=A)      (16)


是否是等腰直角三角形 (A=B)and(A2+B2=C2)   (17)


(B=C)and(B2+C2=A2)   (18)   
(C=A)and(C2+A2=B2)    (19) (A!=B)and(B!=C)and(C!=A)     (20)


是否是等邊三角形 (A=B)and(B=C)and(C=A)     (21) (A!=B)      (22)


(B!=C)     (23)
(C!=A)     (24)


三角形測試用例:


序號 [A,B,C] 覆蓋等價類 輸出


1 [3,4,5] (1)(2)(3)(4)(5)(6) 是三角形
2 [0,1,2] (7) 非三角形
3 [1,0,2] (8) 非三角形
4 [1,2,0] (9) 非三角形
5 [1,2,3] (10) 非三角形
6 [1,3,2] (11) 非三角形
7 [3,1,2] (12) 非三角形
8 [3,3,4] (1)(2)(3)(4)(5)(6)(13) 等腰三角形
9 [3,4,4] (1)(2)(3)(4)(5)(6)(14) 等腰三角形
10 [3,4,3] (1)(2)(3)(4)(5)(6)(15) 等腰三角形
11 [2√2,2√2,4] (1)(2)(3)(4)(5)(6)(17) 等腰直角三角形
12 [4,2√2,2√2] (1)(2)(3)(4)(5)(6)(18) 等腰直角三角形
13 [2√2,4,2√2] (1)(2)(3)(4)(5)(6)(19) 等腰直角三角形
14 [3,4,5] (1)(2)(3)(4)(5)(6)(16)(20)(22)(23)(24) 是三角形
15 [3,3,3] (1)(2)(3)(4)(5)(6)(16)(21) 等邊三角形
16 [,,,] 無效等價類 錯誤提示
17 [-3,4,5] 無效等價類 錯誤提示
18 [a,3,@] 無效等價類 錯誤提示
19 [3,4] 無效等價類 錯誤提示


六、 論述題 


1、 試敘述對一個軟體專案測試的全過程。(10 分)


隨意選取一個簡單物品,假定是一個喝水的帶廣告圖案的花紙杯,讓應聘人對它設計出儘可能多的測試用例。   


測試專案:杯子  


需求測試:檢視杯子使用說明書   


介面測試:檢視杯子外觀   


功能度:用水杯裝水看漏不漏;水能不能被喝到   


安全性:杯子有沒有毒或細菌   


可靠性:杯子從不同高度落下的損壞程度   


可移植性:杯子再不同的地方、溫度等環境下是否都可以正常使用相容性:杯子是否能夠容納果汁、白水、酒精、汽油等
 
易用性:杯子是否燙手、是否有防滑措施、是否方便飲用


使用者文件:使用手冊是否對杯子的用法、限制、使用條件等有詳細描述
 
疲勞測試:將杯子盛上水(案例一)放24小時檢查洩漏時間和情況;盛上汽油(案例二)放24小時檢查洩漏時間和情況等


壓力測試:用根針並在針上面不斷加重量,看壓強多大時會穿透   


跌落測試: 杯子加包裝(有填充物),在多高的情況摔下不破損   


震動測試: 杯子加包裝(有填充物),六面震動,檢查產品是否能應對惡劣的鐵路\公路\航空運輸  


測試資料:測試資料具體編寫此處略(最討厭寫測試資料了)。其中應用到:場景法、等價類劃分法、因果圖法、錯誤推測法、邊界值法等方法  


期望輸出:該期望輸出需查閱國標、行標以及使用使用者的需求   


說明書測試: 檢查說明書書寫準確性 


2、 簡述你對測試工作的認識過程、在以後的工作的一些建議。(6 分)
(自主答) 


3 、 述靜態測試和動態測試的區別?(5 分) 


靜態方法是指不執行被測程式本身,僅通過分析或檢查源程式的語法、結構、過程、介面等來檢查程式的正確性。對需求規格說明書、軟體設計說明書、源程式


做結構分析、流程圖分析、符號執行來找錯。靜態方法通過程式靜態特性的分析,找出欠缺和可疑之處,例如不匹配的引數、不適當的迴圈巢狀和分支巢狀、不允許的遞


歸、未使用過的變數、空指標的引用和可疑的計算等。靜態測試結果可用於進一步的查錯,併為測試用例選取提供指導。 動態測試方法是指通過執行被測程式,檢查執行


結果與預期結果的差異,並分析執行效率和健壯性等效能,這種方法由三部分組成:構造測試例項、執行程式、分析程式的輸出結果