學(xué)生選課系統(tǒng)-黑盒測試_第1頁
學(xué)生選課系統(tǒng)-黑盒測試_第2頁
學(xué)生選課系統(tǒng)-黑盒測試_第3頁
學(xué)生選課系統(tǒng)-黑盒測試_第4頁
學(xué)生選課系統(tǒng)-黑盒測試_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)報告 課程名稱:軟件測試方法和技術(shù) 學(xué)生姓名:劉成立、龍?zhí)?學(xué)號14122402596 院系:計(jì)算機(jī) 班級:1202 組別:1任課教師:張建東 指導(dǎo)老師:張建東目錄一、黑盒測試方法相關(guān)概念: 1.1黑盒測試定義:1.2黑盒測試分類:1.3黑盒測試優(yōu)缺點(diǎn):2、 學(xué)生選課系統(tǒng),選課、退選功能結(jié)構(gòu):2.1選課、退選層次圖:2.2選課、退選流程圖: 三、等價類劃分法: 3.1:等價類劃分法過程分析: 3.2:等價類劃分法測試用例: 四、邊界值分析法: 4.1:邊界值分析法過程分析: 4.2:邊界值分析法測試用例: 五、實(shí)驗(yàn)總結(jié): 六、測試截圖: 七、源代碼: 實(shí)驗(yàn)二 黑盒

2、測試用例設(shè)計(jì)一、黑盒測試方法相關(guān)概念:1.1黑盒測試定義: 黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進(jìn)行測試。1.2黑盒測試分類:黑盒測試用例設(shè)計(jì)方法包括等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅(qū)動法、正交試驗(yàn)設(shè)計(jì)法、功能圖法等。1.3黑盒測試優(yōu)缺點(diǎn): 優(yōu)點(diǎn):黑盒測試是以用

3、戶的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對應(yīng)關(guān)系出發(fā)進(jìn)行測試的。能夠直觀的檢驗(yàn)軟件功能是否符合用戶的需求;功能是否正確、有無遺漏;發(fā)現(xiàn)界面錯誤,是否美觀、輸入和輸出錯誤、數(shù)據(jù)庫訪問錯誤、功能操作邏輯不合理、初始化和終止錯誤等。缺點(diǎn):軟件外部特性本身設(shè)計(jì)有問題或規(guī)格說明的規(guī)定有誤,黑盒測試方法發(fā)現(xiàn)不了。2、 學(xué)生選課系統(tǒng),選課、退選功能層次圖:2.1、選課、退選層次圖:學(xué)生選課系統(tǒng)學(xué)生入口選課退選選課查詢2.2選課、退選流程圖:2.2.1學(xué)生選課系統(tǒng)選課流程圖:T輸出:該課程不存在a=0?AFb>0&&b<CnoFBTc=1?FCT 選課是否重新選課?Te=1?d=1?TDE

4、輸出:這門課程選過了FTFHh=max?輸出:這門課人數(shù)已滿F輸出:選課成功!注釋:條件A為,判定課程號是否存在? 條件B為,判定是否在課程號范圍內(nèi)? 條件C為,判定是否確認(rèn)選課? 條件D為,判斷該課程是否已經(jīng)選過了? 條件E為,判定是否繼續(xù)選課? 條件H為,判定選課人數(shù)是否已滿?2.2.2學(xué)生選課系統(tǒng)退選流程圖:AT輸出:課程號輸入有誤a>Cno|a<0FBT輸出:該課程不存在b=0?CF是否重新退選課?c=1?退選課程TFTd=1?D輸出:退選成功F輸出:你還未選此門課程注釋:條件A為,判定課程號是否輸入有誤? 條件B為,判定課程號是否存在? 條件C為,判斷是否重新退選? 條件

5、D為,判定退選是否成功?三、等價類劃分法: 3.1:等價類劃分法過程分析: 3.1.1等價類劃分法基本思想:用一組有限的數(shù)據(jù)去代表近似無限的數(shù)據(jù)。3.1.2等價類劃分法的定義:等價類劃分法是把程序的輸入域劃分成若干部分(子集),然后從每個部分中選取少數(shù)代表性數(shù)據(jù)作為測試用例。每一類的代表性數(shù)據(jù)在測試中的作用等價于這一類中的其他值。3.2:等價類劃分法測試:3.2.1等價類劃分: 輸入合理等價類不合理等價類選課課程號1<=n<=61、有非數(shù)字字符;2、N>63、N<1選課確認(rèn)輸入1或者21、有非數(shù)字字符;2、輸入大于2的數(shù)字3、輸入小于1的數(shù)字是否繼續(xù)選課選項(xiàng)輸入1或者2

