版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件測試課程設(shè)計
- 軟件測試課程設(shè)計
- 軟件測試課程復(fù)習(xí)題
- 軟件測試課程設(shè)計報告
- 軟件測試畢業(yè)論文
- 軟件測試-論文-樣例
- 軟件測試畢業(yè)論文
- 軟件測試畢業(yè)論文
- 軟件測試畢業(yè)論文
- 免費測試論文手機軟件測試論文
- 學(xué)生管理系統(tǒng)測試--軟件測試論文
- 軟件測試論文:軟件企業(yè)如何實施自動化測試
- 軟件測試概論課程教學(xué)大綱
- 軟件無線電課程論文
- 軟件測試課程設(shè)計--醫(yī)院管理系統(tǒng)
- 軟件系統(tǒng)詳細(xì)測試計劃--課程設(shè)計
- 打字訓(xùn)練測試軟件-java課程設(shè)計
- 軟件測試課程設(shè)計報告-計算器程序測試
- 畢業(yè)論文軟件測試環(huán)境搭建
- 畢業(yè)論文---軟件測試環(huán)境搭建
評論
0/150
提交評論