【正文】
通過(guò)對(duì)系統(tǒng)的全面測(cè)試,我學(xué)到了許多測(cè)試方面的知識(shí),了解到測(cè)試方法、測(cè)試經(jīng)驗(yàn)。如果輸入的用戶(hù)名密碼錯(cuò)誤。 測(cè)試用例設(shè)計(jì)要求 一個(gè) 好 的測(cè)試用例,應(yīng)該包含以下信息: 軟件或項(xiàng)目的名稱(chēng) 軟件或項(xiàng)目的版本(內(nèi)部版本號(hào)) 功能模塊名 測(cè)試用例的簡(jiǎn)單描述,即該用例執(zhí)行的目的或方法 測(cè)試用例的參考信息(便于跟蹤和參考) 本測(cè)試用例與其他測(cè)試用例間的依賴(lài)關(guān)系 本用例的前置條件,即執(zhí)行本用例必須要滿(mǎn)足的條件,如對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)權(quán)限 用例的編號(hào)( ID),如可以是 : 軟件名稱(chēng)簡(jiǎn)寫(xiě) 功能塊簡(jiǎn)寫(xiě) NO. 步驟號(hào)、操作步驟描述、測(cè)試數(shù)據(jù)描述 預(yù)期結(jié)果(這是最重要的)和實(shí)際結(jié)果(如果有 BUG 管理工具,這條 寧夏師范學(xué)院 2022 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 第 26 頁(yè) 可以省略) 1 開(kāi)發(fā)人員(必須有)和測(cè)試人員(可有可無(wú)) 1 測(cè)試執(zhí)行 日期 系統(tǒng)部分模塊測(cè)試用例 本系統(tǒng)注冊(cè)時(shí)所填信息有誤。 E 類(lèi)錯(cuò)誤:測(cè)試正確 —— 正確的測(cè)試項(xiàng)、測(cè)試結(jié)果與預(yù)期的一致等。 C 類(lèi)錯(cuò)誤:功能缺陷 —— 功能操作不方便、缺少操作提示等。 測(cè)試中的錯(cuò)誤分類(lèi): A 類(lèi)錯(cuò)誤:致命錯(cuò)誤 —— 引起程序異常中斷或死機(jī)的錯(cuò)誤等。通常的程序結(jié)構(gòu)覆蓋有:語(yǔ)句覆蓋,判定覆蓋,條件覆蓋,判定 /條件覆蓋,路徑覆蓋。 寧夏師范學(xué)院 2022 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 第 25 頁(yè) 白盒測(cè)試 白盒測(cè)試又稱(chēng)為結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于程序的測(cè)試,一般用來(lái)分析程序的內(nèi)部結(jié)構(gòu)。 黑盒測(cè)試用例的設(shè)計(jì)可以和軟件實(shí)現(xiàn)同時(shí)進(jìn)行,這樣能夠壓縮總的開(kāi)發(fā)時(shí)間。 黑盒測(cè)試主要根據(jù)規(guī)格說(shuō)明書(shū)設(shè)計(jì)測(cè)試用例,并不涉及程序內(nèi)部構(gòu)造和內(nèi)部特性,只依靠被測(cè)程序輸入和輸出之間的關(guān)系或程序的功能設(shè)計(jì)測(cè)試用例。 黑盒測(cè)試又稱(chēng)為功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試和基于規(guī)格說(shuō)明的測(cè)試。 黑盒與白盒測(cè)試 黑盒測(cè)試 按照軟件測(cè)試用例的設(shè)計(jì)方法而論,軟件測(cè)試可以分為白盒測(cè)試法和黑盒測(cè)試法。 動(dòng)態(tài)測(cè)試 動(dòng)態(tài)測(cè)試方法是指計(jì)算機(jī)必須真正運(yùn)行被測(cè)試的程序,通過(guò)輸入測(cè)試用例,對(duì)其運(yùn)行情況即輸入與輸出的對(duì)應(yīng)關(guān)系進(jìn)行分析,以達(dá)到檢測(cè)的目的。靜態(tài)測(cè)試包括:代碼檢查 、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。 靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試 按照軟件測(cè)試分析與非分析方法而論,軟件測(cè)試可以分靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。一個(gè)好的測(cè)試用例在于發(fā)現(xiàn)了還未曾發(fā)現(xiàn)的錯(cuò)誤;一次成功的測(cè)試則是發(fā)現(xiàn)了錯(cuò)誤的測(cè)試。 軟件測(cè)試目的 測(cè)試是程序的執(zhí)行過(guò)程,目的在于發(fā)現(xiàn)錯(cuò)誤;不能證明程序的正確性,除非僅處理有限種情況。統(tǒng)計(jì)表明,開(kāi)發(fā)較大規(guī)模的系統(tǒng),系統(tǒng)測(cè)試的工作量大約占整個(gè)軟件開(kāi)發(fā)工作量的 40%- 50%。盡管在系統(tǒng)開(kāi)發(fā)周期的各個(gè)階段均采取了嚴(yán)格的技術(shù)審查,但依然難免會(huì) 留下錯(cuò)誤,如果沒(méi)有在投入運(yùn)行前的系統(tǒng)測(cè)試階段被發(fā)現(xiàn)并糾正,問(wèn)題遲早會(huì)在運(yùn)行中暴露出來(lái),到那時(shí)要糾正錯(cuò)誤將會(huì)付出更大的代價(jià)。 綜合測(cè)試階段: 即在完成單元測(cè)試后進(jìn)行的測(cè)試,如集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試。 軟件生命周期:一個(gè)軟件生命周期包括制定計(jì)劃、需求分析定義、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試、軟件運(yùn)行、軟件維護(hù)、軟件停用等 8 個(gè)階段。 測(cè)試用例:所謂測(cè)試用例是為特定的目的而設(shè)計(jì)的一組測(cè)試輸入、執(zhí)行條件和預(yù)期的結(jié)果;測(cè)試用例是執(zhí)行測(cè)試的最小實(shí)體。測(cè)試活動(dòng)有兩種結(jié)果:找出缺陷和故障,或顯示軟件執(zhí)行正確。 軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼實(shí)現(xiàn)的最終審查,它是軟件質(zhì)量保證的關(guān)鍵步驟。頁(yè)面最上邊為導(dǎo)航條,點(diǎn)擊導(dǎo)航條可按不同分類(lèi)查詢(xún)商品信息,如圖所示: 圖 53 商品信息錄入頁(yè)面 購(gòu)物車(chē)模塊的設(shè)計(jì)與實(shí)現(xiàn) 當(dāng)用戶(hù)點(diǎn)擊購(gòu)買(mǎi)之后商品已存入購(gòu)物車(chē)中,在本系統(tǒng)中購(gòu)物車(chē)為 Map 集合,也就是說(shuō)商品存入了集合當(dāng)中,進(jìn)入購(gòu)物車(chē)后用戶(hù)可對(duì)商品數(shù)量進(jìn)行修改, 寧夏師范學(xué)院 2022 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 第 21 頁(yè) 也可對(duì)商品進(jìn)行刪除和恢復(fù)操作相關(guān)圖例如下: 購(gòu)物車(chē)只是暫時(shí)存儲(chǔ)數(shù)據(jù),一旦用戶(hù)確定夠買(mǎi)了一批商 品后,存儲(chǔ)在購(gòu)物車(chē)的數(shù)據(jù)將存入數(shù)據(jù)庫(kù)中,方便以后的各項(xiàng)工作的順利進(jìn)行。charset=utf8% % taglib uri=/strutstags prefix=s % !DOCTYPE html PUBLIC //W3C//DTD XHTML Transitional//EN 注冊(cè)成功頁(yè)面: 寧夏師范學(xué)院 2022 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 第 20 頁(yè) 商品展示模塊的設(shè)計(jì)與實(shí)現(xiàn) 本模塊主要按不同類(lèi) 別展示商品給用戶(hù),在瀏覽過(guò)程中可以夠買(mǎi)商品。 注冊(cè)模塊的設(shè)計(jì)與實(shí)現(xiàn) 此頁(yè)面負(fù)責(zé)顯示用戶(hù)信息的存儲(chǔ)用戶(hù)信息,主要分三步來(lái)玩成,第一步:填寫(xiě)基本用戶(hù)信息點(diǎn)注冊(cè)按鈕,然后系統(tǒng)自動(dòng)發(fā)送一串字符串到郵箱,用戶(hù)通過(guò)郵箱獲取字符串填入文本框,點(diǎn)下一步,即可注冊(cè)成功。 action name=”log” class=”” result name=”success”/WEBINF/main//result result name=”false”/WEBINF/user//result /action 從而找到相應(yīng)的 action 類(lèi) , execute()方法用于查找用戶(hù)信息是否與所填信息一致 ,核心代碼 見(jiàn)附錄 1: 然后程序會(huì)通過(guò)方法調(diào)用到實(shí)現(xiàn)類(lèi)中執(zhí)行用戶(hù)信息查詢(xún)的任務(wù),此任務(wù)用hibernate 框架實(shí)現(xiàn), hibernate 將所存數(shù)據(jù)轉(zhuǎn)化為一個(gè)實(shí)體對(duì)象,通過(guò) hibernate配置文件,將數(shù)據(jù)和數(shù)據(jù)庫(kù)文件對(duì)比是否有所查數(shù)據(jù) [19]。 表 45 d_order 表 序號(hào) ID 數(shù)據(jù)類(lèi)型 長(zhǎng)度 主鍵 允許空 說(shuō)明 1 id int 是 否 自增長(zhǎng) 2 user_id int 否 用戶(hù) id 3 status int 否 4 Order_time bigint 否 時(shí)間 5 Order_desc varchar 100 是 6 Total_price real 否 總價(jià)格 7 Receive_name varchar 100 是 8 Full_address varchar 200 是 地址信息 9 Postal_code varchar 8 是 10 mobile varchar 20 是 電話(huà)號(hào)碼 11 phone varchar 20 是 手機(jī)號(hào)碼 如表 46 所示,該表為 d_receive_address 表,用于存儲(chǔ)用戶(hù)地址信息。 表 43 d_category 表 序號(hào) ID 數(shù)據(jù)類(lèi)型 長(zhǎng)度 主鍵 允許空 說(shuō)明 1 id int 是 否 自增長(zhǎng) 2 turn int 否 順序 3 en_name varchar 200 否 4 name varchar 200 否 產(chǎn)品名 5 description varchar 200 是 描述 6 Parent_id int 是 如表 44 所示,該表為 d_category_product 表,用于描述 d_category 和表d_product 間的關(guān)聯(lián)。 表 41 d_user 表 序號(hào) ID 數(shù)據(jù)類(lèi)型 長(zhǎng)度 標(biāo)識(shí) 主鍵 允許空 說(shuō)明 寧夏師范學(xué)院 2022 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 第 16 頁(yè) 1 id int 是 否 自增長(zhǎng) 2 varchar 50 否 電子郵箱 3 nickname varchar 50 是 昵稱(chēng) 4 password varchar 50 否 密碼 5 user_integral int 否 用戶(hù)積分 6 Is__verify char 3 是 是否郵箱驗(yàn)證 7 Email_verify_code varchar 60 是 郵箱驗(yàn)證碼 8 Last_login_time bigint 是 最近登錄時(shí)間 9 Last_login_ip varchar 15 是 登錄 ip 如表 42 所示,該表為 d_product 詳 細(xì)信息,不包括各成本子項(xiàng)明細(xì)信息。 ? 確定每個(gè)表的字段屬性等數(shù)據(jù)庫(kù)信息。如果設(shè)計(jì)不當(dāng),查詢(xún)起來(lái)就非常吃力,程序的性能會(huì)受到影響 [18]。在動(dòng)態(tài)網(wǎng)站設(shè)計(jì)中數(shù)據(jù)庫(kù)的重要性不言而喻。 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) 數(shù)據(jù)庫(kù)就是存放數(shù)據(jù)的倉(cāng)庫(kù),即數(shù)據(jù)按照一定的規(guī)律存放在計(jì)算機(jī)中,是信息系統(tǒng)的核心和基礎(chǔ),是信息系統(tǒng)開(kāi)發(fā)和建設(shè)的重要組成部分,把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來(lái),提供存儲(chǔ)、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫(kù)中獲得所需的信息。本系統(tǒng)采取了原型法,先根據(jù)需求分析設(shè)計(jì)出原型,然后在原型的基礎(chǔ)上進(jìn)行不斷的測(cè)試和改進(jìn)。第一個(gè)階段是概要設(shè)計(jì),它的任務(wù)是建立軟件的總體結(jié)構(gòu),即軟件的組成,以及各組成成分 (子系統(tǒng)或模塊 )之間的相互聯(lián)系。 系統(tǒng)代碼架構(gòu) 完成了系統(tǒng)的 需求分析 之后,就進(jìn)入了系統(tǒng)的設(shè)計(jì)階段,在整個(gè)系統(tǒng)的開(kāi)發(fā) 寧夏師范學(xué)院 2022 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 第 15 頁(yè) 時(shí)期中,設(shè)計(jì)階段是最主要的階 段。該系統(tǒng) 是基于 MVC 思想的B2C電子商務(wù)系統(tǒng)。 5. 訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),保存數(shù)據(jù),并返回結(jié)果。 3. OrderAction 類(lèi)的 execute()方法調(diào)用 DAOFactory 類(lèi)的 getAddressDAO ()方法 ,返回 AddressDAOImpl 類(lèi)。 寧夏師范學(xué)院 2022 屆本科畢業(yè)生畢業(yè)設(shè)計(jì) 第 14 頁(yè) u s e ra d d r e s s f o r m j sO r d e r A c t i o n D A O F a c t o r y A d d r e s s D A O I m p ls a v e ( )e x e c u t e ( )g e t A d d r e s sA d d r e s ss u c c e s sR e t u r n 具體步驟如下: 1. 用戶(hù)單擊 登錄頁(yè)面的登錄按鈕 時(shí), Struts 的 ActionForward 通過(guò) 的配置轉(zhuǎn)發(fā)至 頁(yè)面。 5. 訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),通過(guò)條件查詢(xún)數(shù)據(jù)庫(kù),并返回結(jié)果。 3. LogAction 類(lèi)的 execute()方法調(diào)用 DAOFactory 類(lèi) 的 getLogind1DAO ()方法 ,返回 Logind1DAOImpl 類(lèi)。 u s e r L o g i n f o r m j s L o g A c t i o n D A O F a c t o r f L o g i n d 1 D A O IL o g i n d l ( )s u c c e s sE x e c u t e ( )g e t L o g i nL o g i n d D Ar e t u r n 具體步驟如下: 1. 用戶(hù)單擊 登錄頁(yè)面的登錄按鈕 時(shí), Struts 的 ActionForward 通過(guò) 的配置轉(zhuǎn)發(fā)至 頁(yè)面。 5. 訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),保存用戶(hù)信息。 3. RegistAction 類(lèi)的 execute()方法調(diào)用 DAOFactory 類(lèi)的 GetUserDAO ()方法 ,返回 UserDAOImpl 類(lèi)。 具體步驟如下: 1. 用戶(hù)單擊 注冊(cè)頁(yè)面的注冊(cè)按鈕 時(shí), Struts 的 ActionForward 通過(guò) 的配置轉(zhuǎn)發(fā)至 頁(yè)面。 兼容性:能夠與其它軟硬件有良好的兼容性。總的系統(tǒng)功能結(jié)構(gòu)圖, 如圖 31 所示: 網(wǎng) 上 購(gòu) 物 系 統(tǒng)用戶(hù)信息表產(chǎn)品信息存儲(chǔ)產(chǎn)品層次關(guān)系關(guān)系管理表所購(gòu)產(chǎn)品信息用戶(hù)地址信息表用戶(hù)信息的存儲(chǔ)用戶(hù)信