【正文】
ElseIf optCheck(2).Value = True Then 39。This is check if your query by is null If Trim() = Then MsgBox Please input bookAuthor name in order to query !, vbInformation + vbOKOnly 39。Reference function to ger data Exit Sub End If StrSql = select * from tBooks where cBooksAuthor like39。% amp。 Trim() amp。 %39。 GetData StrSql 39。Reference to get data If = 0 Then MsgBox This author do not exist,please input another author or choose another query way!, vbInformation + vbOKOnly = EnabledSet 39。Reference function to set checkbox enabled CheckConnect 39。Reference function if objrs is open then close it optCheck(2).Value = 0 = False Exit Sub End If optCheck(2).Value = False ElseIf optCheck(3).Value = True Then 39。This is check if your query is null If Trim() = Then MsgBox Please input Publisher name in order to query !, vbInformation + vbOKOnly 39。Reference function to get data Exit Sub End If StrSql = select * from tBooks where cBooksPublisher like 39。% amp。 Trim(txtBookPublisher) amp。 %39。 GetData StrSql 39。Reference function to get data If = 0 Then MsgBox This publisher do not exist,please input another publisher or choose another query way!, vbInformation + vbOKOnly = optCheck(3).Value = False EnabledSet 39。Reference function to set checkbox enabled CheckConnect 39。Reference function if objrs is open then close it = False Exit Sub End If optCheck(3).Value = False Else Exit Sub 39。If you don39。t choice query then exit sub End If Set = objRs 39。change columns name (0).Caption = 圖書編號 (1).Caption = 圖書名稱 (2).Caption = ISBN號 (3).Caption = 作者 (4).Caption = 出版社 (5).Caption = 類別 (6).Caption = 價格 (7).Caption = 藏書數(shù)量 (8).Caption = 庫存數(shù)量 39。Bond data to text = (0).Value = (1).Value = (3).Value = (4).Value End If = False EnabledSet 39。Reference function to set checkbox enabled End SubPrivate Sub Form_Activate() FormMiddle frmBookQuery 39。Reference function to make form in MDIForm39。mddileEnd Sub第六章 測試分析報告有兩種基本方法可以用來標識測試用例,即功能測試(黑盒測試)和結(jié)構測試(白盒測試)。本次測試我主要采用了功能測試。功能測試的基本觀點是,任何程序都可以看作是將輸入定義域取值映射到輸出值域的函數(shù)。 測試計劃和要點軟件測試的本質(zhì)是針對要測試的內(nèi)容確定一組測試用例。在討論之前,我先把要測試各個模塊的計劃和要點列出: 主模塊測試要點數(shù)據(jù)庫連接情況:正常情況,數(shù)據(jù)庫文件缺少,外部系統(tǒng)異常。系統(tǒng)設置獲?。赫G闆r,外部系統(tǒng)異常。對用戶輸入的響應:合法輸入,能夠正常調(diào)用子模塊; 非法輸入,系統(tǒng)能否辨別,并作出響應(提出警告); 子模塊的異常狀況,系統(tǒng)能否及時做出響應。 借閱模塊測試要點模塊正常運行流程用戶輸入數(shù)據(jù)檢查(學生學號、圖書書號),包括數(shù)據(jù)合理性檢查,以及合法性檢查數(shù)據(jù)庫操作數(shù)據(jù)庫連接異常時的響應情況 學生查詢模塊測試要點數(shù)據(jù)庫連接正常時輸入合理合法參數(shù)輸入?yún)?shù)不合理輸入?yún)?shù)不合法數(shù)據(jù)庫連接異常;數(shù)據(jù)庫數(shù)據(jù)異常(讀者姓名為空) 圖書查詢模塊測試要點數(shù)據(jù)庫連接正常數(shù)據(jù)庫數(shù)據(jù)正常輸入的書號合理合法輸入的書號不合理輸入的書號不合法數(shù)據(jù)庫數(shù)據(jù)異常數(shù)據(jù)庫連接異常 圖書歸還模塊測試要點模塊正常工作流程對輸入的查驗,包括輸入值的合法性與合理性檢驗數(shù)據(jù)庫連接異常能否做出適當處理數(shù)據(jù)庫數(shù)據(jù)異常時能否判斷并給予適當處理 測試用例測試用例是為了特定目的(如考察特定程序路徑或驗證是否符合特定的需求)而設計的測試數(shù)據(jù)及與之相關的測試規(guī)程的一個特定的集合,或稱為有效地發(fā)現(xiàn)軟件缺陷的最小測試執(zhí)行單元。根據(jù)上一節(jié)給出的測試要點,又因為測試是不可能窮舉的。所以我們采用等價劃分法來進行對圖書管理系統(tǒng)的測試。它將不能窮舉的測試過程進行合理分類,從而保證設計出來的測試用例具有代表性和完整性。 主模塊測試用例表61 主模塊測試用例字段名稱描 述標識符C1測試項主模塊中的“系統(tǒng)”菜單欄,“業(yè)務”菜單欄的功能測試輸入標準,沒有任何輸入字符,點擊相應的菜單欄項目。,打開主模塊。輸出標準,單擊“系統(tǒng)”|“退出”命令,能正常退出,無提示信息。,未做任何操作,單擊“系統(tǒng)”|“退出”命令,能正常退出,無提示信息。,做相關的增刪或修改操作,未保存,單擊“系統(tǒng)”|“退出”命令,提示“修改信息未保存,保存修改嗎?”單擊“Yes”,保存修改,正常退出,單擊“No”,不保存修改,并退出。 借閱模塊測試用例表62 借閱模塊測試用例字段名稱描 述標識符C2測試項借閱模塊的功能測試輸入標準,沒有任何輸入字符,點擊相應的項目。、圖書號、借閱號,點擊“登記”。、圖書號、借閱號,點擊“登記”。輸出標準,單擊 “退出”命令,能正常退出,無提示信息。,做相關的“借出”操作,未保存,單擊 “退出”命令,提示“修改信息未保存,保存修改嗎?”單擊“Yes”,保存修改,正常退出,單擊“No”,不保存修改,并退出。 學生查詢模塊測試用例表63 學生查詢模塊測試用例字段名稱描 述標識符C3測試項學生查詢模塊的功能測試輸入標準,沒有任何輸入字符,點擊相應的項目。、姓名,點擊“確定”。、姓名,點擊“確定”?!鞍葱彰樵儭眴芜x時,輸入學號,點擊“確定”?!鞍磳W號查詢”單選時,輸入姓名,點擊“確定”。輸出標準,單擊 “退出”命令,能正常退出,無提示信息。 圖書查詢模塊測試用例表64 圖書查詢模塊測試用例字段名稱描 述標識符C4測試項圖書查詢模塊的功能測試輸入標準,沒有任何輸入字符,點擊相應的項目。、作者、出版社,點擊“確定”。、作者、出版社,點擊“確定”?!鞍磿樵儭眴芜x時,輸入作者或出版社,點擊“確定”?!鞍醋髡卟樵儭眴芜x時,輸入書名或出版社,點擊“確定”?!鞍闯霭嫔绮樵儭眴芜x時,輸入書名或作者,點擊“確定”。輸出標準,單擊 “退出”命令,能正常退出,無提示信息。 圖書歸還模塊測試用例表65 圖書歸還模塊測試用例字段名稱描 述標識符C5測試項圖書歸還模塊的功能測試輸入標準,沒有任何輸入字符,點擊相應的項目。、圖書號,點擊“登記”。、圖書號,點擊“登記”。輸出標準,單擊 “退出”命令,能正常退出,無提示信息。,做相關的“借出”操作,未保存,單擊 “退出”命令,提示“修改信息未保存,保存修改嗎?”單擊“Yes”,保存修改,正常退出,單擊“No”,不保存修改,并退出。 測試結(jié)果及結(jié)論 測試的結(jié)果。表66 主模塊測試結(jié)果標識符C1測試結(jié)果正常操作無任何異常處理出現(xiàn)與預期的偏差無說明的問題主模塊通過了功能測試表67 借閱模塊測試結(jié)果標識符C2測試結(jié)果在輸入借閱號但是未輸入圖書號或?qū)W生學號時,系統(tǒng)也能給出正確的借閱成功信息與預期的偏差應該在借閱圖書時,輸入完整的借閱信息,包括借閱號、圖書號、學生學號和借閱時間說明的問題圖書借閱模塊的借閱功能有待改進表68 學生查詢模塊測試結(jié)果標識符C3測試結(jié)果在單選“按姓名查詢”時,輸入學生學號也能查詢到學生的相關信息。在單選“按學號查詢”時,輸入學生姓名也能查詢到學生的相關信息。與預期的偏差應該在單選按“姓名”或“學號”查,只能通過選中的方式查詢學生的相關信息。說明的問題學生查詢模塊的借閱功能有待改進表69 圖書查詢模塊測試結(jié)果標識符C4測試結(jié)果正常操作無任何異常處理出現(xiàn)與預期的偏差無說明的問題圖書查詢模塊通過了功能測試表610 圖書歸還模塊測試結(jié)果標識符C5測試結(jié)果正常操作無任何異常處理出現(xiàn)與預期的偏差無說明的問題圖書歸還模塊通過了功能測試 缺陷分析及改進本部分對上述缺陷和其他收集數(shù)據(jù)進行綜合分析 缺陷發(fā)現(xiàn)效率 = 缺陷總數(shù)/執(zhí)行測試用時 = 2/(5天) = /天用例質(zhì)量 = 缺陷總數(shù)/測試用例總數(shù) 100% = 2/5 100% = 40%在測試用例C2和C3中,發(fā)現(xiàn)的缺陷,通過對相關功能編碼的改進,已經(jīng)使測試的結(jié)果和預期達到的效果一致。 測試結(jié)論 1. 測試目標完成 2. 測試已經(jīng)通過 3. 可以進入下一階段項目目標總結(jié)這次軟件工程課程設計,我主要采用Visual Basic作為前臺開發(fā)工具,Microsoft SQL Severe2000作為后臺數(shù)據(jù)庫,結(jié)合軟件工程設計和數(shù)據(jù)庫編程的有關知識,開發(fā)了這個圖書管理系統(tǒng)。通過這次軟件工程課程設計,我對于軟件工程設計的相關步驟和流程有了更深刻的理解,熟悉并掌握了Microsoft SQL ,另一方面,也對SQL語言作為嵌入式語言的功能有了更深刻的體會。同時,我也發(fā)現(xiàn)自己對于軟件工程設計和數(shù)據(jù)庫設計的知識掌握的還不夠,設計和編程能力還有待于進一步提高。這次課程設計給了我一個鍛煉自己,強化專業(yè)知識的機會,通過這次課程設計,我也得以一窺軟件工程設計的廣袤天地,我相信,只要認真學習,多借鑒別人的經(jīng)驗,多思考,多實踐,就一定能夠成為一個合格的軟件設計人員,能夠翱翔在軟件開發(fā)的天地。同時,在這里感謝我的指導老師趙旭俊老師的悉心指導。參考文獻[1](第四版).北京:清華大學出版社,2003年12月[2]:清華大學出版社,2005年7月[3]Paul (第二版).北京:機械工業(yè)出版社,2006年2月[4]郭勝, :機械工業(yè)出版社,2004年4月[5] :機械工業(yè)出版社,2005年3月