山東大學軟件測試實驗報告_第1頁
山東大學軟件測試實驗報告_第2頁
山東大學軟件測試實驗報告_第3頁
山東大學軟件測試實驗報告_第4頁
山東大學軟件測試實驗報告_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

..實驗一。黑盒測試等價類劃分問題某城市由三局部組成。它們的名稱和容分別是:〔1〕地區(qū)碼:空白或三位數(shù)字;〔2〕前綴:非'0'或'1'的三位數(shù)字;〔3〕后綴:4位數(shù)字。假定被測程序能承受一切符合上述規(guī)定的,拒絕所有不符合規(guī)定的。根據該程序的規(guī)格說明,作等價類的劃分,并設計測試方案。根據題目,分別將地區(qū)碼、前綴、后綴進展分類,分析結果如下:輸入有效等價類編號無效等價類編號地區(qū)碼空白1包含其他字符3三位數(shù)字2少于三位4多于三位5前綴非0或非1的三位數(shù)6包含其他字符8包含0的三位數(shù)9包含1的三位數(shù)10少于三位數(shù)11多于三位數(shù)12后綴四位數(shù)字7包含其他字符13少于四位數(shù)14多于四位數(shù)15根據上圖的分析,可的測試用例測試數(shù)據預期結果覆蓋類地區(qū)碼前綴后綴空白5554344承受〔有效〕1、6、72325454343承受〔有效〕2、6、7A233224343拒絕〔無效〕3213224343拒絕〔無效〕423233224343拒絕〔無效〕523232A4343拒絕〔無效〕82322084343拒絕〔無效〕92321114343拒絕〔無效〕10232324343拒絕〔無效〕11232322224343拒絕〔無效〕122323224AS2拒絕〔無效絕〔無效〕14232322434311拒絕〔無效〕15三角形問題根據下面給出的規(guī)格說明,利用等價類劃分的方法,給出足夠的測試用例。一個程序讀入三個整數(shù)。把此三個數(shù)值看成是一個三角形的三個邊。這個程序要打印出信息,說明不是三角形、三角形是三邊不等的、是等腰的、還是等邊的。分析題目中給出和隱含的對輸入條件的要求:〔1〕整數(shù)〔2〕三個數(shù)〔3〕非零數(shù)〔4〕正數(shù)

〔5〕兩邊之和大于第三邊〔6〕等腰〔7〕等邊如果a、b、c滿足條件〔1〕~〔4〕,那么輸出以下四種情況之一:

1)如果不滿足條件〔5〕,那么程序輸出為"非三角形"。

2)如果三條邊相等即滿足條件〔7〕,那么程序輸出為"等邊三角形"。

3)如果只有兩條邊相等、即滿足條件〔6〕,那么程序輸出為"等腰三角形"。

4)如果三條邊都不相等,那么程序輸出為"一般三角形"。列出等價類表并編號覆蓋有效等價類的測試用例:abc覆蓋等價類345〔1〕--〔7〕445〔1〕--〔7〕,〔8〕455〔1〕--〔7〕,〔9〕545〔1〕--〔7〕,〔10〕444〔1〕--〔7〕,〔11〕覆蓋無效等價類的測試用例:日期問題用決策表測試法測試以下程序:該程序有三個輸入變量month、day、year〔month、day和year均為整數(shù)值,并且滿足:1≤month≤12和1≤day≤31),分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上隔一天的日期。例如,輸入為2004年11月29日,那么該程序的輸出為2004年12月1日。(1)分析各種輸入情況,列出為輸入變量month、day、year劃分的有效等價類。(2)分析程序的規(guī)格說明,并結合以上等價類劃分的情況,給出問題規(guī)定的可能采取的操作〔即列出所有的動作樁〕。(3)根據(1)和(2),畫出簡化后的決策表。1)劃分等價類并編號,下表等價類劃分的結果輸入等價類有效等價類無效等價類日期的類型及長度①6位數(shù)字字符②有非數(shù)字字符③少于6位數(shù)字字符④多于6位數(shù)字字符年份圍⑤在1990~2049之間⑥小于1990⑦大于2049月份圍⑧在01~12之間⑨等于00⑩大于122)設計測試用例,以便覆蓋所有的有效等價類在表中列出了3個有效等價類,編號分別為①、⑤、⑧,設計的測試用例如下:測試數(shù)據期望結果覆蓋的有效等價類

200211輸入有效

①、⑤、⑧

3)為每一個無效等價類設計一個測試用例,設計結果如下:

測試數(shù)據期望結果覆蓋的無效等價類

95June無效輸入

20036無效輸入

2001006無效輸入

198912無效輸入

200401無效輸入

200100無效輸入

200113無效輸入

⑩3.NextDate函數(shù)包含三個變量:month、day和year,函數(shù)的輸出為輸入日期后一天的日期。例如,輸入為2006年3月7日,那么函數(shù)的輸出為2006年3月8日。要求輸入變量month、day和year均為整數(shù)值,并且滿足以下條件:

