軟件測試課程論文_第1頁
已閱讀1頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  NANCHANG UNIVERSITY</p><p><b>  軟件測試</b></p><p>  題 目: 軟件測試課程論文 </p><p>  學(xué) 院: 軟件學(xué)院 </p><

2、p>  專 業(yè): 軟件工程 </p><p>  班 級: 嵌入式133班 </p><p>  完成人數(shù): 1人 </p><p>  成 員:

3、 8000113040馮嘉 </p><p>  任課教師: 黃旭慧 職稱: 副教授 </p><p>  完成時間: 2016 年 06 月 11 日</p><p>  一、黑盒測試原理及測試用例設(shè)計——等價類劃分法</p><

4、;p>  1.1測試用例的定義和特征</p><p><b>  測試用例的定義:</b></p><p>  (1)測試用例是為特定的目的而設(shè)計的一組測試輸入、 執(zhí)行條件和預(yù)期的結(jié)果。</p><p>  (2)測試用例是執(zhí)行的最小實體。 </p><p><b>  測試用例的特征:</b&g

5、t;</p><p>  (1)最有可能抓住錯誤的;</p><p>  (2)不是重復(fù)的、多余的;</p><p> ?。?)一組相似測試用例中最有效的;</p><p> ?。?)既不是太簡單,也不是太復(fù)雜。</p><p>  1.2設(shè)計測試用例的基本準(zhǔn)則</p><p><b>

6、;  測試用例的代表性</b></p><p>  能夠代表并覆蓋各種合理的和不合理的、合法的和非法的、邊界的和越界的以及極限的輸入數(shù)據(jù)、操作和環(huán)境設(shè)置等。</p><p><b>  測試結(jié)果的可判定性</b></p><p>  即測試執(zhí)行結(jié)果的正確性是可判定的,每一個測試用例都應(yīng)有相應(yīng)的期望結(jié)果。</p><

7、;p><b>  測試結(jié)果的可再現(xiàn)性</b></p><p>  即對同樣的測試用例,系統(tǒng)的執(zhí)行結(jié)果應(yīng)當(dāng)是相同的。</p><p>  1.3等價類劃分原則</p><p>  等價類劃分設(shè)計方法是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少量具有代表性的數(shù)據(jù)作為測試用例。 定義:將程序的輸入域劃分

8、為若干部分,然后從每個部分中選取少數(shù)代表性數(shù)據(jù)當(dāng)作測試?yán)?lt;/p><p>  原因:由于實現(xiàn)窮舉測試的不可能性,只有從大量的可能數(shù)據(jù)中選取一部分作為測試用例。</p><p>  效果:經(jīng)過類別劃分后,每一類的代表性數(shù)據(jù)在測試中的作用都等價于這一類中的其他值。</p><p>  手段:在設(shè)計測試用例時,在需求說明的基礎(chǔ)上劃分等價類,列出等價表,從而確定測試用例。

9、</p><p>  1.4等價類劃分法設(shè)計測試用例</p><p>  輸入三個整數(shù)作為三邊的邊長構(gòu)成三角形。當(dāng)此三角形為一般三角形、等腰三角形、等邊三角形時,分別作計算。用等價類劃分方法為該程序進行測試用例設(shè)計。</p><p>  分析程序規(guī)格說明書中給出和隱藏的對輸入條件的要求,列出等價類表:</p><p>  三條邊:必須是大于0

10、的整數(shù)</p><p>  三邊構(gòu)成的關(guān)系:兩邊之和必須大于第三邊,兩邊之差必須小于第三邊,且必須是大于0的整數(shù)</p><p><b>  等價類表:</b></p><p><b>  測試用例:</b></p><p>  二、黑盒測試原理及測試用例設(shè)計——邊界值分析法</p>

11、<p>  2.1邊界值分析法概要</p><p>  邊界值分析法就是 對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。</p><p>  2.2邊界值分析法的思想</p><p>  故障往往出現(xiàn)在輸入變量的邊界值附近。例如,一個循環(huán)條件為“≤”時,卻錯寫成“<

12、”;計數(shù)器發(fā)生少計數(shù)一次。</p><p>  基于可靠性理論中稱為“單故障”的假設(shè),即有兩個或兩個以上故障同時出現(xiàn)而導(dǎo)致軟件失效的情況很少,也就是說軟件失效基本上是由單故障引起的。</p><p>  2.3測試用例:找零錢最佳組合</p><p>  假設(shè)商店貨品價格(R) 都不大于100元(且為整數(shù)),若顧客付款(P)在100元內(nèi),現(xiàn)有一個程序能在每位顧客付款

