三角形、nextday、傭金問題實驗報告_第1頁
三角形、nextday、傭金問題實驗報告_第2頁
三角形、nextday、傭金問題實驗報告_第3頁
三角形、nextday、傭金問題實驗報告_第4頁
三角形、nextday、傭金問題實驗報告_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-航空大學(xué)實驗報告2013年10月20日課程名稱:軟件質(zhì)量保證與測試實驗名稱:測試程序的設(shè)計班級:******:***同組人:指導(dǎo)教師評定:簽名:一、實驗?zāi)康耐瓿蓽y試用程序的編寫,為接下來的測試實驗做準(zhǔn)備。二、實驗要求〔1〕設(shè)計程序的語言可以選擇C、C++、JAVA等;〔2〕保證程序語確〔3〕記錄實驗數(shù)據(jù)并書寫實驗報告題目要求:題目一:三角形問題問題描述:輸入三角形三條邊a、b、c,三條邊有效取值圍為[1,200],判斷該三角形是什么三角形,輸出容具體包括:〔1〕等邊三角形;〔2〕等腰三角形;〔3〕直角三角形;〔4〕等腰直角三角形;〔5〕一般三角形;〔6〕非三角形;〔7〕輸入數(shù)據(jù)非法。題目二:Ne*tDate問題問題描述:輸入年月日year、month、day,其中年份的有效取值圍為[1900,2100],請輸出輸入日期的下一天,例如輸入2013年9月29日,輸出為2013年9月30日。假設(shè)輸入日期非法,例如輸入2013年2月30日,則輸出"輸入日期不存在〞,假設(shè)輸入日期超出取值圍,例如輸入2013年9月32日,則輸出"輸入日期超出圍〞。問題三:傭金問題問題描述:前亞利桑那洲境的一位步槍銷售商銷售密里州制造商制造的步槍機〔lock〕、槍托〔stock〕和槍管〔barrel〕。槍機賣45美元,槍托賣30美元,槍管賣25美元。銷售商每月至少要售出一支完整的步槍,且生產(chǎn)限額是大多數(shù)銷售商在一個月可銷售70個槍機、80個槍托和90個槍管。根據(jù)當(dāng)月的銷售情況,并計算銷售商的傭金如下:〔1〕不到〔含〕1000美元的局部為10%;〔2〕1000〔不含〕~1800〔含〕美元的局部為15%;〔3〕超過1800美元的局部為20%。傭金程序生成月份銷售報告,匯總售出的槍機、槍托和槍管總數(shù),銷售商的總銷售額以及傭金。三、實驗步驟1.運行TC,VisualC++,JAVA等開發(fā)工具;2.在開發(fā)環(huán)境中完成程序設(shè)計,并進展調(diào)試;3.在程序沒有語法錯誤的前提下重點檢查程序的邏輯錯誤;4.對程序進展調(diào)試,并記錄實驗數(shù)據(jù)。四、實驗容三角形問題:概要設(shè)計: 在輸入不同數(shù)值可以得到相應(yīng)的輸出結(jié)果〔1〕當(dāng)輸入三條邊的數(shù)值大小有一不在圍,提示"輸入圍不合理〞〔2)當(dāng)輸入三值不滿足構(gòu)成三角形條件時,輸出"非三角形〞(3)當(dāng)輸入三值只是滿足構(gòu)成三角形條件,沒有其他特殊問題,輸出"一-般三角形〞(4))當(dāng)輸入三條邊只有兩個值相等,輸出"等腰三角形〞當(dāng)輸入三條邊都相等時,輸出"等邊三角形〞當(dāng)輸入三條邊只是滿足勾股定理時,輸出"直角三角形〞(7)當(dāng)輸入三條邊不僅滿足勾股定理,而且其中有兩條邊相等,輸出"等腰直角三角形〞源代碼:#include<stdio.h>main(){inta,b,c;system("graftabl 936");clrscr();printf("請輸入三個邊長:\n");scanf("%d,%d,%d",&a,&b,&c);if((a>=1&&a<=200)&&(b>=1&&b<=200)&&(c>=1&&c<=200)){if(a+b>c&&a+c>b&&b+c>a)if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){printf("可以構(gòu)成一個直角三角形\n");if(a==b||b==c||a==c)printf("可以構(gòu)成一個等腰直角三角形\n"); }elseif(a==b&&a==c)printf("可以構(gòu)成一個等邊三角形\n");elseif(a==b||b==c||a==c)printf("可以構(gòu)成一個等腰三角形\n");elseprintf("可以構(gòu)成一個等腰三角形\n");elseprintf("不能構(gòu)成三角形\n");}else printf("輸入圍不合理\n");getch();}運行結(jié)果:Ne*tday函數(shù):概要設(shè)計:分析不同情況下的輸入,可以得到不同輸出〔1〕當(dāng)輸入數(shù)值只要有一個不符合圍,提示"不合理圍〞〔2〕當(dāng)輸入非月頭月尾數(shù)值時,輸出日期將天數(shù)加1〔3〕當(dāng)輸入非2月月尾時,輸出日期將月份加1〔4〕當(dāng)輸入的為年尾時,輸出日期將年份加1〔5〕當(dāng)輸入閏年28日時,輸出日期將天數(shù)加1〔6〕當(dāng)輸入閏年29日時,輸出日期將月份加1〔7〕當(dāng)輸入非閏年27日時,輸出日期將天數(shù)加1-〔8〕當(dāng)輸入非閏年28日時,輸出日期將月份加1〔9〕當(dāng)輸入非閏年29日時,提示"輸入錯誤〞源代碼:#include<stdio.h>main(){intyear,month,day;inta[]={31,29,31,30,31,30,31,31,30,31,30,31};intb[]={31,28,31,30,31,30,31,31,30,31,30,31};system("graftabl936");clrscr();printf("請輸入日期:\n");scanf("%d,%d,%d",&year,&month,&day);if(year<=2100&&year>=1900){if(year%4==0&&year%100!=0||year%400==0){if(month<12){ if(a[month-1]>day)printf("后一天:%d年%d月%d日",year,month,day+1);elseprintf("后一天:%d年%d月1日",year,month+1);}else

