一、選擇題(1-25每題2分,共50分)
下列各題A、B、C、D四個選項中,只有一個選項是正確的。請將正確選項填塗在答題卡相應位置上,答在試卷上不得分。
1.下列關於缺陷產生原因的敘述中,不屬於技術問題的是________。
(A)文檔錯誤,內容不正確或拼寫錯誤
(B)系統結構不合理
(C)語法錯誤
(D)接口傳遞不匹配,導致模塊集成出現問題
2.Myers在1979年提出了一個重要觀點,即軟體測試的目的是為了________。
(A)證明程序正確
(B)查找程序錯誤
(C)改正程序錯誤
(D)驗證程序無錯誤
3.不需要運行程序,通過收集有關代碼的結構信息來對程序進行的測試的是________。
(A)性能測試
(B)黑盒測試
(C)白盒測試
(D)靜態分析
4.在軟體生存周期中佔據時間最長的是________。
(A)運行和維護階段
(B)軟體開發階段
(C)需求分析階段
(D)軟體設計階段
5.使用白盒測試方法時,確定測試數據應根據________和指定的覆蓋標準。
(A)程序的複雜結構
(B)程序的內部邏輯
(C)使用說明書
(D)程序的功能
6.為提供集成測試的效果,軟體的集成工作最好由________來承擔。
(A)該軟體的設計人員
(B)該軟體的編程人員
(C)該軟體開發組的負責人
(D)不屬於該軟體開發組的軟體設計人員
7.下列幾種邏輯覆蓋標準中,查錯能力最強的是
(A)語句覆蓋
(B)條件覆蓋
(C)判定覆蓋
(D)條件組合覆蓋
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)使輸入值組合的覆蓋率達到100%
(D)可以在較少的時間內運行更多的測試用例
14.下列選項中,評審方法是按照正式化程度逐漸增強排列的是________。
(A)臨時評審、輪查、結對評審、走查、正式審查
(B)臨時評審、走查、結對評審、輪查、正式評審
(C)臨時評審、走查、小組評審、結對評審、正式評審
(D)正式評審、小組評審、走查、結對評審、臨時評審
15.下列關於軟體性能測試的說法中,正確的是________。
(A)性能測試的目的不是為了發現軟體缺陷
(B)壓力測試與負載測試的目的都是為了探測軟體在滿足預定性能需求的情況下所能負擔的最大壓力
(C)性能測試通常要對測試結果進行分析才能獲得測試結論
(D)在性能下降曲線上,最大建議用戶數通常處於性能輕微下降區與性能急劇下降區的交界處
16.軟體可靠性分析方法通常不依賴於概率統計的方法,下面屬於軟體可靠性分析方法的是________。
(A)失效模式影響分析法(FMEA法)
(B)故障樹和事件樹分析法
(C)潛在線路分析法
(D)以上全部
17.下列關於面向對象集成測試的說法中,正確的是________。
(A)大突擊集成是面向對象集成測試最常用且最有效的方法
(B)自底向上集成和自頂向下集成都需要為集成測試開發大量代碼
(C)與自底向上集成和自頂向下集成相比,基幹集成是一種更充分的集成測試策略
(D)高頻集成是以自底向上集成為基礎,利用冒煙測試進行的集成測試
18.對採用迭代或增量開發過程模型開發的產品進行集成測試時最適合採用的集成策略是________。
(A)傳統的集成測試策略
(B)基於使用的集成測試策略
(C)基幹集成測試策略
(D)高頻集成測試策略
19.對於Web應用軟體系統測試技術,下列不屬於功能測試的是________。
(A)表單測試
(B)並發測試
(C)連結測試
(D)Cookie測試
20.關於易用性測試,說法錯誤的是________。
(A)用戶界面測試是軟體易用性測試最重要的一項內容
(B)對軟體功能的動態關聯進行測試可以通過檢查菜單完成
(C)使用軟體的目的就是減少重複輸入,減輕人工勞動,提高工作效率
(D)檢查和評估軟體安裝手冊的正確性和易用性是安裝性測試的重要內容
21.關於內置式合約測試(BICT),下列說法錯誤的是________。
(A)加了測試器構件和測試處理器構件,使被測構件具有自測試能力
(B)該測試方法可用於動態、分布式系統
(C)該測試方法的提出擴展了基於構件的軟體工程實踐
(D)提出的模型驅動方法效率很高
22.下列測試類型中,不是針對軟體產品的質量特性的是________。
(A)性能測試
(B)安全性測試
(C)易用性測試
(D)回歸測試
23.下面有關測試設計的敘述,說法不正確的是________。
(A)測試用例的設計是一項技術性強、智力密集型的活動
(B)在測試用例設計時,只設計覆蓋正常流程和操作的測試用例即可
(C)在開展測試用例設計前,必須將測試需求進行詳細展開
(D)在一般的測試組織內,測試用例的評審可能不是正式的評審會
24.測試項目實踐中,測試策劃活動的目標是________。
(A)確定測試範圍
(B)劃分測試任務
(C)編寫測試計劃文檔
(D)組織測試團隊
25.下列屬於QESAT/C的優點是________。
(A)及早地發現程序中隱藏地錯誤
(B)快捷有效地理解程序結構
(C)幫助分析和測試程序
(D)以上全部
二、論述題 (1-1每題20分,2-2每題12分,3-3每題18分,共50分
1.論述題1:以下是一軟體規格說明,請按要求回答問題(20分)
軟體規格說明:某工廠招工規定,報名者年齡應該在16周歲到35周歲之間(到2005年12月31日為止),即出生年月不在上述範圍內的人員將不予接受,並顯示"年齡不合格"的出錯信息。
(1)請根據規格說明,劃分等價類。(10分)
(2)使用等價類劃分方法為該軟體設計測試用例。(10分)
2.論述題2:以下是某"象棋中走馬事件"應用程式的走馬規則,請按要求回答問題(12分)
以下是中國象棋中走馬事件中的走馬原則:
1)如果落點在棋盤外,則不移動棋子。
2)如果落點與起點不構成日字型,則不移動棋子。
3)如果落點處有己方棋子,則不移動棋子。
4)如果在落點方向的鄰近交叉點有棋子(絆馬腿),則不移動棋子。
5)如果不屬於(1)~(4)條,且落點處無棋子,則移動棋子。
6)如果不屬於(1)~(4)條,且落點處為對方棋子(非老將),則移動棋子並除去對方棋子。
7)如果不屬於(1)~(4)條,且落點處為對方老將,則移動棋子,並提示戰勝對方,遊戲結束。
(1)畫出該應用程式的因果圖。(3分)
(2)對該軟體進行基於因果圖的方法設計測試用例。(9分)
3.論述題3:針對以下C語言程序,請按要求回答問題(18分)
下面是一個程序段(C語言),試設計基本路徑測試的測試用例,設計出的測試用例要保證每一個基本獨立路徑至少要執行一次。
函數說明:當 i_flag=0;返回 i_count+100
當 i_flag=1;返回 i_count*10
否則返回 i_count*20
輸入參數:int i_count int i_flag
輸出參數:int i_return
程序代碼如下:
1 int Test(int i_count,int i_flag)
2 {
3 int i_temp=0;
0)
5 {
6 if(0==i_flag)
7 {
8 i_temp=i_count+100;
9 break;
10 }
11 else
12 {
13 if(1==i_flag)
14 {
15 i_temp=i_temp+10;
16 }
17 else
18 {
19 i_temp=i_temp+20;
20 }
21 }
22 i_count--;
23 }
24 return i_temp;
25 }
(1)畫出該函數的控制流程圖。(8分)
(2)採用基本路徑測試法設計一組測試用例,保證每個基本獨立路徑都至少執行一次。(10分)
一、選擇題(1-25每題2分,共50分)
1. B 2. B 3. D 4. A5. B
6. B 7. D 8. D 9. C10. B
11. B 12. B 13. D 14. C15. C
16. D 17. B 18. D 19. B20. B
21. D 22. D 23. B 24. C25. D
二、論述題
1.問題1:
解答:
根據題意,劃分等價類。
假定已知出生年月由六位數字字符表示,前四位代表年,後兩位代表月,則可以劃分三個有效等價類和七個無效等價類。具體如下:
有效等價類:
出生年月:
(1)六位數字
對應數值:
(5)197003-198912
月份對應數值:
(8)在1-12之間
無效等價類:
出生年月:
(2)含非數字字符
(3)少於六個數字字符
(4)多於六個數字字符
對應數值:
(6)小於197003
(7)大於198912
月份對應數值:
(9)等於0
(10)大於12
問題2:
解答:
根據上述等價類劃分,設計測試用例。
有效等價類的測試用例,如下表所示:
無效等價類的測試用例,如下表所示:
2.問題1:
解答:
第一步,從中國象棋中走馬事件中的走馬原則的描述中,明確原因和結果。
原因:
1 落點在棋盤上。
2 落點與起點構成日字。
3 落點處無己方棋子。
4 落點方向的鄰近交叉點無棋子。
5 落點處無棋子。
6 落點處為對方棋子(非老將)。
7 落點處為對方老將。
結果:
21.不移動棋子。
22.移動棋子。
23.移動棋子,並除去對方棋子。
24.移動棋子,並提示戰勝對方,結束遊戲。
第二步,根據上面分析的原因和結果,結合題目中二者的關係,建立因果圖。
其因果圖如圖???所示,圖中,結點11是導出結果的進一步原因。
第三步,標記約束。
由於4種結果不能同時發生,所以在因果圖上標記O(唯一)約束。由於原因5、6、7不能同時發生,所以在因果圖上標出E(異)約束。
問題2:
解答:
根據上面的因果圖,建立對應的判定表。
在該應用程式中,原因有7個,一個完整的判定表應有27=128種情況。由於篇幅的限制,且考慮到5、6、7原因只與中間結果11有關,所以這裡將完整的判定表拆分為兩個子表,下面兩個表所示。對於結果22、23、24,中間結果是原因,因此在後一個表中,將11作為原因。
由表可知,當結點11為1時,結果21為0。由於結果21、22、23、24受到O約束的限制,不能同時為0,所以在表17-13中的的2列是不能出現的情況;同樣受到O約束的還有8、12、14和16列;由於E約束,第7、8、11到16列也是不可能出現的情況。在表中用灰框表示。
最後根據判定表設計測試用例。判定表中沒有被划去的每一列就是一個測試用例。
3.問題1:
解答:
根據程序的原始碼,容易畫出對應的控制流圖,如下圖所示:
(其中圈中的數字代表的是語句的行號)
問題2:
解答:
第一步,根據上述控制流圖計算該程序的環路複雜性。
由圖可以看出,判定節點數為3,邊數為10,節點總數為8,故
V(G)=10-8+2=4
或V(G)=3+1=4
第二步,根據環路複雜度為4,可確定4條基本獨立路徑。
Path1:4-24
Path2:4-6-8-24
Path3:4-6-13-15-22-4-24
Path4:4-6-13-19-22-4-24
第三步,設計測試用例
根據上面4條基本獨立路徑,可以設計測試用例如下:
測試用例1:
輸入數據:i_flag=0,或者是i_flag<0的某個值。
預期輸出結果:i_temp=0。
測試用例2:
輸入數據:i_count=1, i_flag=0。
預期輸出結果:i_temp=101。
測試用例3:
輸入數據:i_count=1, i_flag=1。
預期輸出結果:i_temp=10。
測試用例4:
輸入數據:i_count=1, i_flag=2。
預期輸出結果:i_temp=20。
但這些測試用例是可以簡化的,由於路徑path1是path4的真子集,所以path1是可以不要的。故針對該程序最少的測試用例數為3,即上述測試用例2,測試用例3,測試用例4。
答案分析
一、選擇題
1.分析:軟體缺陷產生的原因大的方面講主要有技術問題,團隊合作,軟體本身。該題
考察大方面中的小問題,即對三方面劃分的理解,顯然選項A中文檔的問題應該是屬於軟體本身的,而非技術問題。
2.分析:Glenford J.Myers於1979年給出測試的定義為:軟體測試是為發現錯誤而執行
的一個程序或者系統的過程。同時他給出了三個關於測試的重要觀點:
測試是為了證明程序有錯,而不是證明程序正確。
一個好的測試用例在於它能發現以前未發現的錯誤。
一個成功的測試是發現了以前未發現的錯誤的測試。
3.分析:軟體測試的分類方法比較多,針對測試時是否要運行程序分為靜態測試和動態
測試,其中靜態測試也稱靜態分析,是不必運行程序目的僅僅是收集程序代碼的結構信息而不用查錯,相反動態測試則是要執行程序,查出程序的錯誤非單純收集代碼結構信息。針對測試人員是否要清楚程序的內部邏輯,將測試分為白盒測試和黑盒測試,同時這兩種測試方法都是要對程序進行查錯,從這一角度,白盒測試和黑盒測試都應屬於動態測試。由此本題D靜態分析最恰當。
4.分析:由於很多複雜因素的影響,軟體開發組織投入到軟體產品上的費用以及大多數時間都花在了軟體完成並交付使用後對它的維護上,軟體的運行和維護階段可以說是軟體生存周期中佔據時間最長的階段。
5.分析:使用白盒測試方法時,確定測試數據應根據程序的內部邏輯和指定的覆蓋標準。
6.分析:為提供集成測試的效果,軟體的集成工作最好由不屬於該軟體開發組的軟體設計人員承擔。
7.分析:對於選項中的幾種邏輯覆蓋,查錯能力最強的應該是條件組合測試。
8.分析:自頂向下測試的優點應該是使得頂層模塊的錯誤較早發現。
9.分析:通常測試人員判定一個運行結果中存在缺陷的準則是這個運行結果與測試案例中的預期結果不一致。
10.分析:等價類劃分和邊界值分析的局限性表述正確的就是選項B,不同輸入變量之間可能存在約束關係,它們不能處理這類約束關係。
11.分析:白盒測試與黑盒測試的本質區別是對內部邏輯的理解,與測試用例數量無關。單元測試是以白盒測試為主,但有時也會用到黑盒測試技術。滿足分支測試不一定滿足條件測試。
12.分析:僅有B說法正確,是二者的區別。其他三個選項說法顛倒。
13.分析:軟體測試自動化的主要特點就是可以在較少的時間內運行更多的測試用例,這也是使用它的好處。
14.分析:同行評審方法很多,基於正式化程度不同或其規則和靈活程度不同,可將同行評審進行分類。根據正式化程度不同,從非正式到十分嚴格依次為:臨時評審、輪查、結對評審、走查、小組評審、正式審查。
15.分析:性能測試通用模型(PTGM模型)的最後一步就是測試結果分析,說明性能測試通常要對測試結果進行分析才能獲得測試結論,故C正確。軟體的性能是軟體的一種非功能特性。軟體性能測試包括以下幾方面的目標:①發現性能缺陷;②性能調優;③能力檢驗和規劃。其中性能測試的首要目標應該就是發現軟體性能缺陷,說明A說法不正確。壓力測試與負載測試雖然都是要對軟體施加業務壓力,但其根本目的完全不同,負載測試的目的是為了探測軟體在滿足預定性能需求的情況下所能負擔的最大壓力,但壓力測試的目的是利用壓力來揭示軟體中存在的潛在缺陷,故B說法不正確。在性能下降曲線上,最大建議用戶數通常處於平坦區和性能輕微下降區的交界處,所以D說法錯誤。
16.分析:目前主要的軟體可靠性分析方法有失效模式影響分析法、嚴酷度分析法、故障樹分析法、事件樹分析法、潛在線路分析法。
17.分析:大突擊集成就是將系統的所有組成成分都集成在一起進行測試,通常只有在整個軟體的可靠性有了基本的保障時,大突擊集成測試才是一種合理的選擇。自底向上集成主要缺點是需要開發大量的測試驅動代碼,自頂向下集成則需要為集成測試開發大量樁代碼,總之,二者都要為集成測試開發大量代碼。選項C說法過於絕對,因為只有當類間的主要協作關係可以明確辨識,且每個功能只需要少數類協作就可以完成時,採用協作集成方式才是一個不錯的選擇。高頻集成並不是一個具體的集成策略,它是指在軟體開發過程中頻繁地將新開發出來的代碼與已有代碼集成,一般採用冒煙的方式,但並不是以自底向上集成為基礎。
18.分析:高頻集成是指在軟體開發過程中頻繁地將新開發地代碼與已有代碼集成。最適用於採用迭代或增量開發過程模型開發的產品進行集成測試。
19.分析:Web應用軟體的系統測試技術除了功能測試外還包括性能測試、易用性測試、內容測試、安全性測試和接口測試等。由於Web應用軟體的特殊性,在按照測試大綱對Web應用軟體進行系統測試前通常要進行幾個方面的功能測試,主要包括:①連結測試,②表單測試,③Cookie測試。
20.分析:對軟體功能的關聯包括靜態關聯和動態關聯兩方面,其中對於靜態關聯的測試可以通過檢查菜單完成,而對於動態關聯的測試需要針對各項任務設計測試用例,以檢查軟體能否合理引導用戶使用下一步的功能,故選項B說法不正確。
21.分析:內置式合約測試(BICT)可用於動態、分布式系統,擴展了基於構件的軟體工程實踐,但時它提出的模型驅動的方法需要構件的原始碼,其效率目前還是未知的。
22.分析:回歸測試顯然是不屬於軟體產品的質量特性。
23.分析:在測試用例設計時,不能只設計覆蓋正常流程和操作的測試用例,而必須強制覆蓋錯誤輸入處理,邊界值處理等場景,以確保被測軟體系統投入使用時具備較強的容錯能力。
24.分析:在實際的測試項目實踐中,測試策劃活動的目標是編寫測試計劃文檔。
25.分析:QESAT/C的優點是:能幫助分析和測試程序,快捷有效地理解程序結構,及早地發現程序中隱藏地錯誤,從而提高軟體的質量。
二、論述題
1.分析:首先分析程序的規則說明和被測程序的功能,將其輸入情況劃分為有效等價類和無效等價類,然後按照等價類設計測試用例的方法設計有效的測試用例和無效的測試用例。
2.分析:首先分析走馬規則,找出所有的原因以及所有可能的結果,結合題目中找出二者的聯繫,按照因果圖的畫法規則,畫出因果圖。然後按照基於因果圖的方法設計測試用例。
3.分析:首先根據程序的原始碼,畫出控制流圖。然後通過控制流圖可以計算出該程序的複雜度,找出所有的獨立路徑,根據基本路徑測試法設計測試用例。
[責任編輯: 1 ]