13、后給出找零錢的最佳組合(找給顧客貨幣張數(shù)最少)。 假定此商店的貨幣面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四種。</p><p>  請結(jié)合等價類劃分法和邊界值分析法為上述程序設(shè)計 出相應(yīng)的測試用例。</p><p>  一、 分 析 輸 入 的 情 形 。 &l

14、t;/p><p>  1.R無效: R > 100  R<=0 2.R有效: 0 < R < = 100   此種情況下再考慮P: </p><p>  2_1. P無效:P >

15、0;100 (錢給多) 2_2. P無效:P < R   (錢給少) </p><p>  2_3. P有效:R<= P <= 100   //無效輸出: 多找錢 少找錢  </p>

16、<p>  二、 分 析 輸 出 情 形 。  </p><p>  考慮輸出——找零個數(shù) </p><p>  這里是有效數(shù)據(jù),關(guān)于" 找 給 顧 客 之 最 少 貨幣 個(張)&

17、#160;數(shù)"的有效取值 50:0/1 </p><p>  10:0/1/2/3/4 </p><p><b>  5 :0/1 </b></p><p>  1 :0/1/2/3/4   </p><p>  三、 分

18、 析 規(guī) 格 中 每 一 決 策 點 之 情 形 </p><p>  考慮輸出——找零數(shù)額(RR表示找零數(shù)額)  </p><p>  無效輸入(不找零):  </p><p>  R 

19、> 100   </p><p><b>  R <= 0 </b></p><p>  0 < R < = 100   P > 100 0 <

20、 R < = 100   P < R  </p><p>  輸出為相應(yīng)錯誤提示信息  </p><p>  有效輸入(找零):  </p><p>  0 < R &l

21、t; = 100  R<= P <= 100 </p><p>  此時考慮的輸出:(RR=P-R 假設(shè)計算正確 不考慮此種情況無效輸出)  </p><p>  0<=RR<4 5<=RR<10 10<=RR

22、<50 </p><p>  50<=RR<100 </p><p>  RR:0、1、4、5、9、10、49、50、99 </p><p>  五、 為 滿 足 以 上 之 各 種 情 形 , 測&

23、#160;試 用 例 設(shè) 計 如 下 : 1. 貨品價格 = 101 2. 貨品價格 = 0 3.貨品價格 = -1 </p><p>  4. 貨品價格 = 100, 付款金額

24、0;= 101 5. 貨品價格 = 100, 付款金額 = 99    </p><p>  6. 貨品價格 = 100, 付款金額 = 100   不找零 </p><p&g

25、t;  7. 貨品價格 = 99, 付款金額 = 100    N1=1 </p><p>  8. 貨品價格 = 96, 付款金額 = 100    N1=4 9. 貨品價格 

26、;= 95, 付款金額 = 100    N5=1 10. 貨品價格 = 91, 付款金額 = 100   N5=1, N1=4 11. 貨品價格 = 90, 付款金額 = 100

27、   N10=1 </p><p>  12. 貨品價格 = 51, 付款金額 = 100   N10=4, N5=1,N1=4 13. 貨品價格 = 50, 付款金額 = 100  &

28、#160;N50=1 </p><p>  14. 貨品價格 = 1, 付款金額 = 100    N50=1,N10=4,N5=1,N1=4 </p><p>  三、黑盒測試原理及測試用例設(shè)計——決策表法</p><p><b>  

29、3.1決策表法思想</b></p><p>  決策表的概念:決策表是分析和表達(dá)多邏輯條件下執(zhí)行不同操作情況的工具。</p><p>  在一些數(shù)據(jù)處理問題當(dāng)中,某些操作的實施依賴于多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執(zhí)行不同的操作。決策表很適合于處理這類問題。</p><p><b>  3.2決策表的生成</b>

30、;</p><p>  決策表通常由以下4部分組成:</p><p>  條件樁—列出問題的所有條件</p><p>  條件項—針對條件樁給出的條件列出所有可能的取值</p><p>  動作樁—列出問題規(guī)定的可能采取的操作</p><p>  動作項—指出在條件項的各組取值情況下應(yīng)采取的動作 </p>

31、<p> ?。?) 確定規(guī)則的個數(shù)。</p><p>  有n個條件的決策表有2n個規(guī)則(每個條件取真、假值)。</p><p> ?。?) 列出所有的條件樁和動作樁。</p><p> ?。?) 填入條件項。</p><p> ?。?) 填入動作項,得到初始決策表。</p><p> ?。?) 簡化決策表

