當前位置:才華齋>計算機>計算機四級>

計算機四級軟體測試工程師筆試試題

計算機四級 閱讀(5.9K)

計算機四級軟體測試工程師筆試試題內容有哪些呢,下面一起去看看吧,希望對大家有幫助!

計算機四級軟體測試工程師筆試試題

選擇題(每小題2分,共50分)

下列各題A)、B)、 C)、 D)四個選項中,只有一個選項是正確的。請將正確選項填塗在答題卡相應位置上,答在試卷上不得分。

(1)堅持在軟體開發的各個階段實施下列哪種質量保證措施,才能在開發過程中儘早發現和預防錯誤,把出現的錯誤克服在早期

A)技術評審

B)程式測試

C)文件審查

D)管理評審

(2)經驗表明,在程式測試中,某模組與其他模組相比,若該模組已發現並改正的錯誤數目較多,則該模組中殘存的錯誤數目與其他模組相比,通常應該

A)較少

B)較多

C)相似

D)不確定

(3)對程式中已發現的錯誤進行錯誤定位和確定出錯性質,並改正這些錯誤,同時修改相關的文件,稱為

A)測試

B)除錯

C)錯誤分析

D)驗證

(4)同行評審,有時稱為同級評審,是一種通過作者的同行來確認缺陷和需要變更區域的檢查方法。它主要分為管理評審、技術評審、文件評審和

A)誤差評審

B)專案評審

C)過程評審

D)組織體系評審

(5)資料流覆蓋關注的是程式中某個變數從其宣告、賦值到引用的變化情況,它是下列哪一種覆蓋的變種

A)語句覆蓋

B)控制覆蓋

C)分支覆蓋

D)路徑覆蓋

(6)程式的流程圖如下圖所示,採用路徑覆蓋法進行測試,則至少需要幾個測試用例可以覆蓋所有可能的路徑

A)5

B)6

C)7

D)8

(7)如果一個判定中的複合條件表示式為(A>1)or(B<=3),則為了達到100%的條件覆蓋率,至少需要設計多少個測試用例

A)1

B)2

C)3

D)4

(11)在軟體效能測試中,下列指標中哪個不是軟體效能的指標

A)響應時間

B)吞吐量

C)資源利用率

D)併發程序數

(12)下列關於軟體效能測試的說法中,正確的是

A)效能測試的目的不是為了發現軟體缺陷

B)壓力測試與負載測試的目的都是為了探測軟體在滿足預定效能需求的情況下所能負擔的最大壓力

C)效能測試通常要對測試結果進行分析才能獲得測試結論

D)在效能下降曲線上,最大建議使用者數通常處於效能輕微下降區與效能急劇下降區的交界處

(13)下列關於軟體可靠性測試的說法中,錯誤的是

A)發現軟體缺陷是軟體可靠性測試的主要目的

B)軟體可靠性測試通常用於有可靠性要求的軟體

