糯米文學吧

位置:首頁 > 計算機 > 計算機四級

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

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

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

選擇題(每小題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分)