32、,合并相似規(guī)則。</p><p>  若表中有兩條以上規(guī)則具有相同的動作,并且在條件項之間存在極為相似的關(guān)系,便可以合并。</p><p>  合并后的條件項用符號“-”表示,說明執(zhí)行的動作與該條件的取值無關(guān),稱為無關(guān)條件。</p><p><b>  3.3決策表的簡化</b></p><p>  簡化是以合并相似規(guī)則

33、為目標(biāo);</p><p>  若表中有兩條以上規(guī)則具有相同的動作,并且在條件項之間存在極為相似的關(guān)系,便可以合并。</p><p>  3.4決策表法設(shè)計測試用例</p><p>  某廠對一部分職工重新分配工作,分配原則是:</p><p> ?。?)年齡不滿20歲,文化程度是小學(xué)者脫產(chǎn)學(xué)習(xí),文化程度是中學(xué)者當(dāng)電工;</p>

34、<p> ?。?)年齡滿20歲但不足50歲,文化程度是小學(xué)或中學(xué)者,男性當(dāng)鉗工,女性當(dāng)車工;文化程度是大學(xué)者技術(shù)員;</p><p>  (3)年齡滿50及50以上,文化程度是小學(xué)或中學(xué)者當(dāng)材料員,文化程度是大學(xué)者當(dāng)技術(shù)員。</p><p>  試分析規(guī)格說明書,建立決策表,并簡化</p><p>  決策表的用例測試設(shè)計條件:</p>&l

35、t;p>  A1:{A:A<20}</p><p>  A2:{A:20≤A≤50}</p><p>  A3:{A:50≤A}</p><p>  C1:{C:C=小學(xué)}</p><p>  C2:{C:C=小學(xué)||C=中學(xué)}</p><p>  C3:{C:C=大學(xué)}</p><p&

36、gt;  S1:{S:S=男}</p><p>  S2:{S:S=女}</p><p>  根據(jù)條件分析,則有18種規(guī)則:</p><p><b>  化簡后的規(guī)則:</b></p><p>  四、黑盒測試原理及測試用例設(shè)計——因果圖法設(shè)計</p><p><b>  4.1因果圖的

37、定義</b></p><p>  是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。</p><p>  4.2因果圖法設(shè)計測試用例步驟</p><p>  分析程序規(guī)格說明書描述的語義內(nèi)容,找出“原因”和“結(jié)果”,將其表示成連接各個原因與各個結(jié)果的“因果圖”。</p><p>

38、;  由于語法或環(huán)境限制,有些原因與原因之間或與結(jié)果之間的組合情況不能出現(xiàn),用記號標(biāo)明約束或限制條件;</p><p>  將因果圖轉(zhuǎn)換成決策表;</p><p>  根據(jù)決策表中每一列設(shè)計測試用例</p><p>  某軟件規(guī)格說明書包含“訂貨單處理程序”的處理邏輯描述為:如果訂貨金額不足500 元且未過期,則向顧客發(fā)出批準(zhǔn)單和提貨單,已過期的什么通知也不發(fā);如果

39、訂貨金額超過500 但不足1000 ,則發(fā)出批準(zhǔn)單和提貨單,對已經(jīng)過期的發(fā)過期通知單;如果訂貨金額超過1000 ,不論是否過期,都要發(fā)出批準(zhǔn)單和提貨單。</p><p>  要求:畫出因果圖,并生成判定表和設(shè)計測試用例 : </p><p><b>  實驗分析如下: </b></p><p>  首先列出原因為:1、訂貨金

40、額不足500 元;2、訂貨金額超過500 但不足1000; </p><p>  3、訂貨金額超過1000;4、過期。 </p><p>  結(jié)果則是:21、發(fā)出批準(zhǔn)單和提貨單;22、無通知;23、發(fā)過期通知單。 </p><p>  實驗結(jié)果:原因1、2、3不能同時發(fā)生,所以對其施加異約束E,具有E約束的因果圖如下

41、:</p><p>  根據(jù)因果圖建立的判定表如下:</p><p>  設(shè)計測試用例如下,用例ID與判定表中的對應(yīng):</p><p>  五、白盒測試方法——邏輯覆蓋法</p><p><b>  5.1語句覆蓋</b></p><p>  語句覆蓋就是設(shè)計若干個測試用例,運行被測程序,使得每一