C)在一次軟體可靠性測試中,執行的`測試用例必須完全符合所定義的軟體執行剖面

D)可靠性測試通常要對測試結果進行分析才能獲得測試結論

(14)下列關於面向物件軟體測試的說法中,正確的是

A)在測試一個類時,只要對該類的每個成員方法都進行充分的測試就完成了對該類充分的測試

B)在存在多型的情況下,為了達到較高的測試充分性,應對所有可能的繫結都進行測試

C)假設類B是類A的子類,如果類A已進行了充分的測試,在測試類B時不必測試任何類B繼承類A的成員方法

D)對於一棵繼承樹上的多個類,只有處於葉節點的類需要測試

(15)下列哪種測試不屬於面向物件單元測試考慮的範疇

A)成員方法的測試

B)類的測試

C)類樹的測試

D)多個相互協作的類樹的測試

(16)下列關於面向物件整合測試的說法中,正確的是

A)大突擊整合是面向物件整合測試最常用且最有效的方法

B)自底向上整合和自頂向下整合都需要為整合測試開發大量程式碼

C)協作整合在任何情況下都優於自底向上整合和自頂向下整合

D)高頻整合是以自底向上整合為基礎,利用冒煙測試進行的整合測試

(17)在Web應用軟體的分層測試策略中,下列哪個不是測試關注的層次

A)資料層

B)業務層

C)服務層

D)表示層

(18)下列關於Web應用軟體測試的說法中,正確的是

A)Cookie測試是Web應用軟體功能測試的重要內容

B)對於沒有使用資料庫的Web應用軟體,不需要進行效能測試

C)連結測試是Web應用軟體易用性測試的重要內容

D)Web應用軟體安全性測試僅關注Web應用軟體是否能夠防禦網路攻擊

(19)下列哪一項不屬於軟體功能易用性測試關注的內容

A)軟體介面的色彩是否協調

B)軟體是否能主動禁止使用者可能進行的非法操作

C)軟體是否允許使用者針對自己的使用習慣進行定製

D)軟體是否能幫助使用者減少輸入中的重複勞動

(20)下列關於極限測試的說法中,正確的是

A)極限測試是一種新型的測試方法,傳統的測試技術均不適用於極限測試

B)極限測試中所有的測試均是由編碼人員完成的

C)與傳統的軟體測試相比,極限測試是一種更嚴格的測試

D)極限測試需要頻繁地進行單元測試

(8)自底向上單元測試的策略是首先對模組呼叫圖上的哪一層模組進行測試

A)最底層

B)下一層

C)最高層

D)上一層

(9)基本路徑測試滿足

A)語句覆蓋

B)路徑覆蓋

C)分支覆蓋

D)條件覆蓋

(10)整合測試對系統內部的互動以及整合後系統功能檢驗了何種質量特性

A)正確性

B)可靠性

C)可使用性

D)可維護性

(21)下列有關測試過程V模型的說法中,正確的是

A)驗收測試應確定程式的執行是否滿足軟體設計的要求

B)系統測試應確定系統功能和效能的質量特性是否達到系統要求的指標

C)單元測試和整合測試應確定軟體的實現是否滿足使用者需要或合同的要求

D)整合測試在編碼結束前就可以開始

(22)下列哪項工作與軟體缺陷管理和追蹤無關

A)對缺陷應該包含的資訊條目、狀態分類等進行完善設計

B)通過軟體系統自動傳送通知給相關開發和測試人員,使缺陷得到及時處理

C)對測試用例的執行結果進行記錄和追蹤

D)通過一些歷史曲線和統計曲線來分析和預測未來的缺陷發現情況

(23)下列有關軟體問題生命週期模型狀態定義的說法中,錯誤的是

A)“新建”表示測試中發現並報告了新的軟體問題

B)“開啟”表示軟體問題已被確認並分配給相關開發工程師處理

C)“關閉”表示軟體問題已被開發人員修復並等待測試人員驗證

D)“解決”表示軟體問題已被確認修復

(24)下列有關軟體測試工具的說法中,錯誤的是

A)靜態測試工具可用於對軟體需求、結構設計、詳細設計和程式碼進行評審、走查和審查

B)靜態測試工具可對軟體的複雜度分析、資料流分析、控制流分析和介面分析提供支援

C)動態測試工具可用於軟體的覆蓋分析和效能分析

D)動態測試工具不包括軟體的模擬測試和變異測試

(25)計算機軟體測試規範規定,軟體測試的類別可分為:單元測試、整合測試以及

A)系統測試

B)驗收測試

C)系統測試和驗收測試

D)配置項測試、系統測試和驗收測試

 論述題(3題,共50分)

論述題答題必須用藍、黑色鋼筆或圓珠筆寫在論述題答題紙的相應位置上。

論述題1:以下是學生選課系統中“學生查詢成績”互動行為的描述,請按要求回答問題(20分)

互動開始時終端上顯示首頁,使用者選擇“查詢”請求後,顯示“請輸入學號”。

在使用者輸入學號後,系統核對學生學號:若輸入的學號不正確,則顯示“輸入的學號不正確”,此次查詢取消,回到首頁;若輸入的學號正確,出現“請輸入課程名”。

一旦輸入課程名,就開始核對課程名稱:若輸入的課程名不正確,則顯示“輸入的課程名不正確”,此次查詢取消,回到首頁;若輸入的課程名正確,則根據“學號”和“課程名”,查詢學生成績。

若查詢學生成績成功,則顯示查詢到的成績,系統詢問是否繼續查詢:當用戶選擇“繼續查詢”後回到“請輸入學號”;當用戶選擇“結束查詢”後回到首頁。

若查詢學生成績失敗,則顯示“查詢失敗”後回到首頁。

(1)請畫出該系統以上互動行為的狀態圖(應滿足功能圖的要求,不可畫成流程圖)。(10分)

(2)使用基本路徑測試方法確定該狀態圖的測試路徑。(10分)

論述題2:以下是QESuiteWebVersion1.0中某測試專案的部分介面,請按要求回答問題(12分)

(1)下圖是該測試專案的測試用例執行文件介面。有幾個測試用例沒有執行?有幾個測試用例最近一次執行通過?有幾個測試用例最近一次執行失敗?(3分)

(2)下圖是該測試專案的某軟體問題報告檢視。按QESuiteWebVersion1.0中的軟體問題生命週期定義,4號軟體問題報告需要何種人員進行哪些可能的操作?5號軟體問題報告需要何種人員進行哪些可能的操作?8號軟體問題報告需要何種人員進行哪些可能的操作?(9分)

論述題3:針對以下C語言程式,請按要求回答問題(18分)

已知link.c源程式如下:

/*link.c程式對單向連結串列進行操作,首先建立一個單向連結串列,然後根據使用者的選擇可以對其進行插入節點、刪除節點和連結串列反轉操作*/

#include

#include

typedefstructlist_node*list_pointer;//定義連結串列指標

typedefstructlist_node{//定義連結串列結構

intdata;

list_pointerlink;

}list_node;

//用到的操作函式:

list_pointercreate();//建立一個單向連結串列

void(list_pointer*p_ptr,list_pointernode);//在node後加入一個新的節點

void_node(list_pointer*p_ptr,list_pointertrail,list_pointernode);

//刪除前一個節點是trail的當前節點node

voidprint(list_pointerptr);//列印連結串列節點中的值

list_pointerinvert(list_pointerlead);//反轉連結串列

intmain()

{

list_pointerptr=NULL;

list_pointernode,trail;

list_pointer*p=&ptr;

intchoose,location,i;

printf("youshouldcreatealinkfirst:");

//建立一個單向連結串列:

ptr=create();/*ptr指向連結串列的第一個節點*/

print(ptr);

//根據使用者的不同選擇進行相應的操作:

printf("inputnumber0,youcanquittheprogram");

printf("inputnumber1,youcananewnodetolink");

printf("inputnumber2,youcananodefromthelink");

printf("inputnumber3,youcaninvertthelink");

printf("pleaseinputyourchoice");

scanf("%d",&choose);

while(choose!=0){

switch(choose){

case1:

printf("youwillanodetothelink");

printf("pleaseinputthelocationofthenode:");

scanf("%d",&location);

node=ptr;

i=1;

while(i

node=node->link;

i++;

}

(p,node);/*p為指向ptr的指標*/

print(ptr);

break;

case2:

printf("youwillanodefromthelink");

printf("pleaseinputthelocationofthenode:");

scanf("%d",&location);

node=ptr;

if(location==1)

trail=NULL;

trail=ptr;

i=1;

while(i

trail=trail->link;

i++;

}

node=trail->link;

_node(p,trail,node);

print(ptr);

break;

case3:

printf("youwillinvertthelink");

ptr=invert(ptr);

print(ptr);

break;

default:

break;

return-1;

}

printf("pleaseinputyourchoice");

scanf("%d",&choose);

}

return0;

}

//根據使用者的輸入數值建立一個新的單向連結串列:

list_pointercreate()

{

inti,current,length;

list_pointerp1,p2,head;

printf("pleaseinputthenodenumberofthelink:");

scanf("%d",&length);

printf("thenumberofthelinkis:%d",length);

printf("pleaseinputthedataforthelinknode:");

i=0;

p1=p2=(list_pointer)malloc(sizeof(list_node));

head=p1;

for(i=0;i

scanf("%d",¤t);

p1->data=current;

p2->link=p1;

p2=p1;

p1=(list_pointer)malloc(sizeof(list_node));

}

p2->link=NULL;

returnhead;

}

……

(1)畫出主函式main的控制流程圖。(10分)

(2)設計一組測試用例,儘量使main函式的語句覆蓋率能達到100%。如果認為該函式的語句覆蓋率無法達到100%,需說明原因。(8分)