《軟件質量與測試》課程設計實驗報告_第1頁
《軟件質量與測試》課程設計實驗報告_第2頁
《軟件質量與測試》課程設計實驗報告_第3頁
《軟件質量與測試》課程設計實驗報告_第4頁
《軟件質量與測試》課程設計實驗報告_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、華中科技大學文華學院軟件質量與測試課程設計軟件工程專業(yè)07級3班姓名:曹洪學號全稱:070107031101時間:2010年11月12日軟件質量與測試課程設計1、實驗目的掌握軟件測試用例的設計掌握軟件缺陷報告的設計掌握軟件缺陷修正報告的設計2、實驗過程程序preday的基本功能:輸入有效的年、月、日,按計算按鈕,畫面輸出顯示前1天的年,月,日;能對日期非法輸入的合理提示等。2.1程序代碼的編寫 詳見preday文件2.2黑盒軟件測試用例的設計 2.2.1等價類劃分法程序的有效輸入日期為1800年1月1日到2050年12月31日之間的有效日期。其中,有效等價類為1800年1月1日到2050年12

2、月3日之間的日期,其中年份為1800到2050之間的整數(shù);月份為1到12之間的整數(shù);當月份為1、3、5、7、8、10、12時,日為1到31之間的整數(shù),當月份為4、6、9、11時,日為1到30之間的整數(shù),當年份為閏年元份為2時,日為1到29之間的數(shù)值,否則為1到28之間的數(shù)值。無效等價類:1800年1月1日之前的日期;2050年12月3日之后的日期;1800年1月1日到2050年12月31日之間的日期,但是月份不為1到12之間的整數(shù);或者當月份為1、3、5、7、8、10、12時,日不為1到31之間的整數(shù),當月份為4、6、9、11時,日不為1到30之間的整數(shù),當年份為閏年元份為2時,日為1到29之

3、間的數(shù)值,否則為1到28之間的數(shù)值。最簡單的等價類劃分直接以輸入條件邊界來劃分,得到的等價類集合見下表,其中Y1-Y3,M1-M3,D1-D3分別是三個輸入條件的相應的等價類的編號。表1:preday問題的等價類劃分等價類年份月份日期有效等價類Y1:1800年份2500M1:1月份12D1:1日期31無效等價類Y2:年份<1800M2:月份<1D2:日期<1Y3:年份>2050M3:月份>12D3:日期>31根據表1的等價類劃分,無效等價類測試可以得到如表2的測試用例,而較為合理的有效等價類的劃分如表3。三個輸入各自具有不同的有效等價類數(shù)目,若從每個等價類中

4、選擇一個典型值,則年份、月份和日期的取值個數(shù)分別為2、4、4,這時將年份的水平值加以擴展,即對于年份,可在Y1和Y2中各選兩個典型值。這樣得到所有輸入條件的取值如下:年份:1850、1900、2000、2004月份:1、3、5、11日期:1、29、30、31此時,構成的有效等價類測試用例如表4所示:表2:Preday的無效等價類的測試用例ID輸入日期(年-月-日)操作步驟預期輸出實際輸出備注ND-0011700-6-15輸入年月日,點擊“計算”按鈕提示“請輸入一個在1800和2500之間的整數(shù)”請輸入一個在1800和2500之間的整數(shù)年份在Y2中ND-0023000-12-15輸入年月日,點擊

5、“計算”按鈕提示“請輸入一個在1800和2500之間的整數(shù)”請輸入一個在1800和2500之間的整數(shù)年份在Y3中ND-00319891-15輸入年月日,點擊“計算”按鈕提示“請輸入一個在1和12之間的整數(shù)”請輸入一個在1和12之間的整數(shù)月份在M2中ND-0041989-13-12輸入年月日,點擊“計算”按鈕提示“請輸入一個在1和12之間的整數(shù)”請輸入一個在1和12之間的整數(shù)月份在M3中ND-0051989-4-2輸入年月日,點擊“計算”按鈕提示“請?zhí)钊胍粋€在1和31之間的整數(shù)”請?zhí)钊胍粋€在1和31之間的整數(shù)日期在D2中ND-0061989-4-32輸入年月日,點擊“計算”按鈕提示“請?zhí)钊胍粋€在