42、可執(zhí)行語句至少執(zhí)行一次。</p><p>  測試用例的設(shè)計格式如下:</p><p>  輸入的(A, B, X),輸出的(A, B, X)</p><p><b>  語句覆蓋率</b></p><p>  已執(zhí)行的可執(zhí)行語句占程序中可執(zhí)行語句總數(shù)的百分比</p><p>  復(fù)雜的程序不可能

43、達(dá)到語句的完全覆蓋</p><p><b>  語句覆蓋率越高越好</b></p><p><b>  檢查所有語句</b></p><p>  結(jié)構(gòu)簡單的代碼的測試效果較好</p><p><b>  容易實現(xiàn)自動測試</b></p><p><

44、b>  代碼覆蓋率高 </b></p><p>  如果是程序塊覆蓋,則不涉及程序塊中的源代碼 </p><p>  優(yōu)點 :可以很直觀地從源代碼得到測試用例,無須細(xì)分每條判定表達(dá)式。</p><p>  缺點 :由于這種測試方法僅僅針對程序邏輯中顯式存在的語句,但對于隱藏的條件是無法測試的。如在多分支的邏輯運算中無法全面的考慮。語句覆蓋是最弱的邏

45、輯覆蓋。</p><p><b>  5.2判定覆蓋</b></p><p>  判定覆蓋就是設(shè)計若干個測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次。</p><p>  判定覆蓋又稱為分支覆蓋。</p><p>  說明:以上僅考慮了兩出口的判斷,我們還應(yīng)把判定覆蓋準(zhǔn)則擴充到多出口判斷(如

46、Case語句)的情況。因此,判定覆蓋更為廣泛的含義應(yīng)該是使得每一個判定獲得每一種可能的結(jié)果至少一次。</p><p>  優(yōu)點:判定覆蓋具有比語句覆蓋更強的測試能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性,無須細(xì)分每個判定就可以得到測試用例。</p><p>  缺點:往往大部分的判定語句是由多個邏輯條件組合而成,若僅僅判斷其整個最終結(jié)果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑

47、。判定覆蓋仍是弱的邏輯覆蓋。</p><p><b>  5.3條件覆蓋</b></p><p>  在設(shè)計程序中,一個判定語句是由多個條件組合而成的復(fù)合判定,判定(a)&&(b||c)包含了三個條件:a,b和c。為了更徹底的實現(xiàn)邏輯覆蓋,可以采用條件覆蓋。</p><p>  條件覆蓋就是設(shè)計若干個測試用例,運行被測程序,使得

48、程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。</p><p>  在圖例中,我們事先可對所有條件的取值加以標(biāo)記。</p><p>  優(yōu)點:增加了對條件判定情況的測試,增加了測試路徑。</p><p>  缺點:條件覆蓋不一定包含判定覆蓋。條件覆蓋只能保證每個條件至少有一次為真,而不考慮所有的判定結(jié)果。</p><p>  5.4判定--

49、條件覆蓋</p><p>  判定/條件覆蓋實際上是將判定覆蓋和條件覆蓋結(jié)合起來的一種方法,</p><p>  就是設(shè)計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判定的可能結(jié)果也至少出現(xiàn)一次。</p><p>  設(shè)計測試用例覆蓋4個條件的8種取值以及4個判定分支。</p><p>  分析:從表面上看,判定/條

50、件覆蓋測試了各個判定中的所有條件的取值,但實際上,編譯器在檢查含有多個條件的邏輯表達(dá)式時,某些情況下的某些條件將會被其它條件所掩蓋。因此,判定/條件覆蓋也不一定能夠完全檢查出邏輯表達(dá)式中的錯誤。</p><p>  優(yōu)點 :能同時滿足判定、條件兩種覆蓋標(biāo)準(zhǔn)。</p><p>  缺點 :判定/條件覆蓋準(zhǔn)則的缺點是未考慮條件的組合情況。</p><p><b&g

51、t;  5.5條件組合覆蓋</b></p><p>  條件組合覆蓋就是設(shè)計足夠的測試用例,運行被測程序,使得每個判斷的所有可能的條件取值組合至少執(zhí)行一次。</p><p>  優(yōu)點 :條件組合覆蓋準(zhǔn)則滿足判定覆蓋、條件覆蓋和判定/條件覆蓋準(zhǔn)則。</p><p>  缺點 :線性地增加了測試用例的數(shù)量。</p><p><b

52、>  5.6路徑覆蓋</b></p><p>  路徑覆蓋就是設(shè)計足夠的測試用例,覆蓋程序中所有可能的路徑。</p><p><b>  分析:</b></p><p>  雖然前面一組測試用例滿足了路徑覆蓋,但并沒有覆蓋程序中所有的條件組合,即滿足路徑覆蓋的測試用例并不一定滿足組合覆蓋。</p><p&g