6、1、有非數(shù)字字符;2、輸入大于2的數(shù)字3、輸入小于1的數(shù)字退選課程號已選課程號1、有非數(shù)字字符;2、輸入未選課程號3、輸入課程號范圍外的數(shù)字是否繼續(xù)退選輸入1或者21、有非數(shù)字字符;2、輸入大于2的數(shù)字3、輸入小于1的數(shù)字3.2.2測試用例的設(shè)計(jì):編號輸入實(shí)際輸入預(yù)期結(jié)果Ok/NgP1選課課程號輸入非數(shù)字字符;輸入數(shù)據(jù)類型錯誤,請重新輸入NGP2輸入大于6的數(shù)字該課程不存在OKP3輸入小于1的數(shù)字該課程不存在OKP4選課確認(rèn)輸入非數(shù)字字符;輸入數(shù)據(jù)類型錯誤,請重新輸入NGP5輸入大于2的數(shù)字是否繼續(xù)選課OKP6輸入小于1的數(shù)字是否繼續(xù)選課OKP7是否繼續(xù)選課輸入非數(shù)字字符;輸入數(shù)據(jù)類型錯誤,請

7、重新輸入NGP8輸入大于2的數(shù)字按任意鍵返回OKP9輸入小于1的數(shù)字按任意鍵返回OKP10退選課程號輸入非數(shù)字字符;輸入數(shù)據(jù)類型錯誤,請重新輸入NGP11輸入未選課程號該課程還未選OKP12輸入課程號范圍外的數(shù)字該課程不存在OKP13是否繼續(xù)退選輸入非數(shù)字字符;輸入數(shù)據(jù)類型錯誤,請重新輸入NGP14輸入大于2的數(shù)字按任意鍵返回OKP15輸入小于1的數(shù)字按任意鍵返回OK 四、邊界值分析法邊界值分析法就是在某個輸入輸出變量范圍的邊界上,驗(yàn)證系統(tǒng)功能是否正常運(yùn)行的測試方法。1、輸入條件:輸入身份序號。測試用例:(1) 輸入0或4,測試結(jié)果為:程序運(yùn)行結(jié)束,并且無任何提示信息。(2) 輸入1,測試結(jié)果

8、為:進(jìn)入學(xué)生登陸界面,等待用戶輸入。(3) 輸入3,測試結(jié)果為:進(jìn)入管理員界面,等待管理員輸入。2、輸入條件:輸入登陸賬號。輸入:數(shù)字16。輸入:數(shù)字16以外的數(shù)字。輸入16之間的數(shù)字才會進(jìn)入到選課界面,超出范圍的任何數(shù)字都對提示出錯。說明只有內(nèi)置的幾個學(xué)生學(xué)號能實(shí)現(xiàn)正常的登陸。2、輸入條件:輸入選課操作。(1) 輸入0或4界面在沒有任何提示的情況下直接跳轉(zhuǎn)到了主界面,讓人非常意外。并且可以繼續(xù)操作。(2)輸入1:顯示該學(xué)生已選的課程。(3)輸入3:顯示該學(xué)生已選的課程,并且等待輸入要退選課程的課程號。3、輸入條件:輸入要選課程的課程序號(1) 輸入0提示該課程不存在,等待輸入是否繼續(xù)選課。5

9、、 實(shí)驗(yàn)總結(jié): 在測試中,也出現(xiàn)了一些不足: 1、缺少對輸入數(shù)據(jù)類型的判斷,以及相應(yīng)的出錯處理; 2、功能邏輯上有問題,某些輸出信息不夠合理、人性化6、 測試截圖: 6.1等價類劃分法測試截圖:6.1.1選課課程號的輸入: 輸入小于1的課程號: 輸入大于6的課程號:輸入非數(shù)字的課程號: 程序出錯!6.1.2選課確認(rèn)選項(xiàng)的輸入:輸入小于1的數(shù)字:輸入大于2的數(shù)字:輸入非數(shù)字: 程序一閃而過,回到學(xué)生界面。6.1.3是否繼續(xù)選課確認(rèn)選項(xiàng)的輸入:輸入小于1的數(shù)字:輸入大于2的數(shù)字:輸入非數(shù)字: 程序顯示任意鍵返回,一閃而過,回到學(xué)生界面6.1.4退選課程號的輸入:輸入未選課程號:輸入不再課程號范圍內(nèi)