if(month==12){ if(a[month-1]>day)printf("后一天:%d年%d月%d日",year,month,day+1);elseprintf("后一天:%d年1月1日",year+1);}}else{if(month<12){ if(b[month-1]>day)printf("后一天:%d年%d月%d日",year,month,day+1);elseprintf("后一天:%d年%d月1日",year,month+1);}else

if(month==12){ if(b[month-1]>day)printf("后一天:%d年%d月%d日",year,month,day+1);elseprintf("后一天:%d年1月1日",year+1);}}

}getch();}運行結(jié)果:-輸出結(jié)果錯誤,代表程序源代碼出現(xiàn)錯誤傭金問題:概要分析: 當(dāng)輸入不同數(shù)值時會有不同的的傭金〔1〕當(dāng)輸入數(shù)值不滿足要求時,提示"不合理圍〞〔2〕當(dāng)輸入數(shù)值計算得總銷售額不到〔含〕1000美元,傭金為其10%〔3〕當(dāng)輸入數(shù)值計算得總銷售額為1000〔不含〕~1800〔含〕美元,傭金為其15%〔4〕當(dāng)輸入數(shù)值計算得總銷售額超過1800美元,傭金為其20%源代碼:#include<stdio.h>intmain(){int*,y,z,n;system("graftabl 936");clrscr();printf("請輸入購置的槍機、槍托、槍管數(shù)量:\n");scanf("%d,%d,%d",&*,&y,&z);if((*>=1&&*<=70)&&(y>=1&&y<=80)&&(z>=1&&z<=90)){n=45**+30*y+25*z;if(n<=1000)printf("槍機數(shù)%d、槍托數(shù)%d、槍管數(shù)%d、總銷售額%d、傭金%f",*,y,z,n,0.1*n);else if(n<=1800)printf("槍機數(shù)%d、槍托數(shù)%d、槍管數(shù)%d、總銷售額%d、傭金%f",*,y,z,n,0.15*n);elseprintf("槍機數(shù)%d、槍托數(shù)%d、槍管數(shù)%d、總銷售額%d、傭金%f",*,y,z,n,0.2*n);}elseprintf("輸入圍不合理\n");getch();}運行結(jié)果:五、結(jié)果分析對以上三個題目的編碼中,三角形問題和傭金問題沒有出現(xiàn)什么錯誤,就是在ne*tday中出現(xiàn)眾多小錯誤,其中,對于圍問題只是對年份進展了控制,沒有對月份及日期進展控制,從而超出圍也不會作出相對應(yīng)的提示。而且,在ne*tday中有的輸入得不到相對應(yīng)的輸出,將會在下面的白盒測試中對其進展修改。航空大學(xué)實驗報告2013年10月27日課程名稱:軟件質(zhì)量保證與測試實驗名稱:功能性測試-班級:******:***同組人:指導(dǎo)教師評定:簽名:一、實驗?zāi)康恼莆者吔缰?、等價類、決策表測試的根本功能性測試方法二、實驗要求分別用強健性測試〔邊界值方法〕、弱強健等價類測試〔等價類方法〕和決策表測試技術(shù)分別對三角形問題|、Ne*tdate問題和傭金問題設(shè)計測試用例〔即每個程序都要用這三種方法進展測試〕,并分別對實驗一所編寫的三個程序進展測試。要求:對于測試用例的設(shè)計必須給出詳細(xì)的設(shè)計過程,在測試過程中如果發(fā)現(xiàn)缺陷〔預(yù)期輸出與實際輸出不符〕,則采用截圖的方式說明缺陷現(xiàn)象,并簡單分析其可能產(chǎn)生的原因及建議,但不允許修改程序。三、實驗步驟1.運行TC,VisualC++,JAVA等開發(fā)工具;2.在開發(fā)環(huán)境中完成程序設(shè)計,并進展調(diào)試;3.在程序沒有語法錯誤的前提下重點檢查程序的邏輯錯誤;4.對程序進展調(diào)試,并記錄實驗數(shù)據(jù)。四、實驗容三角形問題強健性邊界值測試用例測試用輸入條件預(yù)期輸出實際輸出用例狀態(tài)例abc0100100提示"輸入圍不合理〞提示"輸入圍不合理〞failTest1Test1100100等腰三角形等腰三角形pass2Test2100100等腰三角形等腰三角形pass3Test100100100等邊三角形等邊三角形pass4Test199100100等腰三角形等腰三角形pass5Test200100100非三角形非三角形pass6Test201100100提示"輸入圍不合理〞提示"輸入圍不合理〞fail7Test1000100提示"輸入圍不合理〞提示"輸入圍不合理〞fail8Test1001100等腰三角形等腰三角形pass9Test1002100等腰三角形等腰三角形pass10Test100199100等腰三角形等腰三角形pass-11Test100200100非三角形非三角形pass12Test100201100提示"輸入圍不合理〞提示"輸入圍不合理〞fail13Test11001000提示"輸入圍不合理〞提示"輸入圍不合理〞fail4Test11001001等腰三角形等腰三角形pass5Test11001002等腰三角形等腰三角形pass6Test1100100199等腰三角形等腰三角形pass7Test1100100200非三角形非三角形pass8Test1100100201提示"輸入圍不合理〞提示"輸入圍不合理〞fail9缺陷截圖:Test1:Test7:Test8:Test13:Test14:Test19:弱強健等價類條件樁:C1:是否構(gòu)成三角形〔a+b>ca+c>bb+c>a〕動作樁:A1:非三角形C2:a=bA2:等腰三角形C3:b=cA3:等邊三角形C4:a=cA4:一般三角形A5:不可能出現(xiàn)三角形問題決策表決策表1-8910111213141516C1FTTTTTTTTC2—TTTTFFFFC3—TTFFTTFFC4—TFTFTFTFA1√A2√√√A3√-A4√A5√√√三角形問題決策表測試用例測試輸入條件預(yù)期輸出用例abc1-8236非三角形9333等邊三角形10﹡﹡﹡不可能11﹡﹡﹡不可能12151520等腰三角形13﹡﹡﹡不可能14152020等腰三角形15252025等腰三角形16152026一般三角形Ne*tday問題強健性邊界值測試用例測試用輸入條件預(yù)期輸出實際輸出用例狀態(tài)例年月日1899615提示"超出圍〞提示"超出圍〞failTest1Test19006151900/6/161900/6/16pass2Test19016151901/6/161901/6/16pass3Test20006152000/6/162000/6/16pass4Test20996152099/6/162099/6/16pass5Test21006152100/6/162100/6/17pass6Test2101615提示"超出圍〞提示"超出圍〞fail7Test2000015提示"超出圍〞2000/1/1fail8Test20001152000/1/162000/1/16pass9Test20002152000/2/162001/2/16pass10Test200011152000/11/162000/11/16pass11-Test200012152000/12/162000/12/16pass12Test20001315提示"超出圍〞2000/1/16fail13Test1200060提示"超出圍〞2000/6/1fail4Test12000612000/6/22000/6/2pass5Test12000622000/6/32000/6/3pass6Test120006292000/6/302000/6/30pass7Test120006302000/7/12000/7/1pass8Test12000631提示"超出圍〞提示"超出圍〞fail9缺陷截圖:Test1:Test7:Test8:出現(xiàn)未知錯誤,預(yù)期輸出"超出圍〞,結(jié)果顯示出了不相對應(yīng)的輸出結(jié)果,可能是程序中出現(xiàn)了一定程度的邏輯錯誤Test13:出現(xiàn)未知錯誤,預(yù)期輸出"超出圍〞,結(jié)果顯示出了不相對應(yīng)的輸出結(jié)果,再觀察完程序后,發(fā)現(xiàn),在源代碼中只是對年份的圍進展了一定的圍規(guī),沒有對月份進展要求,才會出現(xiàn)以下的運行錯誤Test14:-出現(xiàn)未知錯誤,預(yù)期輸出"超出圍〞,結(jié)果顯示出了不相對應(yīng)的輸出結(jié)果,在觀察完程序后,發(fā)現(xiàn)在源代碼中只是對年份的圍進展了一定的圍規(guī),沒有對月份進展規(guī),才會出現(xiàn)以下的運行錯誤Test19:簡易分析賦值歸納:

Ne*tday函數(shù)弱強健性等價類Y1:該年為閏年 Y2:該年不會閏年M1:該月有30天 M2:該月有31天〔12月除外〕M3:該月為12月 M4:該月為2月D1:1<=day<=27 D2:28天 D3:29天 D4:30天D5:31天條件樁:C1:monthC2:dayC3:year動作樁:A1:不可能A2:day+1A3:day復(fù)位A4:month+1A5:month復(fù)位A6:year+1Ne*tday函數(shù)的決策表選項11211-6-4510-1151617181920-2規(guī)則3942MMMMMMMMMMMMMC11112233444444條D1D1D1D4件C2-DD4D5-DD5-DD5D1D2D2D3D3-D3445C3--------Y1Y2Y1Y2-A1√√√動A2√√√√√作A3√√√√√-A4√√√√A5√A6√Ne*tday函數(shù)決策表測試用例測試用例yearmonthday預(yù)期輸出test1-320016152001-6-16test420016302001-7-1test52001631不可能test6-920017152001-7-16test1020017312001-8-1test11-14200112152001-12-16test15200112312002-1-1test1620012152001-2-16test1720002282000-2-29test1820012282001-3-1test1920002292000-3-1test202001229不可能test21-222001230不可能對此問題強健性邊界值測試得到的結(jié)果是,當(dāng)輸入的數(shù)值之間有邏輯關(guān)系的時候,不適合用強健性測試,因為其間的邏輯關(guān)系,在取其特殊值的時候,需要考慮之前的正常取值。傭金問題強健性邊界值測試用例測試用輸入條件實際輸出用例狀態(tài)預(yù)期輸出例槍機槍托槍管04045提示"輸入圍不合理〞提示"輸入圍不合理〞fail-Test1Tesass2Test24045483483pass3Test354045780780pass4Test69404510861086pass5Test70404510951095pass6Test714045提示"輸入圍不合理〞提示"輸入圍不合理〞fail7Test35045提示"輸入圍不合理〞提示"輸入圍不合理〞fail8Test35145546546pass9Test35245552552pass10Test35794510141014pass11Test35804510201020pass12Test358145提示"輸入圍不合理〞提示"輸入圍不合理〞fail13Test135400提示"輸入圍不合理〞提示"輸入圍不合理〞fail4Test135401560560pass5Test135402565565pass6Test135408910001000pass7Test135409010051005pass8Test1354091提示"輸入圍不合理〞提示"輸入圍不合理〞fail9缺陷截圖:Test1:Test7:Test8:Test13:Test14:Test19:-傭金問題弱強健性等價類條件樁:C1:1<=*<=70動作樁:A1:不合理圍C2:1<=y<=80A2:合理圍C3:1<=z<=90傭金問題決策表選項規(guī)則12--56--8C1TFT條件C2T-FC3T--A1√√動作A2√傭金問題決策表測試用例測試用例*yz預(yù)期輸出test1354045780test2--504045不合理圍test6--835040不合理圍通過對傭金問題的決策表用例測試,可以看出傭金問題不適合用決策表測試,因為動作樁的詳細(xì)判斷是無法達(dá)成的。例:每個不同的輸入會有不同的輸出,無法判斷其是屬于什么圍的傭金比例,則無法到達(dá)預(yù)期的測試效果。五、結(jié)果分析對以上三個問題進展黑盒測試,在對三角形問題進展測試的時候,發(fā)現(xiàn)該代碼不能對非整數(shù)進展測試,將要對其輸入類型進展修改,再者在假設(shè)強健性等價類測試中無法對等腰直角三角形進展測試,無法得到想要的測試結(jié)果。在對ne*tday函數(shù)進展測試的時候,可以將其間不滿足要求的,都測試的出來,將在白盒測試之前將其修改正確。傭金問題的黑盒測試沒有發(fā)現(xiàn)問題,相對可以滿足黑盒測試的要求。航空大學(xué)實驗報告2013年11月3日課程名稱:軟件質(zhì)量保證與測試實驗名稱:構(gòu)造性測試班級:******:***同組人:指導(dǎo)教師評定:簽名:一、實驗?zāi)康恼莆者壿嫺采w法、基路徑法以及數(shù)據(jù)流測試根本構(gòu)造性測試方法-二、實驗要求1、對三角形問題嘗試用邏輯覆蓋法〔語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、路徑覆蓋〕設(shè)計測試用例,具體要求如下:〔1〕為程序語句局部進展編號;〔2〕畫出程序的程序構(gòu)造圖〔節(jié)點圖〕;〔3〕用上述五種方法分別設(shè)計測試用例,并說明每種測試用例的設(shè)計思路,例如測試用例所覆蓋的語句、判定或條件的真分支假分支或路徑等;〔4〕使用上述測試用例對三角形問題進展測試,并做好測試記錄,即有缺陷進展截圖,并試圖分析產(chǎn)生缺陷原因。2、對Ne*tDate問題嘗試采用基路徑方法設(shè)計測試用例,具體要求如下:〔1〕為程序語句局部進展編號;〔2〕畫出程序的程序構(gòu)造圖〔節(jié)點圖〕;〔3〕用基路徑方法設(shè)計測試用例,并說明每個測試用例的設(shè)計思路,例如測試用例所覆蓋基路徑;〔4〕使用上述測試用例對Ne*tDate問題進展測試,并做好測試記錄,即有缺陷進展截圖,并試圖分析產(chǎn)生缺陷原因。3、對傭金問題采用數(shù)據(jù)流測試方法設(shè)計測試用例,具體要求如下:〔1〕為程序語句局部進展編號;〔2〕畫出程序的程序構(gòu)造圖〔節(jié)點圖〕;〔3〕找出程序中所定義的槍機、槍托、槍管、銷售額以及傭金五個變量的定義節(jié)點、使用節(jié)點,并判斷是謂詞使用還是計算使用;〔4〕找出以上五個變量的所有定義-使用路徑,并判斷其是否為定義-去除路徑;〔5〕根據(jù)上述路徑分析程序可能出現(xiàn)的缺陷,并試圖分析產(chǎn)生缺陷原因。三、實驗步驟該三個問題都是先將代碼進展編號,根據(jù)代碼形式畫出相對應(yīng)的程序流程圖,再根據(jù)程序流程圖將其修改成節(jié)點圖,在對具體要求進展解答。具體實驗步驟已在實驗容中詳細(xì)介紹四、實驗容三角形問題:解:〔1〕#include<stdio.h>#definee2.718281828main(){floata,b,c;system("graftabl936");clrscr();1printf("請輸入三個邊長:\n");2scanf("%f,%f,%f",&a,&b,&c);3if((a>=1&&a<=200)&&(b>=1&&b<=200)&&(c>=1&&c<=200)){4if(a+b>c&&a+c>b&&b+c>a)5if((a*a+b*b-c*c<=e-2)||(a*a+c*c-b*b<=e-2)||(c*c+b*b-a*a)<=e-2)6{if(a==b||b==c||a==c)-7printf("等腰直角三角形\n");8elseprintf("直角三角形\n");}9else{if(a==b||b==c||a==c)10if(a==b&&a==c)11printf("等邊三角形\n");12elseprintf("等腰三角形\n");13elseprintf("一般三角形\n");}elseprintf("非三角形\n");}elseprintf("輸入圍不合理\n");getch();}〔2〕先畫出程序流程圖:開始printfscanf否是是否15if3if4是否if514是否if6是否if978是否if10131012根據(jù)所畫的程序流程圖,畫出相對應(yīng)的節(jié)點圖:結(jié)束start1215345146913810711 12(3) 語句覆蓋就是要求每條語句end至少執(zhí)行一次判定語句就是要求每個判定的每條分支至少執(zhí)行一次路徑覆蓋就是要求每條可能的路徑至少執(zhí)行一次由于此題中,每個if分支無論真假都有對應(yīng)的反響語句,所以,此題中的語句覆蓋、判斷-覆蓋和路徑覆蓋都是一樣的語句覆蓋=判定覆蓋=路徑覆蓋的測試用例:測輸入數(shù)據(jù)試預(yù)期輸出覆蓋路徑用abc例tes436非三角形1-2-3-4-14t1tes51012一般三角形1-2-3-4-5-9-13t2tes558等腰三角形1-2-3-4-5-9-10-12t3tes151515等邊三角形1-2-3-4-5-9-10-11t4tes345直角三角形1-2-3-4-5-6-8t5tes等腰直角三222.8281-2-3-4-5-6-7t6角形tes20提示"輸入圍2001801-2-3-15t71不合理〞節(jié)點3:(a>=1&&a<=200)&&(b>=1&&b<=200)&&(c>=1&&c<=200)a>=1編號為1.1a<=200編號為1.2b>=1編號為1.3b<=200編號為1.4c>=1編號為1.5c<=200編號為1.6節(jié)點4:a+b>c&&a+c>b&&b+c>aa+b>c編號為2.1a+c>b編號為2.2b+c>a編號為2.3節(jié)點5:(a*a+b*b-c*c<=e-2)||(a*a+c*c-b*b<=e-2)||(c*c+b*b-a*a)<=e-2)-a*a+b*b-c*c<=e-2編號為3.1a*a+c*c-b*b<=e-2編號為3.2c*c+b*b-a*a)<=e-2編號為3.3節(jié)點6:a==b||b==c||a==ca==b編號為4.1b==c編號為4.2a==c編號為4.3節(jié)點9:a==b||b==c||a==ca==b編號為5.1b==c編號為5.2a==c編號為5.3節(jié)點10:a==b&&a==ca==b編號為6.1a==c編號為6.2條件覆蓋=條件組合覆蓋用輸入數(shù)據(jù)例預(yù)期輸出覆蓋條件序abc號1-120210輸入圍不合理F1.1\F1.2\F1.3\F1.4\F1.5\F1.62102030非三角形F2.1\F2.2\F2.33452一般三角形T1T2F3F4F5F64345直角三角形T1T2T3F4F5F65222.828等腰直角三角形T1T2T3T4F5F66445等腰三角形T1T2F3F4T5F67555等邊三角形T1T2F3F4T5T68-----------其余情況不可能存在其中,T1包括所有1.1~1.6的情況,也就是1.1~1.6整體判斷為TF1指的是1.1~1.6整體判斷值為F以上為例,其他均為此規(guī)律Ne*tday函數(shù):解:〔1〕#include<stdio.h>intmain(){intyear,month,day;inta[12]={31,29,31,30,31,30,31,31,30,31,30,31};intb[12]={31,28,31,30,31,30,31,31,30,31,30,31};inty,m,d;system("graftabl936");clrscr();1printf("請輸入日期:");2scanf("%d,%d,%d",&year,&month,&day);3if((year>=1900&&year<=2100)&&(month>=1&&month<=12)&&(day>=1&&day<=31))4if(month<12){5if(year%4||year%100&&!(year%400)){-6if(b[month-1]>day){7d=day+1;8m=month;9y=year;10printf("%d/%d/%d\n",y,m,d);}11elseif(b[month-1]==day)12{d=1;13m=month+1;14y=year;15printf("%d/%d/%d\n",y,m,d);}16elseprintf("輸入錯誤\n");}else{if(a[month-1]>day){d=day+1;m=month;y=year;printf("%d/%d/%d\n",y,m,d);}else{d=1;m=month+1;y=year;printf("%d/%d/%d\n",y,m,d);}}}else26{if(a[month-1]>day||b[month-1]>day)27printf("%d/%d/%d",year,month,day+1);else28printf("%d/1/1",year+1);}}elseprintf("超出圍\n");getch();}(2)先畫出程序流程圖:開始printfscanf是if3否是否if429是否否是if5if26-78910