6、1和31之間的整數(shù)”請?zhí)钊胍粋€在1和31之間的整數(shù)日期在D3中表3:較為合理的有效等價類的劃分等價類年份月份日期有效等價類Y1:1800年份2050,且為閏年M1: 5、7、10、12D1:1日期28Y2:1800年份2050,且為非閏年M2:2、4、6、8、9、11D2:29M3:1D3:30M4:3D4:31表4:有效等價類測試用例ID輸入日期(年-月-日)操作步驟預期輸出(年-月-日)實際輸出(年-月-日)ND-0071850-1-1輸入年月日,點擊“計算”按鈕1849-12-311849-12-31ND-0081850-3-29同上1850-3-28.1850-3-28.ND-0091

7、850-5-30同上1850-5-291850-5-29ND-0101850-11-31同上輸入日期不合法的合理提示The month 11 Can not have 31 days.ND-0111900-1-29同上1900-1-281900-1-28ND-0121900-3-30同上1900-3-291900-3-29ND-0131900-5-31同上1900-5-301900-5-30ND-0141900-11-1同上1900-10-311900-10-31ND-0152000-1-30同上2000-1-282000-1-28ND-0162000-3-31同上2000-3-302000-

8、3-30ND-0172000-5-1同上2000-4-302000-4-30ND-0182000-11-29同上2000-11-282000-11-28ND-0192004-1-31同上2004-1-302004-1-30ND-0202004-2-1同上2004-1-312004-1-31ND-0212004-5-29同上2004-5-282004-5-28ND-0222004-11-30同上2004-11-292004-11-292.2.2邊界值法根據preday的有效輸入日期可以設置邊界值法的測試用例取值如下,年份:1800、1801、2049、2050月份:1、2、11、12日期:1、2

9、、30、31此時,構成的邊界值法測試用例如表5所示。表5:邊界值法測試用例ID輸入日期(年-月-日)操作步驟預期輸出(年-月-日)實際輸出(年-月-日)ND-0231800-1-1輸入年月日,點擊“計算”按鈕輸入日期超出范圍的合理提示Reach the min date.ND-0241800-2-1同上1800-1-311800-1-31ND-0251800-11-30同上1800-11-291800-11-29ND-0261800-12-31同上1800-12-301800-12-30ND-0271801-1-2同上1801-1-11801-1-1ND-0281801-2-30同上輸入日期不

10、合法的合理提示The month 2 Can not have 30 days.ND-0291801-11-31同上輸入日期不合法的合理提示The month 11 Can not have 31 days.ND-0301801-12-1同上1801-11-301801-11-30ND-0312049-1-30同上2049-1-292049-1-29ND-0322049-2-31同上輸入日期不合法的合理提示The month 2 Can not have 31 days.ND-0332049-11-1同上2049-10-312049-10-31ND-0342049-12-2同上2049-12-

11、12049-12-1ND-0352050-1-31同上2050-1-302050-1-30ND-0362050-2-1同上2050-1-312050-1-31ND-0372050-11-2同上2050-11-12050-11-1ND-0382050-12-30同上2050-12-292050-12-292.2.2錯誤推測法錯誤推測法是基于測試人員的經驗和直覺來推測系統(tǒng)中可能存在的各種缺陷,有針對地設計測試用例的方法。錯誤推法的基本思想是列舉出系統(tǒng)中所有可能的缺陷和容易發(fā)生缺陷的特殊情況,并根據他們選擇測試用例。程序preday錯誤推測法測試用例設計如表6所示。表6:錯誤推測法測試用例ID輸入日

