1. <th id="r4edf"></th>
        <rp id="r4edf"></rp><th id="r4edf"></th>

        • 全國計算機等級考試四級筆試樣卷軟件測試工程師

          發布時間:2009-03-03                    來源:教育部考試中心

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

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

            A)最底層           B)下一層         C)最高層           D)上一層

            (9)基本路徑測試滿足

            A)語句覆蓋         B)路徑覆蓋       C)分支覆蓋         D)條件覆蓋

            (10)集成測試對系統內部的交互以及集成后系統功能檢驗了何種質量特性

            A)正確性           B)可靠性         C)可使用性         D)可維護性

            (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)極限測試需要頻繁地進行單元測試

            (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:以下是QESuite Web Version 1.0中某測試項目的部分界面,請按要求回答問題(12分)

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

            (2)下圖是該測試項目的某軟件問題報告視圖。按QESuite Web Version 1.0中的軟件問題生命周期定義,4號軟件問題報告需要何種人員進行哪些可能的操作?5號軟件問題報告需要何種人員進行哪些可能的操作?8號軟件問題報告需要何種人員進行哪些可能的操作?(9分)

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

            已知link.c源程序如下:

            /*link.c程序對單向鏈表進行操作,首先建立一個單向鏈表,然后根據用戶的選擇可以對其進行插入節點、刪除節點和鏈表反轉操作*/

            #include

            #include

            typedef struct list_node *list_pointer;         //定義鏈表指針

            typedef struct list_node{                   //定義鏈表結構

            int data;

            list_pointer    link;

            }list_node;

            //用到的操作函數:

            list_pointer create();                       //建立一個單向鏈表

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

            void delete_node(list_pointer *p_ptr, list_pointer trail, list_pointer node);

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

            void print(list_pointer ptr);              //打印鏈表節點中的值

            list_pointer invert(list_pointer lead);      //反轉鏈表

            int main()

            {

            list_pointer    ptr=NULL;

            list_pointer    node, trail;

            list_pointer    *p = &ptr;

            int choose, location, i;

            printf("you should create a link first:\n");

            //建立一個單向鏈表:

            ptr=create();                /* ptr 指向鏈表的第一個節點 */

            print(ptr);

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

            printf("input number 0, you can quit the program\n");

            printf("input number 1, you can insert a new node to link\n");

            printf("input number 2, you can delete a node from the link\n");

            printf("input number 3, you can invert the link\n");

            printf("please input your choice\n");

            scanf("%d", &choose);

            while(choose!=0){

            switch(choose){

            case 1:

            printf("you will insert a node to the link\n");

            printf("please input the location of the node:\n");

            scanf("%d", &location);

            node = ptr;

            i = 1;

            while(i

            node = node->link;

            i++;

            }

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

            print(ptr);

            break;

            case 2:

            printf("you will delete a node from the link\n");

            printf("please input the location of the node:\n");

            scanf("%d", &location);

            node = ptr;

            if(location ==1)

            trail = NULL;

            trail = ptr;

            i = 1;

            while(i

            trail = trail->link;

            i++;

            }

            node = trail->link;

            delete_node(p, trail, node);

            print(ptr);

            break;

            case 3:

            printf("you will invert the link\n");

            ptr = invert(ptr);

            print(ptr);

            break;

            default:

            break;

            return -1;

            }

            printf("please input your choice\n");

            scanf("%d", &choose);

            }

            return 0;

            }

            //根據用戶的輸入數值建立一個新的單向鏈表:

            list_pointer create()

            {

            int i, current, length;

            list_pointer    p1, p2, head;

            printf("please input the node number of the link:\n");

            scanf("%d", &length);

            printf("the number of the link is : %d\n", length);

            printf("please input the data for the link node:\n");

            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;

            return head;

            }

            ……

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

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

        丰满农村熟女大码