是否27if6是if17否281822192320242125是否if111213161415根據(jù)以上的程序流程圖,可畫出相對應(yīng)的節(jié)點圖:結(jié)束start12329456261771128278 12

18 22169 13

19 232010 1421

2415

25(3)計算V(G),方法一:根據(jù)程序中有7個判斷節(jié)點,V(G)=7+1=8end方法二:根據(jù)圖中有7個完整封閉區(qū)域,V(G)=7+1=8方法三:圖中共有37條邊,31個節(jié)點,V(G)=37-31+2=8獨立路徑:Path2:1-2-3-29Path2:1-2-3-4-26-27-Path3:1-2-3-4-26-28Path4:1-2-3-4-5-17-22-23-24-25Path5:1-2-3-4-5-17-18-19-20-21Path6:1-2-3-4-5-6-11-16Path7:1-2-3-4-5-6-11-12-13-14-15Path8:1-2-3-4-5-6-7-7-8-9-10設(shè)計測試用例:輸入數(shù)據(jù)覆測試用蓋預(yù)期輸出例ymd路徑test12013132提示"超出圍〞1test220021242002-12-52test3200212312003-1-13test420036302003-7-14test520036152003-6-165test62000230提示"輸入錯誤〞6test720002292000-3-17test820006152000-6-168(4)test1:Test6:傭金問題:解:〔1〕#include<stdio.h>intmain(){int*,y,z,n,m;system("graftabl 936");clrscr();1printf("請輸入購置的槍機、槍托、槍管數(shù)量:\n");2scanf("%d,%d,%d",&*,&y,&z);-3if((*>=1&&*<=70)&&(y>=1&&y<=80)&&(z>=1&&z<=90)){4n=45**+30*y+25*z;5if(n<=1000)6m=0.1*n;7printf("槍機數(shù)%d、槍托數(shù)%d、槍管數(shù)%d、總銷售額%d、傭金%f",*,y,z,n,m);8elseif(n<=1800)9m=0.15*n;printf("槍機數(shù)%d、槍托數(shù)%d、槍管數(shù)%d、總銷售額%d、傭金%f",*,y,z,n,m);else11 m=0.2*n;printf("槍機數(shù)%d、槍托數(shù)%d、槍管數(shù)%d、總銷售額%d、傭金%f",*,y,z,n,m);}elseprintf("輸入圍不合理\n");getch();}〔2〕先畫出程序流程圖:否開始是是否是否Printf7根據(jù)程序流程圖可以畫出相對應(yīng)的節(jié)點圖:1012Scanfif 34if 513if869 11-開場12313 45687 9 1110完畢 12〔3〕定義節(jié)點和使用節(jié)點變量定義節(jié)點使用節(jié)點*23,4,7,10,12y23,4,7,10,12z23,4,7,10,12n45,6,7,8,9,10,11,12m6,9,117,10,12其中,謂詞使用:3,5,7計算使用:4,5,8,9,10,11,12〔4〕-變變定義-引用路徑〔開場,完畢〕節(jié)點定義-引用路徑〔開場,完畢〕節(jié)點量量2,32,32,42,4*2,7y2,72,102,102,122,122,34,52,44,6z2,74,72,104,8n2,124,96,74,106,104,116,124,12m9,711,79,10m11,109,12 11,12〔5〕測試無錯誤五、結(jié)果分析對以上三個問題進展白盒測試,分別運用邏輯覆蓋方式、根本路徑方式和數(shù)據(jù)流方式對其進展白盒測試,三角形問題和ne*tday問題沒有出現(xiàn)什么錯誤,只是傭金問題中沒有按照實驗要求設(shè)置總銷售額這一變量,在白盒測試時對其進展了修改。航空大學(xué)實驗報告2013年11月10日-課程名稱:軟件質(zhì)量保證與測試實驗名稱:編寫測試文檔班級:******:***同組人:指導(dǎo)教師評定:簽名:一、實驗?zāi)康恼莆諟y試文檔的編寫規(guī)。二、實驗要求針對三角形程序的邊界值測試問題,編寫測試文檔。三、測試方案容1引言1.1編寫目的本測試方案分為三道實驗題,分別為輸入三邊判斷該數(shù)值可以構(gòu)成什么形狀的三角形,輸入不同日期輸出不同情況下的后一天日期,根據(jù)不同的槍機槍托槍管的銷售量可以計算出相對應(yīng)的傭金數(shù)額,通過簡單的黑盒測試和白盒測試,將其對應(yīng)簡單用例的程序源代碼進展測試,發(fā)現(xiàn)其中的小問題,再次再對其代碼修改,最后形成可以滿足實驗要求的代碼。1.2背景說明:a測試方案所附屬的軟件系統(tǒng)的名稱;? 本程序的運行環(huán)境為windows*p/7(32位)操作系統(tǒng)? 在以上系統(tǒng)的環(huán)境下安裝win_tc程序應(yīng)用軟件?進入演示程序后,點擊運行,要是顯示"編譯成功〞,可開場進展系統(tǒng)運行?用戶對于所要答復(fù)的題目,輸入想要測試的數(shù)據(jù),輸入完全后,點擊回車,即可觀察到程序運行結(jié)果b.該開發(fā)工程的歷史,列出用戶和執(zhí)行此工程測試的計算中心,說明在開場執(zhí)行本測試方案之前必須完成的各項工作。三角形問題:在進展黑盒測試之前,需要對三角形問題進展簡單的概要分析,將不同的輸出情況進展歸納,針對于概要分析對其進展自認(rèn)為較為完整的編碼設(shè)計,在設(shè)計完整之后,對該程序代碼進展黑盒測試,也就是對其進展強健性邊界值測試、假設(shè)強健性等價類測試以及決策表測試。再者對測試所發(fā)現(xiàn)的問題進展修改源代碼,修改正確之后,畫出其程序流程圖,對應(yīng)畫出其節(jié)點圖,通過邏輯覆蓋方式對其進展白盒測試,最終經(jīng)過眾屢次修改,形成正確的代碼。Ne*tday函數(shù):在進展黑盒測試之前,需要對ne*tday函數(shù)進展簡單的概要分析,將不同的輸出情況進展歸納,針對于概要分析對其進展自認(rèn)為較為完整的編碼設(shè)計,在設(shè)計完整之后,對該程序代碼進展黑盒測試,也就是對其進展強健性邊界值測試、假設(shè)強健性等價類測試以及決策表測試。再者對測試所發(fā)現(xiàn)的問題進展修改源代碼,修改正確之后,畫出其程序流程圖,對應(yīng)畫出其節(jié)點圖,通過根底路徑方式對其進展白盒測試,最終經(jīng)過眾屢次修改,形成正確的代碼。傭金問題:在進展黑盒測試之前,需要對傭金問題進展簡單的概要分析,將不同的輸出情況進展歸納,針對于概要分析對其進展自認(rèn)為較為完整的編碼設(shè)計,在設(shè)計完整之后,對該程序代碼進展黑盒測試,也就是對其進展強健性邊界值測試、假設(shè)強健性等價類測試以及決策表測試。再者對測試所發(fā)現(xiàn)的問題進展修改源代碼,修改正確之后,畫出其程序流程圖,對應(yīng)畫出其節(jié)點圖,通過數(shù)據(jù)流測試方式對其進展白盒測試,最終經(jīng)過眾屢次修改,形-成正確的代碼。1.3定義列出本文件中用到的專門術(shù)語的定義和外文首字母組詞的原詞組。強健性邊界值測試:考慮超出題目要求的正確圍,運用七個點對其進展測試假設(shè)強健性等價類測試:考慮單缺陷的不同情況下輸入所對應(yīng)的有效無效等價類測試決策表:一種呈表格狀的圖形工具,適用于描述處理判斷條件較多,各條件又相互組合、有多種決策方案的情況邏輯覆蓋:通過對程序邏輯構(gòu)造的遍歷實現(xiàn)程序的覆蓋根本路徑測試:畫出程序控制流圖、節(jié)點圖,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,從而設(shè)計出測試用例的方法數(shù)據(jù)流測試:利用了變量之間的關(guān)系,通過定義使用路徑和程序片得到一系列的測試指標(biāo)用于衡量功能性測試的覆蓋率1.4參考資料列出要用到的參考資料,如:軟件測試技術(shù)教程軟件測試技術(shù)PPT 段喜龍教師編著2方案2.1軟件說明提供一份圖表,并逐項說明被測軟件的功能、輸入和輸出等質(zhì)量指標(biāo),作為表達(dá)測試方案的提綱。輸入條件預(yù)期輸出實際輸出用例狀態(tài)測試用例abc0100100提示"輸入圍不合理〞提示"輸入圍不合理〞failTest1Test1100100等腰三角形等腰三角形pass2Test2100100等腰三角形等腰三角形pass3Test100100100等邊三角形等邊三角形pass4Test199100100等腰三角形等腰三角形pass5Test200100100非三角形非三角形pass6Test201100100提示"輸入圍不合理〞提示"輸入圍不合理〞fail7Test1000100提示"輸入圍不合理〞提示"輸入圍不合理〞fail8Test1001100等腰三角形等腰三角形pass-9Test1002100等腰三角形等腰三角形pass10Test100199100等腰三角形等腰三角形pass11Test100200100非三角形非三角形pass12Test100201100提示"輸入圍不合理〞提示"輸入圍不合理〞fail13Test11001000提示"輸入圍不合理〞提示"輸入圍不合理〞fail4Test11001001等腰三角形等腰三角形pass5Test11001002等腰三角形等腰三角形pass6Test1100100199等腰三角形等腰三角形pass7Test1100100200非三角形非三角形pass8Test1100100201提示"輸入圍不合理〞提示"輸入圍不合理〞fail9測試用例:是對要進展測試的數(shù)據(jù)進展編號,使其容易區(qū)分,方便之后的文字分析輸入數(shù)據(jù):在輸入數(shù)據(jù)欄中分為了不同數(shù)據(jù),分別表示了題中所要輸入的數(shù)據(jù)值預(yù)期輸出:指的是在程序沒有語法錯誤以及邏輯錯誤的前提下,可以正確運行出來的實驗結(jié)果實際輸出:對于所要測試的程序代碼,將數(shù)值帶入其中可以測試出來的測試結(jié)果數(shù)據(jù)用例狀態(tài):指的是判斷程序輸入是否可以得到正確相對應(yīng)的輸出,正確則為pass,否為fail2.2測試容列出組裝測試和確認(rèn)測試中的每一項測試容的名稱標(biāo)識符、這些測試的進度安排以及這些測試的容和目的強健性邊界值測試:通過該測試對三角形問題、ne*tday函數(shù)、傭金問題進展測試,除了ne*tday出現(xiàn)了沒有對月份以及天數(shù)的控制之外,都可滿足要求假設(shè)強健性等價類測試:通過該測試對三角形問題、ne*tday函數(shù)、傭金問題進展測試,在三角形問題中出現(xiàn)了對應(yīng)錯誤,無法對輸入的非整數(shù)進展對應(yīng)輸出,以及無法對等腰直角三角形進展判斷決策表:通過該測試對三角形問題、ne*tday函數(shù)、傭金問題進展測試,發(fā)現(xiàn)不是所有的代碼都適合進展決策表測試,比方傭金問題就不適合,因為其輸入的不同數(shù)值與輸出數(shù)據(jù)間存在嚴(yán)重的邏輯關(guān)聯(lián),無法對于進展條件樁與動作樁的良好區(qū)分與對應(yīng)邏輯覆蓋:通過該測試對三角形問題進展測試,沒有發(fā)現(xiàn)較大的問題,就是在條件判斷語句中,判斷語句較為的繁瑣,在條件覆蓋以及條件組合覆蓋中不是很簡易根本路徑測試:通過該測試對ne*tday函數(shù)進展測試,測試效果顯著,沒有發(fā)現(xiàn)問題數(shù)據(jù)流測試:通過該測試對傭金問題進展測試,測試效果顯著,沒有發(fā)現(xiàn)問題-2.3測試1〔標(biāo)識符〕被測試的部位:三角形問題:if((a>=1&&a<=200)&&(b>=1&&b<=200)&&(c>=1&&c<=200)){if(a+b>c&&a+c>b&&b+c>a)if((a*a+b*b-c*c<=e-2)||(a*a+c*c-b*b<=e-2)||(c*c+b*b-a*a)<=e-2){ if(a==b||b==c||a==c)printf("等腰直角三角形\n");elseprintf("直角三角形\n"); }else{if(a==b||b==c||a==c)if(a==b&&a==c)elseelse