①1≤month≤12

②1≤day≤31

③1920≤year≤2050

1)有效等價類為:

M1={月份:1≤月份≤12}

D1={日期:1≤日期≤31}

Y1={年:1812≤年≤2012}

2)假設條件

~

③中任何一個條件失效,那么NextDate函數(shù)都會產生一個輸出,指明相應的變量超出取值圍,比方"month的值不在1-12圍當中"。顯然還存在著大量的year、month、day的無效組合,NextDate函數(shù)將這些組合作統(tǒng)一的輸出:"無效輸入日期"。其無效等價類為:

M2={月份:月份<1}

M3={月份:月份>12}

D2={日期:日期<1}

D3={日期:日期>31}

Y2={年:年<1812}

Y3={年:年>2012}

弱一般等價類測試用例

月份日期年預期輸出

61519121912年6月16日

強一般等價類測試用例同弱一般等價類測試用例

注:弱--有單缺陷假設;強健--考慮了無效值(一)弱強健等價類測試

用例ID月份日期年預期輸出

WR161519121912年6月16日

WR2-1151912月份不在1~12中

WR313151912月份不在1~12中

WR46-11912日期不在1~31中

WR56321912日期不在1~31中

WR66151811年份不在1812~2012中

WR76152013年份不在1812~2012中(二)強強健等價類測試

用例ID月份日期年預期輸出

SR1-1151912月份不在1~12中

SR26-11912日期不在1~31中

SR36151811年份不在1812~2012中

SR4-1-11912兩個無效一個有效

SR56-11811兩個無效一個有效

SR6-1151811兩個無效一個有效

SR7-1-11811三個無效實驗二。白盒測試利用白盒測試之賦稅管理系統(tǒng)練習根本路徑測試方法。準備: Junit-4.10Eclipse〔安裝完Junit eclipse新建工程,本次先以獲取數(shù)組中的中位數(shù)為例進展介紹然后在工程中引入Junite對于冒泡排序進展一次測試:當預期結果與執(zhí)行結果一樣時,測試顯示正確如果有錯誤預判,顯示結果錯誤。實驗步驟二:設計程序,進展測試:收入Ine和供養(yǎng)人數(shù)nDependance來計算賦稅金額的程序。程序輸入是Ine和nDependance,程序輸出是:總稅金TaxTotal應繳所得稅計算公式:TaxSubtotal收入(ine)稅率計算公式<100000.02*ine10000<ine<50000200+0.03*(ine-10000)

>500001400+0.04*(ine-50000)免稅局部:exemption=人數(shù)*50;實繳所得稅:TaxTotal=TaxSubtotal