53、t;<b>  說明:</b></p><p>  對于比較簡單的小程序,實現(xiàn)路徑覆蓋是可能做到的。但如果程序中出現(xiàn)較多判斷和較多循環(huán),可能的路徑數(shù)目將會急劇增長,要在測試中覆蓋所有的路徑是無法實現(xiàn)的。為了解決這個難題,只有把覆蓋路徑數(shù)量壓縮到一定的限度內(nèi),如程序中的循環(huán)體只執(zhí)行一次。</p><p>  在實際測試中,即使對于路徑數(shù)很有限的程序已經(jīng)做到路徑覆蓋,仍然

54、不能保證被測試程序的正確性,還需要采用其他測試方法進行補充。</p><p><b>  5.7設(shè)計測試用例</b></p><p>  設(shè)計測試用例,實現(xiàn)語句覆蓋,判定覆蓋,條件覆蓋,判定/條件覆蓋,條件組合覆蓋,路徑覆蓋.</p><p>  void DoWork(int x,int y,int z)</p><p&

55、gt;<b>  {</b></p><p>  int k=0,j=0;</p><p>  if((x>3)&&(z<10))</p><p><b>  {</b></p><p>  k=x*y-1; //語句塊1</p><p>

56、;  j=sqrt(k);</p><p><b>  }</b></p><p>  if((x= =4)||(y>5))</p><p><b>  {</b></p><p>  j=x*y+10; //語句塊2</p><p><b>  }<

57、;/b></p><p>  j=j%3; //語句塊3</p><p><b>  }</b></p><p>  試做出三角形問題的語句覆蓋,條件覆蓋,判定覆蓋,判定-條件覆蓋、組合條件覆蓋的測試用例.并注明滿足覆蓋的條件 </p><p>  1)判定/條件覆蓋 </p

58、><p>  對于第一個判定a>0&&b>0&&c>0 : </p><p>  條件a>0    取真值記為T1,取假值記為-T1 條件b>0    取真值記為T2,取假值記為-T2 </p>&l

59、t;p>  條件c>0    取真值記為T3,取假值記為-T3 </p><p>  對于第二個判定( a+b>c)&&(a+c>b)&&(b+c>a ): </p><p>  條件a+b>c  取真值記為T4,取假值記為

60、-T4 條件a+c>b  取真值記為T5,取假值記為-T5 條件b+c>a  取真值記為T6,取假值記為-T6 </p><p><b>  2.</b></p><p>  對下面的流程圖用邏輯覆蓋法設(shè)計測試用例(至少三種) </p><p>  1)

61、..語句覆蓋:語句覆蓋可以保證程序中的每個語句都得到執(zhí)行。 </p><p>  測試用例輸入為:{ x1=3、x2=0}  輸出x3=0 ,程序執(zhí)行的路徑是:12345678 2.判定覆蓋: </p><p>  測試用例輸入為:{ x1=2、x2=1}  輸出x3=0 ,程序執(zhí)

62、行的路徑是:123578; 測試用例輸入為:{ x1=3、x2=0}  輸出x3=0 ,程序執(zhí)行的路徑是:12345678. 3).條件覆蓋 </p><p>  對于第一個判定( (x1=3)or(x2>1) ): </p><p>  條件x1=3   

63、;取真值記為T1,取假值記為-T1 </p><p>  條件x2>1   取真值記為T2,取假值記為-T2 </p><p>  對于第二個判定( (x1>2)and(x2=0) ): </p><p>  條件x1>2   取真值記為T

64、3,取假值記為-T3  </p><p>  條件x2=0   取真值記為T4,取假值記為-T4</p><p>  基本路徑測試法(畫出程序的流程控制圖  計算環(huán)路復(fù)雜度  畫出圖形矩陣) </p><p><b>  主要代碼如下: </

65、b></p><p>  1. If (inta >= intb + intc) _ </p><p>  2.         Or (intb > =inta 

66、+ intc) _ </p><p>  3.               Or (intc >= intb + inta) Then </p>

67、<p>  4.     strMsg = "三角形兩邊之和必須大于第三邊" + vbCrLf + "非三角形" 5. Else </p><p>  6.     If

68、60;(inta = intb) _ </p><p>  7.              And (intb = intc) Then </p><p>  8

69、.         strMsg = "三角形的三條邊都相等" + vbCrLf + "等邊三角形" 9. </p><p><b>  Else </b></p>