10、的數(shù)字:輸入非數(shù)字: 程序出錯。6.1.5退選課程號的確認(rèn):輸入小于1的數(shù)字:輸入大于2的數(shù)字:輸入非數(shù)字: 程序出錯!七、源代碼:void select(int XH) /*選課*/ leap1: system("color 70"); int cn,i,j,Cn,k;int p=0;char t20;printf("課程號 課程名 上課時間 上課地點(diǎn) 上課老師 老師編號 課程人數(shù)n"); /*添加*/for(k=0;k<=CPMAX;k+) /*添加*/if(Couk.Cno=0) break;for(i=0;i<k;i+)printf(

11、"%3d %10s %9.2f",Coui.Cno,Coui.Cname,Coui.time);printf(" %10s %8s %9d %9dn",Coui.place,Coui.teacher,Coui.Tno,Coui.pn); /*添加*/printf("請輸入課程序號n");scanf("%d",&cn);Cn=cn-1; if(CouCn.Cno=0) printf("該課程不存在n");printf("是否繼續(xù)選課? 1 是 2 否n");scanf(

12、"%d",&j);if(j=1) system("cls");goto leap1; else if(Cn<CNO&&Cn>=0)printf("課程號 課程名 上課時間 上課地點(diǎn) 上課老師 老師編號 課程人數(shù)n");printf("%3d %10s %9.2f",CouCn.Cno,CouCn.Cname,CouCn.time);printf(" %10s %8s %9d %9dn",CouCn.place,CouCn.teacher,CouCn.Tno,C

13、ouCn.pn);printf("是否選擇該課程? 1 是 2 否n");scanf("%d",&j);if(j=1)for(j=1;j<(SCMAX-1);j+)if(StudentXHj=cn) p=1;if(p=1) printf("該門課程已經(jīng)選過了n");printf("是否重新選課?1 是 2 否n");scanf("%d",&i);if(i=1) system("cls");goto leap1;else if(StudentXHSCMAX

14、-1>0) printf("你所選課程已滿不能再進(jìn)行選擇n"); else if(CouCn.pn=CPMAX) printf("該門課人數(shù)已滿");printf("是否重新選課?1 是 2 否n");scanf("%d",&i);if(i=1) system("cls");goto leap1; /*1111*/elseif(StudentXH1=0) StudentXH1=CouCn.Cno;else if(StudentXH2=0) StudentXH2=CouCn.Cno;

15、else if(StudentXH3=0) StudentXH3=CouCn.Cno;elseStudentXH4=CouCn.Cno;CouCn.pn=CouCn.pn+1;printf("選課成功!n");printf("是否繼續(xù)選課? 1 是 2 否n"); scanf("%d",&j); if(j=1) system("cls");goto leap1; else printf("是否繼續(xù)選課? 1 是 2 否n"); scanf("%d",&j);

16、if(j=1) system("cls");goto leap1;else printf("該課程不存在n");printf("是否繼續(xù)選課? 1 是 2 否n");scanf("%d",&j);if(j=1) system("cls");goto leap1;printf("任意鍵返回n");scanf("%s",&t);system("cls");printf("%s歡迎回來!n",SXH.Sna

17、me);system("color 80");printf(" #n");printf(" # #n");printf(" # #n"); printf(" # 1 選課查詢 #n");printf(" # #n");printf(" # 2 選課 #n");printf(" # #n");printf(" # 3 選課退選 #n");printf(" # #n");printf(" #

18、 #n");printf(" # B返回 #n");printf(" #n");scanf("%d",&i);if(i=1) system("cls");search(XH); else if(i=2) system("cls");select(XH);else if(i=3) system("cls");DropC(XH); else system("cls"); jiemian();void DropC(int XH) /*課程退選*

19、/leap2: int i,j,k;char l20;int m=0;printf("您已選擇的課程為:n");printf("課程號 課程名 上課時間 上課地點(diǎn) 上課老師 老師編號 課程人數(shù)n");for(j=1;j<=4;j+)if(StudentXHj=0) printf("空n"); elseprintf("%3d %10s %9.2f ",CouStudentXHj-1.Cno,CouStudentXHj-1.Cname,CouStudentXHj-1.time);printf(" %7s

20、 %8s %9d %9dn",CouStudentXHj-1.place,CouStudentXHj-1.teacher,CouStudentXHj-1.Tno,CouStudentXHj-1.pn); /*輸出所查詢的課程*/printf("請輸入退選的課程號:n");scanf("%d",&i);if(i>CNO|i<0) printf("輸入有誤n");goto leap2;else if(Coui-1.Cno=0)printf("該課程不存在n");printf("是

21、否重新退選課程?1 是 2 否n");scanf("%d",&k);if(k=1) system("cls"); goto leap2;elsefor(j=1;j<=4;j+)if(StudentXHj=Coui-1.Cno) m=1;break;if(m=1) StudentXHj=0; Coui-1.pn=Coui-1.pn-1;printf("退選成功!n");printf("是否繼續(xù)退選課程? 1是 2 否n");scanf("%d",&k);if(k=1) system("cls"); goto leap2;elseprintf("你還沒選擇這門課程n"); printf("是否重新退選課程?1 是 2 否n");scanf("%d",&k);if(k=1) syst

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論