exemption程序Java代碼:packageProject...test;importjava.util.Scanner;publicclassTexTotal{privatedoubletotals;privatedoubleine;privateintper;publicdoublegettotals(){returntotals;}publicvoidsetShuru(doubleine,intper){this.ine=ine;this.per=per;}publicbooleangetShuru(){try{Scannerin=newScanner(System.in);System.out.println("請輸入你的工資和家庭人數(shù)〔以空格隔開〕:");this.ine=in.nextInt();this.per=in.nextInt();}catch(Exceptione){System.out.println("請輸入正確的工資數(shù)目!");System.out.println("錯誤類型:"+e);returnfalse;}returntrue;}publicvoidIne(){if(this.ine<=0||this.per<=0){System.out.println("請輸入正確的家庭人數(shù)和收入!");}elseif(this.ine<10000){this.totals=this.ine*0.02-this.per*50;}elseif(this.ine>=10000&&this.ine<50000){this.totals=200+(this.ine-10000)*0.03-this.per*50;}else{this.totals=1400+(this.ine-50000)*0.04-this.per*50;}if(this.totals<0){this.totals=0;}}publicvoidPrints(){System.out.println("需要繳納的稅為:"+this.totals);}publicstaticvoidmain(Stringargs[]){TexTotald=newTexTotal();if(d.getShuru()){d.Ine();d.Prints();}}}}if(this.totals<0){this.totals=0;}}publicvoidPrints(){System.out.println("需要繳納的稅為:"+this.totals);}publicstaticvoidmain(Stringargs[]){TexTotald=newTexTotal();if(d.getShuru()){d.Ine();d.Prints();}}}測試代碼:packageProject...test;importstaticorg.junit.Assert.*;importjunit.framework.Assert;importorg.junit.After;importorg.junit.Before;importorg.junit.Test;publicclassTexTotalTest{TexTotals=newTexTotal();BeforepublicvoidsetUp()throwsException{}AfterpublicvoidtearDown()throwsException{}TestpublicvoidtestGetShuru1(){s.setShuru(9994,5);s.Ine();Assert.assertEquals(0.0,s.gettotals());}TestpublicvoidtestGetShuru2(){s.setShuru(10023,3);s.Ine();Assert.assertEquals(50.69,s.gettotals());}TestpublicvoidtestGetShuru3(){s.setShuru(59232,4);s.Ine();Assert.assertEquals(1569.28,s.gettotals());}TestpublicvoidtestGetShuru4(){s.setShuru(500,0);s.Ine();Assert.assertEquals(0.0,s.gettotals());}TestpublicvoidtestGetShuru5(){s.setShuru(-50000,4);s.Ine();Assert.assertEquals(0.0,s.gettotals());}}3測試數(shù)據測試均順利通過。路徑覆蓋率為100%。實驗三、1、運行Winrunner,新建一個測試工程。點擊【開場】按鈕,選擇【程序】-【WinRunner】-【WinRunner】,點擊【NewTest】。 2、開場錄制。錄制前查看如下設置是否正確。主菜單"Tools〞—"GeneralOptions〞—"General〞選項卡設置如下,選擇GUIMap模式為"TheGUIMapFileperTest〞圖3-1-1點擊工具欄上"錄制〞按鈕,WinRunner進入錄制狀態(tài)。3、啟動需錄制界面窗口。使用WinRunner自帶的演示程序,運行Flight4B程序,進入"Login〞窗口如圖3-1-2。具體運行方法為:點擊【開場】按鈕,選擇【程序】-【WinRunner】-【SampleApplications】,點擊【Flight4A】。4、操作圖形用戶界面。點擊"AgentName〞輸入框,輸入"tester〞;點擊"Password〞輸入框,輸入"mercury〞;點擊"OK〞按鈕。圖3-1-25、在圖3-1-3中選擇File—OpenOrder。圖3-1-3在隨后的窗口中,選中OrderNo〔在checkBox中打上勾〕,輸入數(shù)字3,按"OK〞按鈕。如圖3-1-4。圖3-1-4在圖3-1-3中,選擇File—FaxOrder。在圖3-1-4窗口中輸入〔數(shù)字〕如:0109812320。并將簽名選項打上勾。圖3-1-5 在AgentSignature窗口中寫下你的名字。用鼠標在白板上簽名〔畫名〕。仔細查看WinRunner如何在ContextSensitive錄制模式下進展簽名。 去除剛剛所做的簽名軌跡。按下"ClearSignature〞按鈕。將FaxOrder窗口移動到屏幕上不同的位置?!苍诟鼡QAnoLog錄制模式時,重新設置窗口位置〕 按F2轉換到AnoLog錄制模式下。并在AgentSignature窗口中寫下你的名字〔畫下你的名字〕。仔細觀察WinRunner如何在Anolog錄制模式下進展簽名錄制。 再次按下F2轉換回ContextSensitive錄制模式,按下Send按鈕,發(fā)送。窗口將提示發(fā)送成功。6、停頓錄制。按左Ctrl+F3鍵停頓錄制。查看WinRunner中記錄的腳本。7、保存腳本。 點擊工具欄中"保存〞按鈕把腳本保存到指定目錄。8、回放腳本。關閉"Flight4A〞程序。選擇工具欄上"FromTop〞按鈕。觀察腳本的運行。

插入同步點操作前請先確保如下設置:主菜單"Tools〞—"GeneralOptions〞—"Settings〞選項卡設置如下,選擇TimeoutforcheckpointsandCSstatements為1000msec。圖3-1-61、運行WinRunner,并創(chuàng)立一個新的測試。2、翻開"飛機預定票系統(tǒng)〞〔Flight4A〕。〔PASSWORD:mercury〕3、錄制一個腳本。在"飛機預定票系統(tǒng)〞中創(chuàng)立一個新的定單。選擇"File>NewOrder〞。填寫飛機與乘客信息。如圖3-1-7:圖3-1-7插入定單存到數(shù)據庫。單擊"InsertOrder〞按鈕,當插入完成,"InsertDone〞信息將出現(xiàn)在狀態(tài)欄〔在界面上方〕。再單擊"DeleteOrder〞按鈕,并確認刪除此訂單。停頓錄制。 保存腳本?!怖缒_本名為Lesson〕4、關閉"Flight4A〞程序?;胤艅倓備浿频哪_本。觀察發(fā)生的情況,刪除訂單時出現(xiàn)錯誤提示。原因是回放腳本速度太快,插入還沒有成功就要刪除腳本。

插入同步點步驟1、確認窗口處在Lesson測試腳本下。(由于間隔時間不夠導致失敗)2、移動鼠標到所要插入同步點的腳本位置。將鼠標移動到"button_press("InsertOrder");〞末尾,并回車新增行,如圖3-1-8:圖3-1-83、插入同步設置。策略:當"Insertdone〞的提示在主窗口上方出現(xiàn)時,再讓測試繼續(xù)。選擇菜單"Insert>SynchronizationPoint>ForObject/windowB

溫馨提示

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

評論

0/150

提交評論