70、;<p>  10.         If (inta = intb) _ 11.                Or

71、0;(inta = intc) _ </p><p>  12.                      Or (intc =

72、0;intb) Then </p><p>  13.             strMsg = "三角形的任意兩邊相等" + vbCrLf + "等腰三角形"

73、60;14.         Else </p><p>  15.             strMsg = "三角形的各邊均非等" 

74、+ vbCrLf + "普通三角形" 16.         End If 17.     End If 18. </p><p><b>  End

75、60;If </b></p><p>  根據(jù)上面的代碼畫出程序的控制流圖。</p><p>  2.計算環(huán)路復(fù)雜度。 </p><p><b>  V(G)=9 </b></p><p>  3.求出基本路徑組合。 </p><p>  P1:

76、  1-4-18 P2:  1-2-4-18 P3:  1-2-3-4-18 </p><p>  P4:  1-2-3-6-7-8-17-18 </p><p>  P5:  1-2-3-6-10-13-16-17-18 P6: 

77、 1-2-3-6-10-11-13-16-17-18 P7:  1-2-3-6-10-11-12-13-16-17-18 P8:  1-2-3-6-10-11-12-15-16-17-18 要點:從較短路徑順序增加 </p><p>  每個分支盡可能走一次 </p><p>  4.設(shè)計測

78、試用例,按照表1的形式,設(shè)計用例。 </p><p><b>  六、基本路徑法</b></p><p>  6.1基本路徑法的思想</p><p>  路徑測試就是設(shè)計足夠的測試用例覆蓋程序中所有可能的路徑.但在實際的問題中,一個不太復(fù)雜的程序,其路徑都是一個龐大的數(shù)字,為解決這一難題,只得把覆蓋的路徑壓縮到一定的范圍內(nèi).基本路徑測

79、試法就是這樣的一種測試方法,它是在程序控制流圖的基礎(chǔ)上,通過分析控制結(jié)構(gòu)的環(huán)路復(fù)雜性,導(dǎo)出可執(zhí)行的基本路徑的集合,從而設(shè)計測試用例.設(shè)計出的測試用例要保證在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次。</p><p><b>  6.2控制流圖</b></p><p>  程序的控制流圖:描述程序控制流的一種圖示方法。</p><p>  6.3環(huán)

80、形復(fù)雜度(環(huán)路復(fù)雜性)</p><p>  程序圈復(fù)雜度:McCabe復(fù)雜性度量。從程序的環(huán)路復(fù)雜性可導(dǎo)出程序基本路徑集合中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界。</p><p><b>  6.4獨立路徑</b></p><p>  獨立路徑是指包括一組以前沒有處理的語句或條件的一條路徑。<

81、/p><p>  6.5基本路徑測試步驟</p><p><b>  基本路徑測試步驟</b></p><p>  根據(jù)給出的程序流程圖,完成以下要求:</p><p> ?。?)畫出相應(yīng)的控制流圖。</p><p>  (2)計算環(huán)形復(fù)雜度。</p><p>  (3)給出相

82、應(yīng)的圖矩陣。(4)找出程序的獨立路徑集合。</p><p><b>  解答:</b></p><p>  (1)控制流圖如下所示:</p><p>  (2)環(huán)形復(fù)雜度為2+1=3 </p><p>  (3)圖矩陣:圖中(A<5)AND(B=5),X=X/A,(A=2)OR(X>2),X=X+1

83、四個節(jié)點分別標(biāo)識為1,2,3,4,則圖矩陣為   0 a b 0                          0&

84、#160;0 c 0                          0 0 0 e   

85、0;                      0 0 0 0  (4)獨立路徑:總共4條獨立路徑 </p><p>  第一條:(A&

86、lt;5)AND(B=5)       (A=2)OR(X>2) </p><p>  第二條:(A<5)AND(B=5)        X=X/A       (A=2)O

87、R(X>2) 第三條:(A<5)AND(B=5)       (A=2)OR(X>2)       X=X+1 </p><p>  第四條:(A<5)AND(B=5)     &#

88、160; X=X/A       (A=2)OR(X>2)       X=X+1</p><p>  七、LoadRunner基本使用</p><p>  制定測試計劃(包括測試實例的設(shè)計、場景的設(shè)計等)。</p>&l

89、t;p>  錄制測試腳本(對用戶的操作過程進行錄制、回放和修改)。</p><p>  創(chuàng)建測試場景(模擬用戶的操作)。</p><p>  運行測試(運行整個場景)。</p><p>  監(jiān)視場景(對服務(wù)器的各項性能指標(biāo)進行實時監(jiān)測)。</p><p>  分析測試結(jié)果(幫助測試人員對測試結(jié)果進行分析)。</p><