12、期(年-月-日)操作步驟預期輸出(年-月-日)實際輸出(年-月-日)備注ND-039無無所有的接文本框都清零如圖1Ver1-Bug0001ND-0401800-12-0輸入年月日,點擊“計算”按鈕無1800-11-30Ver1-Bug0002ND-0411989-8-1同上1989-7-311989-7-30Ver1-Bug0003ND-0421800-1-1同上最小輸入日期的合理提示輸出“Reach the min date.”通過ND-0432050-12-31同上2050-12-302050-12-30通過ND-0442000-3-1同上2000-2-292000-2-29通過ND-04

13、52000-0-0同上無2000-1-29Ver1-Bug00042.3 黑盒軟件測試用例的執(zhí)行2.3.1 Ver1-Bug0001運行程序后,界面上的年、月、日輸入框內的數(shù)據沒有清空。如圖1所示:2.3.2 Ver1-Bug0002輸入日期1800-12-0后,會跳出輸入日期不合法提示的警告信息,如圖2所示,點擊確定后能得到前一天的日期并顯示在對話框內,如圖3所示:2.3.3 Ver1-Bug0003輸入1989年8月1日后點擊確定按鈕后顯示的日期是1989-7-30,實際上7月是有31天的,即程序顯示的日期不正確,程序運行如圖4所示:2.3.3 Ver1-Bug0004輸入日期2000-0

14、-0后,會跳出“請?zhí)钊胍粋€在1和12之間的整數(shù)”的警告信息,如圖5所示,點擊確定后能在對話框內顯示20001-29,如圖6所示:圖1圖2圖3圖4圖5圖62.4 軟件缺陷報告的設計 缺陷報告缺陷名稱:顯示錯誤的日期 缺陷編號ID: Ver1-Bug0003報 告 人:曹 洪 報告時間: 2010-11-3部 門:營業(yè)部 客服B組發(fā) 現(xiàn) 人:曹 洪 發(fā)現(xiàn)時間: 2010-11-1部 門:泉海潮公司發(fā)現(xiàn)場所:泉海潮公司 軟件工具實驗室501 軟件系統(tǒng)名: preday 軟件版本: preday 1.0版發(fā)生階段: 用戶使用再現(xiàn)率: 100%嚴重級: 高優(yōu)先級: 高處理決定決定人:曹 洪2010-11

15、-3,缺陷報告提交給軟件開發(fā)部門,限2010-11-5 18:00前修復。2010-11-4上午,質保部門修錯驗證測試;2010-11-4 下午,與其他修復軟件一起提交給版本發(fā)布部門2010-11-5,版本發(fā)布部門作為升級版Ver1.0SP1交付給用戶。缺陷現(xiàn)象輸入日期是1989-8-1,點擊確定按鈕后顯示的日期是1989-7-30,實際上7月是有31天的,即程序顯示的日期不正確,程序運行如圖4所示:缺陷再現(xiàn)步驟1、 在線數(shù)據d:predayBugVer1Ver1-Bug0003Ver1-Bug0003.txt2、 輸入數(shù)據3、 點擊【計算】按鈕2.5 軟件缺陷修正報告的設計修錯報告缺陷名稱:

16、顯示錯誤的日期 缺陷編號ID: Ver1-Bug0003報 告 人:曹 洪 報告時間: 2010-11-4部 門:軟件開發(fā)部 preday 項目組修 錯 人:宮畢克 修錯時間: 2010-11-4部 門:軟件開發(fā)部 preday 項目組1.缺陷原因表面原因:將7月的天數(shù)錯誤的設置為30天,實際應是31天。實質原因:在設置日期為1、月份為8時,選擇處理的邏輯錯誤。2.缺陷對策重新設置8月1日的邏輯處理。3.對策函數(shù)名predayDlg.cpp的void Preday1( const int& year, const int& month, const int& day,

17、CString& strpreday )修正記號:Ver1-Bug00034.缺陷產生階段編碼5.修正后結果2.6 白盒軟件測試用例的設計修正的代碼:if(month = 5 | month = 7 | month = 10 | month = 12)preday = 30;premonth = month - 1;else if (month = 3)premonth = month -1;if(isLeapYear(year)preday = 29;elsepreday = 28;else if(month = 1)if( year = 1800 )AfxMessageBox( &

18、quot;Reach the min date.n" );bValid = false;elsepreday = 31;premonth = 12;preyear = year - 1;elsepreday = 31;premonth = month -1;2.6.1語句覆蓋利用語句覆蓋設計測試用例時應保證程序的每一條可執(zhí)行語句至少執(zhí)行一次。從程序圖上看,其實等同于節(jié)點覆蓋。語句覆蓋率的計算方式如下:語句覆蓋率 = 至少被執(zhí)行一次的語句數(shù)量/可執(zhí)行的語句總數(shù)進行白盒測試的程序段的流程圖如圖2.6.1所示,開始此段程序的條件是日期為1,即在設計測試用例時所有的日期都必須為1時程序運行時

19、才能運行選擇的這段程序。語句覆蓋的測試用例如表2.6.1所示,表中通過的路徑為圖2.6.1中所示的路徑。圖2.6.1 邏輯覆蓋的流程圖表2.6.1 語句覆蓋的測試用例設計ID輸入預期輸出通過路徑語句覆蓋年份月份日期年-月-日LC-0011989511989-4-30A16.67LC-0021980311980-2-29BCD16.67LC-0032002312002-2-28BCE16.67LC-004180011Reach the min date.BFGH16.67LC-0051801111800-12-31BFGI25LC-0061988611988-5-31BFJ16.672.6.2判

20、定覆蓋判定覆蓋又稱分支覆蓋,其含義是:設計測試用例時應保證程序中每個判定節(jié)點的取真和去假分支至少執(zhí)行一次。由于判定節(jié)點并非只有二值情況,對于多分支的情況,判定覆蓋的含義為:測試用例的設計應保證程序中每個判定節(jié)點取得每種可能的結果至少一個。從流程圖來看,判定覆蓋等同于邊覆蓋。判定覆蓋率的計算公式如下:判定覆蓋率 = 判定結果被評價的次數(shù) / 判定結果的總數(shù) 判定覆蓋的測試用例設計ID輸入預期輸出通過路徑判定覆蓋年份月份日期年-月-日LC-00719901211990-11-30A20LC-0081898311898-2-28BCE60LC-0092004312004-2-29BCD60LC-01

21、02007112006-12-31BFGI80LC-011180011Reach the min date.BFGH80LC-01220111112011-10-31BFJ602.6.3條件組合覆蓋條件組合覆蓋的含義是:測試用例的設計應滿足每個判定節(jié)點中所有簡單判定條件的各種的組合應至少執(zhí)行一次。條件組合覆蓋率的計算方法如下:條件組合覆蓋率 = 條件操作數(shù)值至少被評價一次的數(shù)量 / 條件操作數(shù)值的所有組合總數(shù)條件組合覆蓋的測試用例設計表2.6.3,其相應測試用例的簡單判定條件的判定如簡單判定條件表。表:2.6.3 條件組合覆蓋的測試用例ID輸入預期輸出條件組合覆蓋率年份月份日期年-月-日LC-

22、0132011512011-4-3012.5LC-0142012712012-6-3025LC-01520331012033-9-3037.5LC-01620001212000-11-3050LC-0171866311866-2-2862.5LC-0181804311804-2-2962.5LC-0191800111800-4-3087.5LC-0201999111999-4-3087.5簡單判定條件判定表ID簡單判定條件Month=5Month=7Month=10Month= 12Month=3Month=1Year=1800isLeapYear(year)LC-013TLC-014FTLC-015FFTLC-016FFFTLC-017FFFFTFLC-018FFFFTTLC-019FFFFFTTLC-020FFFFFTF2.7 黑盒回歸測試用例的設計 驗證軟件缺陷的修正驗證人:曹洪驗證版本:Ver1.0SP11、 使用發(fā)生軟件缺陷的測試用例(1989-8-1)輸出結果:preday is: 1989-7-31.判定:OK輸入日期1989-8-1。點擊計算

溫馨提示

  • 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

提交評論