printf("等邊三角形\n");printf("等腰三角形\n");printf("一般三角形\n");}elseprintf("非三角形\n");}else printf("輸入圍不合理\n");Ne*tday函數(shù):if((year>=1900&&year<=2100)&&(month>=1&&month<=12)&&(day>=1&&day<=31)){if(month<12) {if(year%4||year%100&&!(year%400)){if(b[month-1]>day){d=day+1;m=month;y=year;printf("%d/%d/%d\n",y,m,d);}elseif(b[month-1]==day){d=1;m=month+1;y=year;printf("%d/%d/%d\n",y,m,d);}elseprintf("輸入錯誤\n");}else{if(a[month-1]>day){d=day+1;m=month;y=year;printf("%d/%d/%d\n",y,m,d);}else-{d=1;m=month+1;y=year;printf("%d/%d/%d\n",y,m,d);}}}else{ if(a[month-1]>day||b[month-1]>day)printf("%d/%d/%d",year,month,day+1);elseprintf("%d/1/1",year+1);}}elseprintf("超出圍\n");傭金問題:if((*>=1&&*<=70)&&(y>=1&&y<=80)&&(z>=1&&z<=90)){n=45**+30*y+25*z;if(n<=1000)printf("槍機數(shù)%d、槍托數(shù)%d、槍管數(shù)%d、總銷售額%d、傭金%f",*,y,z,n,0.1*n);else if(n<=1800)printf("槍機數(shù)%d、槍托數(shù)%d、槍管數(shù)%d、總銷售額%d、傭金%f",*,y,z,n,0.15*n);elseprintf("槍機數(shù)%d、槍托數(shù)%d、槍管數(shù)%d、總銷售額%d、傭金%f",*,y,z,n,0.2*n);}elseprintf("輸入圍不合理\n");2.3.1進度安排2013年10月20日進展第一次實驗,對三個問題分別進展編寫源代碼任務(wù)2013年10月27日進展第二次實驗,分別對之前編寫的源代碼進展功能性測試,也就是黑盒測試2013年11月3日進展第三次實驗,分別是對錢編寫的源代碼進展白盒測試2013年11月11日進展第四次實驗,主要是對之前的所有工作進展總結(jié)修改,以及編寫實驗文檔2.3.2條件述本項測試工作對資源的要求,包括:a.設(shè)備所用到的設(shè)備類型、數(shù)量和預(yù)定使用時間;b.軟件列出將被用來支持本項測試過程而本身又并不是被測軟件的組成局部的軟件,如測試驅(qū)動程序、測試監(jiān)控程序、仿真程序、樁模塊等等;-c.人員列出在測試工作期間預(yù)期可由用戶和開發(fā)任務(wù)組提供的工作人員的人數(shù)。技術(shù)水平及有關(guān)的預(yù)備知識,包括一些特殊要求,如倒班操作和數(shù)據(jù)鍵入人員。2.3.3測試資料 此項軟件測試全過程是根據(jù)軟件測試技術(shù)教程和ppt進展對照修改,所完成的工程3測試設(shè)計說明3.1測試1〔標(biāo)識符〕對三角形問題進展測試之前的設(shè)計,主要是考慮針對這個問題可能出現(xiàn)的輸出結(jié)果,其中包括合法的不合法的均要考慮,同時還要思考不同對應(yīng)的情況的判斷流程,使之能夠有條有序不浪費循環(huán)的輸出出來3.1.1控制該工程除了運行之外,均是人工操作。在測試中,首先是是人工選擇數(shù)值進展測試輸入,在程序進展運行完畢之后,對其輸出結(jié)果進展畫表格進展人工記錄。從而,從中發(fā)現(xiàn)錯誤及要修改的容3.1.2輸入 在數(shù)值的輸入方面不是隨意的進展輸入,而且進展有條理的,針對不同測試意愿進展輸入,只要在程序源代碼沒有錯誤的前提下,從而可以得到預(yù)想要的實驗結(jié)果。對于輸出結(jié)果,主要是之前可以對應(yīng)輸出來輸入,在對其進展歸納,可以得到想要的結(jié)果3.1.3輸出如:三角形問題:在輸入2,2,2時,預(yù)期是可以輸出"等邊三角形〞的在輸入2,2,2.828時,預(yù)期是可以輸出"等腰直角三角形〞的3.1.4過程在準(zhǔn)備好實驗運行源代碼之后,需要先對點win_tc的運行鍵,在該程序運行顯示"編譯成功〞后才可以在出現(xiàn)的對話框中輸入想要輸入的數(shù)值,點擊回車鍵后,便可出現(xiàn)實驗實際輸出結(jié)果。如果,程序在運行時顯示"編譯失敗,請修改代碼〞則需要繼續(xù)修改代碼,發(fā)現(xiàn)其中的邏輯語法錯誤,直到可以成功運行為止3.2測試2〔標(biāo)識符〕對ne*tday函數(shù)進展測試之前的設(shè)計,主要是考慮針對這個問題可能出現(xiàn)的輸出結(jié)果,其中包括合法的不合法的均要考慮,同時還要思考不同對應(yīng)的情況的判斷流程,使之能夠有條有序不浪費循環(huán)的輸出出來。在這個問題中,比擬繁瑣,因為在輸出下一天的過程中,會出現(xiàn)眾多不同輸出判斷語句,需要對其進展思維整理4評價準(zhǔn)則4.1圍 該三個工程的測試圍只能是整數(shù)以及小數(shù),無法對分?jǐn)?shù),以及帶有特殊數(shù)值符號的數(shù)據(jù)進展測試,這個問題是這個程序所不能解決的,也就是這個設(shè)計的一定局限性4.2數(shù)據(jù)整理-述為了把

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論