90、;p>  使用LoadRunner測試www.163.com網(wǎng)站郵箱登錄的操作過程。</p><p>  選擇程序組里面的LoadRunner/virtual user generator。</p><p>  選擇【web(http/html)】協(xié)議。不同的測試對象選擇不同的協(xié)議,針對web網(wǎng)站,選擇web協(xié)議。</p><p>  切換到腳本視圖,選擇【v

91、iew】/【script view】。其中vuser_init和vuser_end一般用于存放應(yīng)用程序初始化和關(guān)閉時的腳本,這兩個腳本只執(zhí)行一遍。Action中存放的是實際的主體腳本,可以多次運行,測試人員也可以創(chuàng)建多個Action腳本。</p><p>  單擊工具欄上的【start recording】按鈕,開始錄制腳本?!綰RL】中填寫要測試的網(wǎng)址(mail.163.com)。</p><

92、;p>  選擇【option】按鈕,配置browser,默認(rèn)是IE,如系統(tǒng)默認(rèn)的瀏覽器不是ie,需要配置【specify path to application】。</p><p>  點擊【ok】按鈕,開始錄制。這是會自動打開mail.163.com網(wǎng)頁。需要耐心等待,lr自動會打開該網(wǎng)頁,不能人工打開。</p><p>  輸入用戶名和密碼,點擊登錄按鈕,直到登錄后的界面完全顯示

93、后再點擊錄制工具欄上的停止按鈕。</p><p>  錄制完成后,需要測試一遍該腳本。點擊工具欄上的運行腳本按鈕,運行完畢后會自動生成一個報告,點擊頁面上的recording summary鏈接,可以進入報告頁面。</p><p>  點擊【TOOLS】菜單下的【create controller scenario】選項,選擇【manual scenario】(人工場景),設(shè)置number

94、 of vusers(虛擬用戶數(shù))為10。</p><p>  點擊【edit schedule】,設(shè)置【ramp up】(開始)選項【load setting】,選擇【duration】,設(shè)置【ramp down】。</p><p>  單擊【start scenario】開始測試。</p><p>  測試完成后,單擊【result】菜單,選擇【analyze

95、results】菜單,生成結(jié)果分析報告。</p><p>  分析測試結(jié)果(要有文字說明和截圖)。</p><p>  使用QTP測試windows版的飛機訂票系統(tǒng)(找出該程序的BUG,愈多愈好。BUG的編寫格式如下(如果有多個bug參照該格式分別進行說明):</p><p>  首先需要熟悉QTP自帶的"C:\Program Files\Mercury

96、Interactive\QuickTest Professional\samples\flight\app\flight4a.exe"程序,具體可以使用該程序的help文件。登錄后的界面如下所示:</p><p>  單擊【開始】-【程序】--【QuickTest professional】-【QuickTest professional】,啟動QTP。具體測試過程參見C:\Program Files

97、\Mercury Interactive\QuickTest Professional\help \QTP4BPT.pdf文件。</p><p>  單擊【automation】菜單下的【record and run settings】。選擇【windows application】標(biāo)簽,設(shè)置【record and run only on】下的【application specified below】在【appl

98、ication】文本框中填入"C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe"。這次我們使用QTP自動的航班訂票系統(tǒng)程序來測試。</p><p>  單擊【tools】菜單下的【option】,單擊標(biāo)簽【Run】,將【view results when run

99、 session ends】前面的勾去掉。</p><p>  單擊工具欄上的【record】按鈕,QTP自動啟動flight程序。</p><p>  在【agent name】輸入mercury,【password】輸入mercury,登錄。</p><p>  進入后隨便添加一個航班記錄即可。單擊【stop】按鈕停止記錄。</p><p&g

100、t;  單擊工具欄上的【run】按鈕,進行回放。</p><p>  單擊【automation】菜單下的【result】菜單查看測試結(jié)果。具體如下所示:</p><p>  分析測試結(jié)果(要有文字說明和截圖)。</p><p>  使用CppTest測試一段c代碼</p><p>  注意:安裝c++test之前需要先安裝vc++6.0。將

101、以下代碼輸入到VC++6.0環(huán)境下進行編譯,確保編譯通過。需要編寫測試用例:可以使用系統(tǒng)自動生成的TC,如果系統(tǒng)的測試用例不完善,需要自己設(shè)計TC。TC格式如下:</p><p>  #include <string.h></p><p>  #include <stdio.h></p><p>  int user_input_handle

102、r(char *user_input, char * output)</p><p><b>  {</b></p><p>  int result = 0;</p><p>  if (strcmp("load", user_input) == 0) {</p><p>  strcpy(outp

103、ut,user_input);</p><p>  } else if (strcmp("save", user_input) == 0) {</p><p>  strcpy(output, user_input);</p><p>  } else if (strcmp("quit", user_input) == 0)

104、{</p><p>  strcpy(output, user_input);</p><p><b>  } else {</b></p><p>  result = -1;</p><p><b>  }</b></p><p>  return result;<

105、/p><p><b>  }</b></p><p>  void main(void)</p><p><b>  {</b></p><p>  char res[] = "save";</p><p>  char des[5];</p>

106、<p>  printf("%d\n",user_input_handler("load",des));</p><p><b>  }</b></p><p>  安裝c++test。</p><p>  啟動c++test,單擊【file】菜單下的【new project】子菜單,在出現(xiàn)的對

107、話框中選擇【import visual c++ 6.0 project】,輸入測試工程名和對應(yīng)的c++工程。</p><p>  單擊【test】下的【read symbols】。</p><p>  單擊【test】下的【test using】--【active configuration】,執(zhí)行單元測試。</p><p>  單擊標(biāo)簽【unit testing(

108、native)】,查看測試用例的通過情況。</p><p>  如果測試用例不全,需要添加tc,右鍵單擊任意一個tc,選擇【add】,定制arguments。</p><p>  單擊【test】下的【test using】--【configurations】---【built in】--【coding standards】--【crules】,執(zhí)行代碼規(guī)范檢查。</p>&

109、lt;p>  針對以上的c代碼,進行單元測試,如果c++test生成的TC不完善,請你補充完善。如果代碼不規(guī)范,請加以修改。</p><p><b>  八、總結(jié)與體會</b></p><p>  要想成為好的測試人員,首先得了解自己要測試的軟件的相關(guān)知識。要了解軟件產(chǎn)品的架構(gòu)是什么樣的。要了解軟件的市場需求,在接觸軟件之初要可以多看看用戶的反饋信息,這些才是用

110、戶最關(guān)心的,也是在測試中需要注意的問題,滿足客戶是最大的需要。但是了解軟件需求之后要學(xué)會要多讀些軟件系統(tǒng)的技術(shù)文檔,軟件設(shè)計文檔,這些文檔可以幫助了解產(chǎn)品如何工作。</p><p>  要想在短暫的時間內(nèi),盡可能的學(xué)會一些東西,這需要跟老師、跟同學(xué)有很好的溝通,加深彼此的了解,同時我覺得這也是我將來走上社會的一把不可缺的鑰匙,通過溝通了解,才能更好有針對性地學(xué)習(xí)了解各方面的知識,才能真正地學(xué)到了計算機教科書上所以

111、或者真正用到了課本知識,鞏固了舊知識,掌握了新知識,甚至在實踐中推翻了本書上舊有的不合實際的知識,這才是真正體現(xiàn)了知識的真正價值,學(xué)以致用。</p><p>  經(jīng)過這次學(xué)習(xí),遇到許多困難,也懂得了許多,在這段時間里,學(xué)習(xí)以前沒有學(xué)過的知識,使我覺得特別有意義和價值。此次實訓(xùn)面對的數(shù)據(jù)測試及計算比較多頁比較復(fù)雜,這也考驗了學(xué)生的態(tài)度及耐心。</p><p>  在課程中,我了解開發(fā)項目是一

112、個有機的整體,而軟件測試為最終的軟件是否成功把住了最后一道關(guān),測試的方法主要有白盒測試和黑盒測試兩種。在測試過程中需要建立詳細(xì)的測試計劃并嚴(yán)格按照測試計劃進行測試,以減少測試的隨意性。</p><p>  1、最基本的測試的分類:從是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動態(tài)測試;從測試是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實現(xiàn)算法的角度來看,可分為白盒測試和黑盒測試。 </p><p&g

113、t;  2、然后就是,白盒測試中的邏輯驅(qū)動測試的覆蓋率測試。</p><p>  3、還有就是對于劃分等價類和邊界值法這一塊,讓我從模糊到明朗。 </p><p><b>  九、參考文獻</b></p><p>  [1] 鄭人杰,殷人昆,陶永雷《實用軟件工程[M]》.北京:清華大學(xué)出版社,1999 第208~209頁&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論