超市收銀系統(tǒng)設(shè)計(jì)說明書_第1頁
超市收銀系統(tǒng)設(shè)計(jì)說明書_第2頁
超市收銀系統(tǒng)設(shè)計(jì)說明書_第3頁
超市收銀系統(tǒng)設(shè)計(jì)說明書_第4頁
超市收銀系統(tǒng)設(shè)計(jì)說明書_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

超市收銀系統(tǒng)設(shè)計(jì)說明書1可行性分析 一三0111.1問題描述 11.2可行性研究的要緊內(nèi)容 11.2.1技術(shù)可行性 11.2.2經(jīng)濟(jì)可行性 一八53711.2.3操作可行性 21.3結(jié)論意見 22項(xiàng)目開發(fā)打算 一五31232.1編寫目的 一八532.2項(xiàng)目背景 32.3項(xiàng)目概述 32.4項(xiàng)目開發(fā)打算 一五58242.5交付期限 43需求分析 53.1任務(wù)需求分析 53.2系統(tǒng)流程圖 63.3系統(tǒng)構(gòu)架圖 一八62463.4數(shù)據(jù)流圖、數(shù)據(jù)字典及實(shí)體聯(lián)系圖 一五2073.4.1數(shù)據(jù)流圖 83.4.2數(shù)據(jù)字典 83.4.3實(shí)體聯(lián)系E-R圖 94系統(tǒng)概要設(shè)計(jì) 124.1總體設(shè)計(jì) 一三一三4.2系統(tǒng)功能模塊圖 一三4.3數(shù)據(jù)庫概念設(shè)計(jì) 一三4.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì) 145詳細(xì)設(shè)計(jì) 175.1系統(tǒng)的要緊功能 一八5.2人機(jī)界面設(shè)計(jì) 一八5.2.1一樣交互設(shè)計(jì) 一八5.2.2信息顯示設(shè)計(jì) 195.2.3數(shù)據(jù)輸入設(shè)計(jì) 195.3程序設(shè)計(jì)過程 一五5205.3.1登陸界面 205.3.2后臺治理操作 246軟件測試 一三705296.1系統(tǒng)測試 306.1.1單元測試 316.1.2集成測試 一五6316.2測試步驟 一五12316.3測試數(shù)據(jù)的常用技術(shù) 326.3.1白盒測試技術(shù) 326.3.2黑盒測試技術(shù) 337設(shè)計(jì)總結(jié) 337.1心得與體會 347.2存在的問題及建議 34參考文獻(xiàn) 35

摘要隨著經(jīng)濟(jì)的進(jìn)展,人們的生活越來越好。日常用品的種類越來越多,超市的規(guī)模也越來越大,超市收銀員的工作量也越來越大。為了適應(yīng)超市規(guī)模的不斷變化,減輕收銀員的工作負(fù)擔(dān),依照超市的實(shí)際需要設(shè)計(jì)了一個(gè)具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易愛護(hù)的、具有良好人機(jī)交互界面的超市收銀系統(tǒng),為超市的決策者和治理者提供超市的各種數(shù)據(jù)信息、方便的查詢和高效便利的治理。該超市收銀系統(tǒng)包括前臺操作和后臺數(shù)據(jù)庫,后臺數(shù)據(jù)庫包括入庫記錄、銷售記錄、商品信息、用戶信息和會員信息,前臺操作是收銀、查詢和修改商品信息。該系統(tǒng)采納C#實(shí)現(xiàn),系統(tǒng)開發(fā)工具是VS20一三。關(guān)鍵詞:C#;VS20一三;數(shù)據(jù)庫;超市收銀1可行性分析1.1問題描述本次課程設(shè)計(jì)實(shí)訓(xùn)要求在運(yùn)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫和先進(jìn)的開發(fā)平臺上,利用現(xiàn)有的軟件,配置一定的硬件,分析和設(shè)計(jì)一個(gè)具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易愛護(hù)的、具有良好人機(jī)交互界面的超市收銀系統(tǒng),為超市的決策者和治理者提供充足的信息、快捷的查詢和有效的治理方式,減少不必要的缺失和白費(fèi),提精湛市治理的效率。1.2可行性研究的要緊內(nèi)容可行性研究的目的,確實(shí)是用最小的代價(jià)在盡可能短的時(shí)刻內(nèi)確定問題是否能夠解決。可行性研究實(shí)質(zhì)上是要進(jìn)行一次大大壓縮簡化了的系統(tǒng)分析和設(shè)計(jì)過程,也確實(shí)是在較高層系上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)過程。在進(jìn)行可行性研究時(shí)第一要進(jìn)一步分析和澄清問題定義。在問題定義時(shí)期初步確定系統(tǒng)的規(guī)模和目標(biāo),假如正確就進(jìn)一步加以確信,假如有錯(cuò)誤就應(yīng)該及時(shí)改正,假如對目標(biāo)約束和限制,必須把他們一一列出來。從系統(tǒng)邏輯模型動身,探究假設(shè)干種可供選擇的要緊解法〔即系統(tǒng)實(shí)現(xiàn)方案〕。關(guān)于每種解法都應(yīng)該認(rèn)真研究它的可行性,一樣來說,至少應(yīng)該從下述三個(gè)方面研究每種解法的可行性。1.2.1技術(shù)可行性技術(shù)可行性要緊分析研究在現(xiàn)有技術(shù)條件的基礎(chǔ)上是否能夠?qū)崿F(xiàn)該系統(tǒng)。目前電腦在中國差不多得到普及,使用電腦的人數(shù)在快速增長。從事軟件設(shè)計(jì)的人員的技術(shù)能力有了專門大提高,能夠?qū)崿F(xiàn)該系統(tǒng)。1.2.2經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性要緊研究該系統(tǒng)的經(jīng)濟(jì)效益能否超過它的開發(fā)成本。目前在中國,到超市進(jìn)行購物的人流量是專門龐大的,由于超市提供的商品種類繁多,且大多是人們的日常必需品,因此人們對超市的依靠性專門強(qiáng)。在如此的背景下,為超市設(shè)計(jì)如此的一個(gè)系統(tǒng),其經(jīng)濟(jì)效益是十分可觀的。又由于通過網(wǎng)絡(luò)傳遞銷售信息能夠不受距離的限制,因此能夠節(jié)約大量的人力和物力,方便治理,由此能夠減少不必要的開支,同時(shí)該系統(tǒng)能夠提精湛市的銷售效率,即提高了超市的經(jīng)濟(jì)效益,因此從經(jīng)濟(jì)上完全是可行的。1.2.3操作可行性操作可行性要緊研究系統(tǒng)的操作方式在該用戶組織內(nèi)是否可行。在當(dāng)前的社會條件下,Internet網(wǎng)差不多在中國全面覆蓋,在中國各地,均能夠通過硬件設(shè)備聯(lián)網(wǎng)。而且各商業(yè)組織也擁有屬于自己的內(nèi)部局域網(wǎng),因此該系統(tǒng)能夠?qū)崿F(xiàn)聯(lián)網(wǎng)。該系統(tǒng)在聯(lián)網(wǎng)情形下,能夠通過PC機(jī)訪問系統(tǒng)的數(shù)據(jù)。因此該系統(tǒng)的操作方式符合該用戶組織。1.3結(jié)論意見通過認(rèn)真地研究,該系統(tǒng)完成了在技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性方面的可行性研究,該系統(tǒng)能夠開發(fā)實(shí)現(xiàn)。因此,相信全系統(tǒng)的設(shè)計(jì)將會按時(shí)、高質(zhì)量完成。因此,系統(tǒng)的設(shè)計(jì)開發(fā)是能夠趕忙進(jìn)行的。

2項(xiàng)目開發(fā)打算2.1編寫目的通過項(xiàng)目的可行性分析,得出項(xiàng)目可進(jìn)一步進(jìn)行下去的結(jié)論,在軟件連續(xù)進(jìn)一步的開發(fā)之前第一給出此軟件項(xiàng)目打算。2.2項(xiàng)目背景項(xiàng)目分析單位在接到項(xiàng)目分析員給出的項(xiàng)目可行性分析報(bào)告后,在本系統(tǒng),即超市收銀系統(tǒng)開發(fā)主管部門的統(tǒng)一規(guī)劃下制定用于軟件實(shí)質(zhì)開發(fā)的軟件項(xiàng)目打算,以使軟件開發(fā)單位明白得軟件開發(fā)要求,進(jìn)行開發(fā)。2.3項(xiàng)目概述超市收銀系統(tǒng)要緊功能包括:后臺治理和前臺操作,其中:后臺治理要緊包括:進(jìn)貨治理、銷售治理、庫存治理、相關(guān)業(yè)務(wù)的查詢和系統(tǒng)愛護(hù)等;進(jìn)貨治理:在數(shù)據(jù)庫中儲備有各種商品的供應(yīng)商信息,當(dāng)需要進(jìn)貨時(shí),能夠與供應(yīng)商聯(lián)系,同時(shí)數(shù)據(jù)庫中會儲備各種商品的每一次進(jìn)貨信息,并保持?jǐn)?shù)據(jù)的時(shí)效性和完整性。銷售治理要緊包括:隨時(shí)錄入賣出商品信息,如名稱,數(shù)量,單價(jià)等,及時(shí)更新數(shù)據(jù)庫數(shù)據(jù)。貨架上商品賣到一定數(shù)量時(shí),實(shí)時(shí)生成提貨報(bào)告,并提供商品的庫存信息,剩余信息。庫存治理要緊包括:生成庫存報(bào)告、生成缺貨報(bào)告、錄入更新數(shù)據(jù)。在需要時(shí)(可每隔一個(gè)時(shí)刻段查詢一次)生成商品庫存情形報(bào)告,實(shí)時(shí)報(bào)告商品庫存情形,如庫存量不足(小于某一自定的數(shù)量)時(shí),可生成缺貨報(bào)告,并提供商品種類,來源等商品屬性信息,方便采購人員進(jìn)行商品采購。采購員采購商品后,及時(shí)錄入商品信息等數(shù)據(jù),在數(shù)據(jù)庫中進(jìn)行數(shù)據(jù)更新。前臺操作要緊包括:前臺收銀員權(quán)限嚴(yán)格操縱,支持?jǐn)嗑W(wǎng)銷售、連網(wǎng)銷售兩種模式,預(yù)留對條碼掃描、票據(jù)打印機(jī)、顧顯、錢箱、磁卡刷卡機(jī)、IC卡讀寫器、條碼打印機(jī)、盤點(diǎn)機(jī)等POS外設(shè)的支持,可直截了當(dāng)修改銷售數(shù)量、單價(jià)、折扣等〔權(quán)限操縱〕,支持贈送〔權(quán)限操縱〕,會員卡、儲值卡消費(fèi),收款抹零〔權(quán)限操縱〕,掛單/取單,前臺查詢商品、庫存,刪單、刪行、查單〔權(quán)限操縱〕,專門操作記錄〔防止前臺作弊〕,支持電子稱散裝商品銷售,前臺支持業(yè)務(wù)員錄入計(jì)提,商品促銷銷售〔按時(shí)刻段〕,會員價(jià)、儲值卡價(jià)銷售,支持無庫存商品銷售,銷售小票格式自定義〔標(biāo)題、腳注、明細(xì)格式等〕。2.4項(xiàng)目開發(fā)打算1任務(wù)分解分三個(gè)大的時(shí)期進(jìn)行開發(fā)第一時(shí)期完成本系統(tǒng)的數(shù)據(jù)流圖跟E-R圖。第二時(shí)期完成概要設(shè)計(jì)跟詳細(xì)設(shè)計(jì)。第三時(shí)期書寫文檔。2關(guān)鍵問題各模塊之間的聯(lián)系和后臺數(shù)據(jù)庫的完成。使用目前的設(shè)備與現(xiàn)有開發(fā)技術(shù)完全能夠開發(fā)出該系統(tǒng),總的來說該項(xiàng)目沒有較大的技術(shù)難點(diǎn)與其他的一些風(fēng)險(xiǎn)因素。關(guān)于顯現(xiàn)的一些小難點(diǎn)總都能得到解決。2.5交付期限本系統(tǒng)的開發(fā)時(shí)限為兩個(gè)星期,該系統(tǒng)的交付期限為20一五年7月3日。

3需求分析3.1任務(wù)需求分析前臺操作包括:商品錄入:依照超巿業(yè)務(wù)特點(diǎn)制定相關(guān)功能,能夠通過輸入唯獨(dú)編號、掃描條形碼、商品名稱等來實(shí)現(xiàn)精確的商品掃描錄入。該掃描錄入方法能夠充分保證各種電腦操作水平層次的人員均能準(zhǔn)確快速地進(jìn)行商品掃描錄入。收銀業(yè)務(wù):通過掃描條形碼或者直截了當(dāng)輸入商品名稱〔關(guān)于同類多件商品采納一次錄入加數(shù)量的方式〕自動運(yùn)算本次交易的總金額。在顧客付款后,自動運(yùn)算找零,同時(shí)打印交易清單〔包括交易的流水賬號、每類商品的商品名、數(shù)量、該類商品的總金額、交易的時(shí)刻、負(fù)責(zé)本次收銀的職員號〕。假如顧客是本店會員并持有本人會員卡,那么在交易前先掃描會員卡,并對所購物品全部實(shí)行95折優(yōu)待,并將所購物品的總金額累計(jì)到該會員的總消費(fèi)金額中。會員卡的有效期限為一年,滿一年未續(xù)卡者,該會員卡將被注銷。后臺治理操作:進(jìn)貨治理:依照銷售情形及庫存情形,自動制定進(jìn)貨打算〔亦可手工制定修改〕,能夠幸免盲目進(jìn)貨造成商品積壓。按打算單有選擇性地進(jìn)行自動入庫登記。綜合查詢打印打算進(jìn)貨與入庫記錄及金額。銷售治理:商品正常銷售、促銷與限量、限期及禁止銷售操縱。綜合查詢各種銷售明細(xì)記錄、各地收銀員收銀記錄以及交結(jié)賬情形等。按多種方式統(tǒng)計(jì)生成銷售排行榜,靈活觀看和打印商品銷售日、月、年報(bào)表。庫存治理:綜合查詢庫存明細(xì)記錄。庫存狀態(tài)自動告警提示。如庫存過剩、少貨、缺貨等。軟件為您預(yù)警,幸免庫存商品積壓缺失和缺貨。庫存自動盤點(diǎn)運(yùn)算。人員治理:職員、會員、供貨商、廠商等差不多信息登記治理。職員操作權(quán)限權(quán)益、客戶銷售權(quán)限治理。

3.2系統(tǒng)流程圖商品庫存程序收銀員收銀商品銷售程序進(jìn)貨報(bào)告生成程序商品庫存信息文件進(jìn)貨報(bào)告輸入購物信息顯示銷售信息顯示訂貨信息圖3.1系統(tǒng)流程圖

3.3系統(tǒng)構(gòu)架圖商品庫存程序收銀員收銀商品銷售程序進(jìn)貨報(bào)告生成程序商品庫存信息文件進(jìn)貨報(bào)告輸入購物信息顯示銷售信息顯示訂貨信息圖3.1系統(tǒng)流程圖收銀收銀POS機(jī)查詢數(shù)據(jù)/職員治理PC機(jī)打印機(jī)稱裝電子秤治理商品信息PC機(jī)SQlServer服務(wù)器進(jìn)貨PC機(jī)超市前臺超市前臺治理者SQlServerSQlServer服務(wù)器進(jìn)貨PC機(jī)圖3.2系統(tǒng)構(gòu)架圖超市工作人員前臺收銀員治理部門進(jìn)貨部門數(shù)據(jù)庫服務(wù)器進(jìn)貨PC機(jī)

3.4數(shù)據(jù)流圖、數(shù)據(jù)字典及實(shí)體聯(lián)系圖進(jìn)貨PC機(jī)圖3.2系統(tǒng)構(gòu)架圖超市工作人員前臺收銀員治理部門進(jìn)貨部門數(shù)據(jù)庫服務(wù)器進(jìn)貨PC機(jī)3.4.1數(shù)據(jù)流圖產(chǎn)生銷售記錄產(chǎn)生銷售記錄產(chǎn)生進(jìn)貨單倉庫治理員收銀員更新庫存信息進(jìn)貨員前臺經(jīng)理更新商品信息D1商品信息表D1商品信息表D3銷售記錄銷售信息銷售信息銷售信息事務(wù)庫存信息進(jìn)貨信息D2進(jìn)貨信息進(jìn)貨單圖3.3數(shù)據(jù)流圖商品信息商品信息事務(wù)D4商品信息表

3.4.2數(shù)據(jù)字典D3銷售記錄銷售信息銷售信息銷售信息事務(wù)庫存信息進(jìn)貨信息D2進(jìn)貨信息進(jìn)貨單圖3.3數(shù)據(jù)流圖商品信息商品信息事務(wù)D4商品信息表數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也確實(shí)是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)字典的作用是在軟件分析和設(shè)計(jì)的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。名稱:銷售名稱:銷售清單別名:銷售報(bào)表描述:對超市商品銷售情形的描述定義:物資編號+名稱+銷售日期+數(shù)量+售價(jià)位置:輸出到打印機(jī)儲存到磁盤名稱:商品信息別名:商品單描述:超市銷售商品的信息定義:商品編號+類型編號+商品名稱+庫存量+售價(jià)+報(bào)警值+商品規(guī)格+計(jì)量單位位置:輸出到打印機(jī)儲存到磁盤名稱:用戶信息別名:描述:該系統(tǒng)的使用者的信息定義:用戶編號+姓名+密碼+權(quán)限位置:輸出到打印機(jī)儲存到磁盤名稱:入庫記錄別名:進(jìn)貨報(bào)表描述:每次進(jìn)貨的物資描述定義:入庫編號+物資編號+供應(yīng)商編號名稱:用戶信息別名:描述:該系統(tǒng)的使用者的信息定義:用戶編號+姓名+密碼+權(quán)限位置:輸出到打印機(jī)儲存到磁盤名稱:入庫記錄別名:進(jìn)貨報(bào)表描述:每次進(jìn)貨的物資描述定義:入庫編號+物資編號+供應(yīng)商編號+操作員+進(jìn)價(jià)+數(shù)量位置:輸出到打印機(jī)儲存到磁盤名稱:會員信息信息表別名:商品編號描述:該超市所屬會員的信息定義:會員編號+會員名+會員積分+會員等級+會員+會員起始日期位置:輸出到打印機(jī)儲存到磁盤名稱:供應(yīng)商信息別名:供應(yīng)商描述:和超市合作的供應(yīng)商的信息定義:供應(yīng)商編號+名稱+聯(lián)系人+地址+x++合作起始時(shí)刻位置:輸出到打印機(jī)儲存到磁盤入庫記錄銷售記錄入庫記錄銷售記錄供應(yīng)商商品編號商品名稱庫存量計(jì)量單位報(bào)警值商品規(guī)格類別編號名稱聯(lián)系人供應(yīng)地址商品名稱數(shù)量售價(jià)總金額進(jìn)價(jià)商品名稱商品數(shù)量供應(yīng)商編號進(jìn)貨銷售供應(yīng)商編號合作時(shí)刻入庫編號商品編號售價(jià)11111圖3.4部分實(shí)體聯(lián)系〔E-R〕圖nn1111圖3.4部分實(shí)體聯(lián)系〔E-R〕圖nn商品用戶用戶用戶用戶編號密碼用戶名權(quán)限會員用戶會員編號會員名會員積分會員等級會員起始日期圖3.6會員實(shí)體E—R圖圖3.5用戶實(shí)體E—R圖

4系統(tǒng)概要設(shè)計(jì)會員用戶會員編號會員名會員積分會員等級會員起始日期圖3.6會員實(shí)體E—R圖圖3.5用戶實(shí)體E—R圖4.1總體設(shè)計(jì)通過需求分析時(shí)期的工作,系統(tǒng)必須〝做什么〞差不多清晰了,現(xiàn)在是決定〝如何樣做〞的時(shí)候了??傮w設(shè)計(jì)的差不多目標(biāo)確實(shí)是回答〝概括地說,系統(tǒng)應(yīng)該如何實(shí)現(xiàn)〞的問題。因此總體設(shè)計(jì)又稱為概要設(shè)計(jì)。通過那個(gè)時(shí)期的工作將劃分出組成系統(tǒng)的物理元素—程序、文件、數(shù)據(jù)庫、人工過程和文檔等。總體設(shè)計(jì)的另一項(xiàng)任務(wù)是設(shè)計(jì)軟件的結(jié)構(gòu),也確實(shí)是要確定系統(tǒng)中的每個(gè)程序是由那些模塊組成的,以及這些模塊相互間的關(guān)系。4.2系統(tǒng)功能模塊圖超市收銀系統(tǒng)超市收銀系統(tǒng)查詢修改商品信息收銀進(jìn)貨治理銷售治理庫存治理前臺操作后臺數(shù)據(jù)庫營業(yè)統(tǒng)計(jì)會員信息治理圖4.1系統(tǒng)功能模塊圖

4.3數(shù)據(jù)庫概念設(shè)計(jì)數(shù)據(jù)庫一樣分為三級模式:外模式、模式和內(nèi)模式。外模式也確實(shí)是不同用戶所對的數(shù)據(jù)視圖,它將數(shù)據(jù)庫內(nèi)部抽象的數(shù)據(jù)及其互相之間的關(guān)系表示為簡單、直觀的應(yīng)用界面。模式是數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特點(diǎn)描述,通常以某種數(shù)據(jù)模型為基礎(chǔ)。內(nèi)模式是對數(shù)據(jù)的物理結(jié)構(gòu)和儲備方式的描述。在該系統(tǒng)中具體的模式有:商品〔商品編號,類型編號,商品名稱,規(guī)格,計(jì)量單位,售價(jià),庫存量,報(bào)警值〕用戶〔用戶編號,用戶名,密碼,權(quán)限〕入庫記錄〔入庫編號,商品編號,供應(yīng)商編號,聯(lián)系人,進(jìn)價(jià),數(shù)量〕銷售記錄〔商品編號,售價(jià),銷售數(shù)量,總金額〕供應(yīng)商〔供應(yīng)商編號,供應(yīng)商名稱,聯(lián)系人,供應(yīng)商,,地址,合作時(shí)刻〕會員〔會員編號,會員名,會員積分,會員等級,,會員起始日期〕4.4數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)在數(shù)據(jù)庫設(shè)計(jì)中相當(dāng)重要的一步確實(shí)是將概念模型轉(zhuǎn)化為運(yùn)算機(jī)上DBMS所支持的數(shù)據(jù)模型,例如,將E-R圖轉(zhuǎn)化為關(guān)系模型,我們設(shè)計(jì)概念模型差不多上差不多上一些抽象的關(guān)系,再在數(shù)據(jù)庫設(shè)計(jì)的實(shí)現(xiàn)過程中,在運(yùn)算機(jī)上有效地表示出這些關(guān)系就成了數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵。依照超市收銀系統(tǒng)的功能要求,選取MySQL作為后臺數(shù)據(jù)庫。在上面的實(shí)體和實(shí)體之間的E-R圖設(shè)計(jì)基礎(chǔ)上,形成數(shù)據(jù)庫中的表格及表格之間的關(guān)系。該數(shù)據(jù)庫包括系統(tǒng)登錄用戶的差不多信息儲存在用戶信息表里,其中關(guān)于用戶編號,通過自增方式實(shí)現(xiàn),無需用戶手動編號,編號從1000起始。具體內(nèi)容如下表所示:

用戶信息表包括:用戶編號、用戶名、密碼和用戶權(quán)限,具體如下:表4.1用戶信息表屬性名字段名類型長度Null備注編號UserIDInt20否主鍵姓名UserNamevarchar50否密碼UserPasswordvarchar50否權(quán)限UserRightvarchar50否會員信息表包括了在該超市申請會員的消費(fèi)者的信息,會員信息表包括:會員編號、會員名、積分、權(quán)限、x和會員起始日期,具體內(nèi)容如下:表4.2會員信息表屬性名字段名類型長度Null備注會員編號VipIdInt20否主鍵會員姓名VipNamevarchar50否積分VipScorevarchar50否等級VipRankvarchar50否VipNumbervarchar50否成為會員時(shí)刻VipDatavarchar50否銷售信息表包括:商品編號、售價(jià)、數(shù)量、總金額以及備注,具體內(nèi)容如下:屬性名字段名類型長度Null備注商品編號GoodsIdInt20否主鍵單價(jià)SellPricevarchar50否數(shù)量GoodsNumvarchar50否總價(jià)zongsellvarchar50否備注Remarkvarchar50否銷售時(shí)刻DataTimevarchar50否表4.3銷售信息表商品信息表包括:商品編號、商品名稱、商品類型、計(jì)量單位、規(guī)格、售價(jià)、庫存量、報(bào)警值和備注,具體內(nèi)容如下表:表4.4商品信息表屬性名字段名類型長度Null備注商品編號GoodsIdInt20否主鍵類型號TypeIdvarchar50否商品名稱GoodsNamevarchar50否計(jì)量單位GoodsUnitvarchar50是規(guī)格GoodsNormvarchar50否售價(jià)GoodsSellpricevarchar50否庫存量GoodsNumvarchar50否報(bào)警值A(chǔ)larmNumvarchar50否備注GoodsRemardkvarchar50是入庫記錄表包括:入庫編號、商品編號、供應(yīng)商編號、聯(lián)系人、進(jìn)價(jià)、數(shù)量以及備注,具體內(nèi)容如下:表4.5入庫記錄表屬性名字段名類型長度Null備注入庫編號StockIdInt20否主鍵商品編號GoodsIdvarchar50否外鍵供應(yīng)商編號CompanyIdvarchar50否操作員Operatorvarchar50否進(jìn)價(jià)GoodsPricevarchar50否入庫時(shí)刻DataTimevarchar50否數(shù)量GoodsNumvarchar50否備注Remarkvarchar50是供應(yīng)商信息表包括:供應(yīng)商編號、供應(yīng)商名稱、聯(lián)系人、、、地址、合作起始時(shí)刻,具體內(nèi)容如下表:表4.6供應(yīng)商信息表屬性名字段名類型長度Null備注供應(yīng)商編號CompanyIdInt20否主鍵供應(yīng)商名稱CompanyNamevarchar50否聯(lián)系人CompanyDirectorvarchar50否CompanyPhonevarchar50否CompanyFaxvarchar50否地址CompanyAddvarchar50否合作時(shí)刻HzDataTimevarchar50否

5詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)時(shí)期的全然目標(biāo)是確定應(yīng)該如何具體地實(shí)現(xiàn)所要求的系統(tǒng),包括用戶界面設(shè)計(jì)、程序過程設(shè)計(jì)等步驟。也確實(shí)是說,通過那個(gè)時(shí)期的設(shè)計(jì)工作,應(yīng)該得出對目標(biāo)系統(tǒng)的精確描述,從而在編碼時(shí)期能夠把那個(gè)描述直截了當(dāng)翻譯成某種設(shè)計(jì)語言書寫的程序。詳細(xì)設(shè)計(jì)時(shí)期的任務(wù)不是具體的編寫程序,而是要設(shè)計(jì)出程序的〝藍(lán)圖〞,以后程序員將依照那個(gè)〝藍(lán)圖〞寫出實(shí)際的程序代碼。5.1系統(tǒng)的要緊功能該系統(tǒng)采納C/S結(jié)構(gòu),超市收銀系統(tǒng)的要緊功能包括:后臺治理和前臺操作。前臺的要緊功能是:〔1〕記錄超市前臺收銀員的收銀信息;〔2〕查詢、修改商品信息;后臺的要緊功能是:〔1〕記錄商品的入庫記錄;〔2〕治理商品的庫存、價(jià)格等具體信息〔3〕記錄商品的銷售記錄;〔4〕治理超市會員的會員信息;〔5〕治理登陸用戶的信息。5.2人機(jī)界面設(shè)計(jì)5.2.1一樣交互設(shè)計(jì)一樣交互設(shè)計(jì)涉及信息顯示、數(shù)據(jù)輸入和系統(tǒng)整體操縱。保持一致性。為客戶交互界面中的菜單項(xiàng)選擇擇、命令輸入、數(shù)據(jù)顯示以及眾多的其他功能,使用一致的格式。提供信息的反饋。向用戶及時(shí)提供視覺和聽覺的信息反饋,以保證在用戶和系統(tǒng)之間及時(shí)地建立雙向通信。在本系統(tǒng)設(shè)計(jì)過程中,差不多做到了信息的及時(shí)反饋,當(dāng)用戶操作完一步后系統(tǒng)會對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行及時(shí)地顯示。執(zhí)行有較大阻礙的操作前提示用戶確認(rèn)。在設(shè)計(jì)過程中,假如用戶要執(zhí)行刪除操作,以及對數(shù)據(jù)庫的讀寫操作時(shí),都會有窗體彈出詢問連續(xù)操作或者予以提示。減少兩次操作間需要經(jīng)歷的內(nèi)容。為了幸免用戶為下一步操作而經(jīng)歷大量數(shù)據(jù),因此在設(shè)計(jì)過程中在需要數(shù)據(jù)傳遞的窗體中設(shè)置全局變量,來傳遞數(shù)據(jù)。提高對話、移動和摸索的效率。盡量減少用戶擊鍵的次數(shù),在設(shè)計(jì)時(shí)考慮用戶屏幕的布局以減少用戶鼠標(biāo)移動的距離,盡量幸免用戶在操作中發(fā)生疑問的情形。承諾犯錯(cuò)誤。承諾用戶的誤操作盡量不對系統(tǒng)造成損害。按功能對動作分類,并據(jù)此設(shè)計(jì)屏幕布局。屏幕布局盡量將軟件所具有的所有功能在主頁面展現(xiàn),界面一目了然。5.2.2信息顯示設(shè)計(jì)系統(tǒng)在顯示用戶所需要的信息時(shí)應(yīng)該盡量完整、清晰和易于明白得。如此才能滿足用戶的需求。使用不同的方式顯示信息:用文字、圖形、聲音,按位置、移動和大小,使用顏色和省略等方式傳達(dá)信息。只顯示與當(dāng)前工作有關(guān)的信息。在用戶操作有關(guān)系統(tǒng)的特定功能的信息時(shí),不必看到與之無關(guān)的數(shù)據(jù)、菜單和圖形。使用便于用戶迅速吸取數(shù)據(jù)的方式來表示數(shù)據(jù)。使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)知的顏色。顯示的含義應(yīng)該專門準(zhǔn)確,用戶無須參照其他信息源就能明白得。產(chǎn)生有意義的錯(cuò)誤信息。關(guān)于系統(tǒng)在運(yùn)行過程中產(chǎn)生的錯(cuò)誤盡量給用戶返回一個(gè)容易明白得的錯(cuò)誤信息,以使用戶保持對系統(tǒng)的信任,和系統(tǒng)的可用性。使用窗口分隔不同類型的信息。使用不同的窗口顯示、儲存不同類型的信息。高效率的使用顯示屏。當(dāng)使用多窗口時(shí),應(yīng)該有足夠的空間使得每個(gè)窗口至少都能顯示出一部分。5.2.3數(shù)據(jù)輸入設(shè)計(jì)用戶的大部分時(shí)刻用在選擇菜單命令、鍵入數(shù)據(jù)和向系統(tǒng)提供輸入。在系統(tǒng)中,鍵盤是要緊的輸入介質(zhì),然而鼠標(biāo)等設(shè)備的也是重要的輸入手段,因此,關(guān)于他們的數(shù)據(jù)輸入操作有如下約定:盡量減少用戶的輸入動作。為了方便用戶的使用,鼠標(biāo)應(yīng)當(dāng)盡量減少操作的幅度。保持顯示信息和輸入信息之間的一致性。關(guān)于用戶來說,要保證其輸入的數(shù)據(jù)在顯示上與其他顯示的視覺特點(diǎn)〔例如:文字大小、顏色、位置等〕要一致。承諾用戶自定義輸入。用戶可能期望定義自己專用的命令或略去某些類型的警告信息和動作確認(rèn),人機(jī)界面應(yīng)該為用戶提供如此做的機(jī)制。交互應(yīng)該是靈活的,同時(shí)可調(diào)整成用戶最喜愛的輸入方式。用戶類型與喜愛的輸入方式有關(guān),不同的用戶喜愛不同的輸入方式。使用當(dāng)前動作語境中不適用的命令不起作用。這可使得用戶不去做那些確信會導(dǎo)致錯(cuò)誤的動作。讓用戶操縱交互流。用戶應(yīng)該能躍過不必要的動作,改變所需做的動作的順序,以及在不退出程序的情形下從錯(cuò)誤狀態(tài)中復(fù)原正常。排除冗余的輸入。除非可能發(fā)生誤解,否那么不要要求用戶指定輸入數(shù)據(jù)的單位;盡可能提供默認(rèn)值,絕對不要要求用戶提供程序能夠自動獲得或運(yùn)算出來的信息。關(guān)于不同類型的用戶在登錄到系統(tǒng)后,由于有不同的權(quán)限,因此在主界面中會有一些項(xiàng)目受到限制而無法使用,因此要使這些項(xiàng)目不發(fā)生作用,以保證系統(tǒng)安全。5.3程序設(shè)計(jì)過程程序過程設(shè)計(jì)要緊是在借助過程設(shè)計(jì)工具的情形下,對程序的具體實(shí)現(xiàn)過程進(jìn)行設(shè)計(jì)。程序的要緊部分設(shè)計(jì)在那個(gè)環(huán)節(jié)完成。在那個(gè)任務(wù)說明書中我們采納盒圖的形式來表達(dá)程序的具體的設(shè)計(jì)過程,我們的系統(tǒng)設(shè)計(jì)為C/S結(jié)構(gòu),因此是客戶端登陸系統(tǒng)的形式,盒圖沒有箭頭,因此不承諾隨意轉(zhuǎn)移操縱,堅(jiān)持使用盒圖能夠使程序員養(yǎng)成用用結(jié)構(gòu)化的方式來摸索問題。5.3.1登陸界面在用戶登錄時(shí),在輸入用戶名和密碼及用戶類型的前提下將其與數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比對,假設(shè)一致,那么打開主窗體;假設(shè)不一致提示錯(cuò)誤,并要求重新輸入。注冊后儲存用戶信息,登陸界面的的程序盒圖如圖5.1所示://登陸界面的程序代碼privatevoidbutton1_Click(objectsender,EventArgse){stringMyConnectionString="Server=localhost;Database=chaoshi;Uid=root;Pwd=123456;PersistSecurityInfo=True;Charset=utf8;";stringusername=tbxUsr.Text.Trim();stringpasswd=tbxPwr.Text.Trim();stringrol=comboBox1.Text.Trim();stringloginsql="SELECT*FROMuserWhereUserID='"+username+"'andUserPassword='"+passwd+"'andUserRight='"+rol+"'";MySqlConnectionconnection=newMySqlConnection(MyConnectionString);connection.Open();MySqlCommandmycmd=newMySqlCommand(loginsql,connection);MySqlDataReadermyread=mycmd.ExecuteReader();try{if(myread.HasRows){if(myread.Read()){//MessageBox.Show("登錄成功");if(myread["UserID"].ToString()==tbxUsr.Text&&myread["UserPassword"].ToString()==tbxPwr.Text&&myread["UserRight"].ToString()=="治理員"){user=username;Form8f3;f3=newForm8();f3.Show();}elseif(myread["UserID"].ToString()==tbxUsr.Text&&myread["UserPassword"].ToString()==tbxPwr.Text&&myread["UserRight"].ToString()=="職員"){user=username;Form2f2;f2=newForm2();f2.Show();}}}else{MessageBox.Show("Pleaseenterthecorrectusernameandpassword?。。?);}}catch(Exceptionex){MessageBox.Show(string.Format("出錯(cuò),出錯(cuò)緣故{0}"),ex.Message);}finally{connection.Close();connection.Dispose();mycmd.Dispose();}}privatevoidbutton2_Click(objectsender,EventArgse){this.Close();}privatevoidtextBox1_TextChanged(objectsender,EventArgse){}privatevoidForm1_Load(objectsender,EventArgse){}}}

連接數(shù)據(jù)庫連接數(shù)據(jù)庫否是用戶名和密碼輸入否是用戶名和密碼輸入提示輸入否是賬戶是否存在提示輸入否是賬戶是否存在提示錯(cuò)誤提示錯(cuò)誤顯示提示框顯示提示框〝?shù)卿洺晒Θ晥D5.1登陸界面程序盒圖圖5.1登陸界面程序盒圖5.3.2后臺治理操作關(guān)于系統(tǒng)的各項(xiàng)信息的治理屬于后臺治理,治理程序盒圖如圖5.2所示:privatevoidbutton2_Click_1(objectsender,EventArgse){stringspbh=textBox2.Text.Trim();stringlx=textBox3.Text.Trim();stringmc=textBox4.Text.Trim();stringjldw=textBox5.Text.Trim();stringgg=textBox6.Text.Trim();stringsj=textBox7.Text.Trim();stringkcl=textBox9.Text.Trim();stringbjz=textBox10.Text.Trim();stringbz=textBox11.Text.Trim();MySqlParameter[]sp=newMySqlParameter[9];sp[0]=newMySqlParameter("xspbh",MySqlDbType.VarChar);sp[0].Value=spbh;sp[1]=newMySqlParameter("xlx",MySqlDbType.VarChar);sp[1].Value=lx;sp[2]=newMySqlParameter("xmc",MySqlDbType.VarChar);sp[2].Value=mc;sp[3]=newMySqlParameter("xjldw",MySqlDbType.VarChar);sp[3].Value=jldw;sp[4]=newMySqlParameter("xgg",MySqlDbType.VarChar);sp[4].Value=gg;sp[5]=newMySqlParameter("xsj",MySqlDbType.VarChar);sp[5].Value=sj;sp[6]=newMySqlParameter("xkcl",MySqlDbType.VarChar);sp[6].Value=kcl;sp[7]=newMySqlParameter("xbjz",MySqlDbType.VarChar);sp[7].Value=bjz;sp[8]=newMySqlParameter("xbz",MySqlDbType.VarChar);sp[8].Value=bz;using(MySqlConnectionconnection=newMySqlConnection(MyConnectionString)){try{connection.Open();stringsql="updategoodsinfosetGoodsId=xspbh,TypeId=xlx,GoodsName=xmc,GoodsUnit=xjldw,GoodsNorm=xgg,GoodsSellprice=xsj,GoodsNum=xkcl,AlarmNum=xbjz,GoodsRemardk=xbzwhereGoodsId=xspbh";MySqlCommandcmd=newMySqlCommand();cmd.Connection=connection;cmdxmandText=sql;cmdxmandType=CommandType.Text;cmd.Parameters.AddRange(sp);cmd.ExecuteNonQuery();MessageBox.Show("修改成功");}catch(Exceptionex){MessageBox.Show(string.Format("出錯(cuò),出錯(cuò)緣故{0}"),ex.Message);}}}privatevoidbutton4_Click(objectsender,EventArgse){stringGoodsId=textBox2.Text.Trim();stringTypeId=textBox3.Text.Trim();stringGoodsName=textBox4.Text.Trim();stringGoodsUnit=textBox5.Text.Trim();stringGoodsNorm=textBox6.Text.Trim();stringGoodsSellprice=textBox7.Text.Trim();stringGoodsNum=textBox9.Text.Trim();stringAlarmNum=textBox10.Text.Trim();stringGoodsRemardk=textBox11.Text.Trim();MySqlParameter[]sp=newMySqlParameter[9];sp[0]=newMySqlParameter("xab",MySqlDbType.VarChar);sp[0].Value=GoodsId;sp[1]=newMySqlParameter("xac",MySqlDbType.VarChar);sp[1].Value=TypeId;sp[2]=newMySqlParameter("xad",MySqlDbType.VarChar);sp[2].Value=GoodsName;sp[3]=newMySqlParameter("xae",MySqlDbType.VarChar);sp[3].Value=GoodsUnit;sp[4]=newMySqlParameter("xaa",MySqlDbType.VarChar);sp[4].Value=GoodsNorm;sp[5]=newMySqlParameter("xbb",MySqlDbType.VarChar);sp[5].Value=GoodsSellprice;sp[6]=newMySqlParameter("xvv",MySqlDbType.VarChar);sp[6].Value=GoodsNum;sp[7]=newMySqlParameter("xdd",MySqlDbType.VarChar);sp[7].Value=AlarmNum;sp[8]=newMySqlParameter("xgg",MySqlDbType.VarChar);sp[8].Value=GoodsRemardk;using(MySqlConnectionconnection=newMySqlConnection(MyConnectionString)){try{connection.Open();stringsql="insertintogoodsinfo(GoodsId,TypeId,GoodsName,GoodsUnit,GoodsNorm,GoodsSellprice,GoodsNum,AlarmNum,GoodsRemardk)values(xab,xac,xad,xae,xaa,xbb,xvv,xdd,xgg)";MySqlCommandcmd=newMySqlCommand();cmd.Connection=connection;cmdxmandText=sql;cmdxmandType=CommandType.Text;cmd.Parameters.AddRange(sp);cmd.ExecuteNonQuery();MessageBox.Show("增加成功");}catch(Exceptionex){MessageBox.Show(ex.ToString());}}}privatevoidbutton5_Click(objectsender,EventArgse){stringGoodsId;GoodsId=textBox2.Text.Trim();MySqlParameter[]sp=newMySqlParameter[1];sp[0]=newMySqlParameter("xaaa",MySqlDbType.VarChar);sp[0].Value=GoodsId;using(MySqlConnectionconnection=newMySqlConnection(MyConnectionString)){try{connection.Open();stringsql="deletefromgoodsinfowhereGoodsId=xaaa";MySqlCommandcmd=newMySqlCommand();cmd.Connection=connection;cmdxmandText=sql;cmdxmandType=CommandType.Text;cmd.Parameters.AddRange(sp);cmd.ExecuteNonQuery();MessageBox.Show("刪除成功");}catch(Exceptionex){MessageBox.Show(string.Format("出錯(cuò),出錯(cuò)緣故{0}"),ex.Message);}}}否否是是否進(jìn)行操作圖5.2后臺治理操作程序盒圖重新操作儲存信息是操作是否成功否否是否選中數(shù)據(jù)進(jìn)行操作是治理后臺信息

6軟件測試測試是為了發(fā)覺程序中的錯(cuò)誤而執(zhí)行的程序。好的測試方案是極有可能發(fā)覺迄今為止尚未發(fā)覺的錯(cuò)誤的測試方案,成功的測試是發(fā)覺了至今為止尚未發(fā)覺的錯(cuò)誤的測試。為了能設(shè)計(jì)出有效的測試方案,軟件工程師必須深入明白得并正確運(yùn)用軟件測試的差不多準(zhǔn)那么:所有測試都應(yīng)該能追溯到用戶需求。從用戶角度看,最嚴(yán)峻的錯(cuò)誤是導(dǎo)致程序不能滿足用戶需求的哪些錯(cuò)誤。應(yīng)該預(yù)案在測試開始之前就制定出測試打算。實(shí)際上,一旦完成了需求模型就能夠著手制定測試打算,在建立了設(shè)計(jì)模型之后就能夠趕忙開始詳細(xì)設(shè)計(jì)的測試方案。把pareto原理應(yīng)用到軟件測試中。Pareto原理說明,測試發(fā)覺的錯(cuò)誤當(dāng)中的80%專門可能是由程序中20%的模塊造成的。完全測試是不可能的,測試需要終止。測試無法顯示軟件潛在的缺陷,〝測試只能證明軟件存在錯(cuò)誤而不能證明軟件沒有錯(cuò)誤〞。最初的測試通常把焦點(diǎn)放在單個(gè)程序模塊上,進(jìn)一步測試的焦點(diǎn)那么轉(zhuǎn)向在集成的模塊簇中查找錯(cuò)誤,最后在整個(gè)系統(tǒng)中查找錯(cuò)誤。在測試中不可能運(yùn)行路徑的每一種組合。然而,充分覆蓋程序邏輯,并確保程序設(shè)計(jì)中使用的所有條件是有可能的。應(yīng)由獨(dú)立的第三方來構(gòu)造測試。第三方測試最大的特點(diǎn)在于它的專業(yè)性、獨(dú)立性、客觀性和公平性。關(guān)于軟件開發(fā)商來說,通過第三方測試機(jī)構(gòu)的測試,不僅能夠通過專業(yè)化的測試手段發(fā)覺軟件錯(cuò)誤,關(guān)心開發(fā)商提升軟件的品質(zhì),而且能夠?qū)浖幸粋€(gè)客觀、科學(xué)的評判,有助于開發(fā)商認(rèn)清自己產(chǎn)品的定位。關(guān)于行業(yè)主管部門以及軟件使用者來說,由于第三方測試機(jī)構(gòu)獨(dú)立公平的地位,能夠?qū)Ρ粶y試的軟件有一個(gè)客觀公平的評判,關(guān)心用戶選擇合適、優(yōu)秀的軟件產(chǎn)品。充分注意測試中的群集現(xiàn)象。測試后程序殘存的錯(cuò)誤數(shù)目與該程序中已發(fā)覺的錯(cuò)誤數(shù)目或檢錯(cuò)率成正比。不要在某個(gè)程序段中找到幾個(gè)錯(cuò)誤就誤認(rèn)為該程序段就沒有錯(cuò)誤而不再測試,相反應(yīng)該對錯(cuò)誤群集的程序段進(jìn)行重點(diǎn)測試。6.1系統(tǒng)測試6.1.1單元測試單元測試是指對軟件中的最小可測試單元進(jìn)行檢查和驗(yàn)證。關(guān)于單元測試中單元的含義,一樣來說,要依照實(shí)際情形去判定其具體含義,如C語言中單元指一個(gè)函數(shù),Java里單元指一個(gè)類,圖形化的軟件中能夠指一個(gè)窗口或一個(gè)菜單等??偟膩碚f,單元確實(shí)是人為規(guī)定的最小的被測功能模塊。單元測試要緊使用白盒測試技術(shù),同時(shí)對多個(gè)模塊的測試能夠并行地進(jìn)行。6.1.2集成測試集成測試是測試和組裝軟件的系統(tǒng)化技術(shù),要緊目標(biāo)是發(fā)覺與接口有關(guān)的問題。由模塊組裝成程序時(shí)有兩種方法。一種方法是先分別測試每個(gè)模塊,再把所有模塊按設(shè)計(jì)要求放在一起結(jié)合成所要的程序,這種方法稱為非漸增式測試方法;另一種方法是把下一個(gè)要測試的模塊同差不多測試好的那些模塊結(jié)合起來進(jìn)行測試,測試完以后再把下一個(gè)應(yīng)該測試的模塊結(jié)合起來進(jìn)行測試。集成測試包括自頂向下集成和自底向上集成兩種方法,自頂向下集成是從主操縱模塊開始,沿著程序的操縱層次向下移動,逐步把各個(gè)模塊結(jié)合起來。在把附屬于〔及最終附屬于〕主操縱模塊的那些模塊組裝到程序結(jié)構(gòu)中去時(shí),或者使用深度優(yōu)先的策略,或者使用寬度優(yōu)先的策略。自底向上集成從〝原子〞模塊〔即在軟件結(jié)構(gòu)最底層的模塊〕開始組裝和測試。因?yàn)槭菑牡撞肯蛏辖Y(jié)合模塊,總能得到所需的下層模塊處理功能,因此不需要存根程序。6.2測試步驟在整個(gè)系統(tǒng)測試過程中,按以下4個(gè)步驟進(jìn)行,即模塊測試、聯(lián)合測試、確認(rèn)測試和系統(tǒng)測試。1.模塊測試。要緊是針對程序模塊進(jìn)行正確性檢驗(yàn)的測試。單元測試的內(nèi)容有:模塊接口測試即對通過被測模塊的數(shù)據(jù)流進(jìn)行測試;局部數(shù)據(jù)結(jié)構(gòu)測試,即設(shè)計(jì)測試用例檢查數(shù)據(jù)類型說明、初始化、缺省值等方面的問題,還要查清全程數(shù)據(jù)對模塊的阻礙;路徑測試,即選擇適當(dāng)?shù)臏y試用例,對模塊中重要的執(zhí)行路徑進(jìn)行測試,對差不多執(zhí)行路徑和循環(huán)進(jìn)行測試能夠發(fā)覺大量的路徑錯(cuò)誤;錯(cuò)誤處理測試即檢查模塊的錯(cuò)誤處理功能是否包含有錯(cuò)誤或缺陷;邊界測試,即要專門注意數(shù)據(jù)流、操縱流中剛好等于、大于或小于確定的比較值時(shí)出錯(cuò)的可能性。這部分的測試能夠發(fā)覺詳細(xì)設(shè)計(jì)和編程時(shí)犯下的錯(cuò)誤,如某個(gè)變量未賦值、數(shù)組的上下界不對等。2.聯(lián)合測試。在模塊測試的基礎(chǔ)上,需要將所有模塊按照設(shè)計(jì)要求組裝成為系統(tǒng),然后按業(yè)務(wù)流程對集成的系統(tǒng)進(jìn)行測試??上纫粋€(gè)模塊一個(gè)模塊的增加測試,直到集成為一個(gè)系統(tǒng)。那個(gè)測試過程能夠發(fā)覺概要設(shè)計(jì)時(shí)犯的錯(cuò)誤。3.確認(rèn)測試。又稱為有效性測試,它的任務(wù)是驗(yàn)證軟件的有效性,即驗(yàn)證軟件的功能、性能及其它特性是否與用戶的要求一致。那個(gè)測試過程最好由用戶參與測試。4.系統(tǒng)測試。將通過確認(rèn)測試的軟件,在用戶的實(shí)際環(huán)境〔硬件環(huán)境、軟件環(huán)境、數(shù)據(jù)、人員等〕進(jìn)行聯(lián)合測試和確認(rèn)測試。6.3測試數(shù)據(jù)的常用技術(shù)6.3.1白盒測試技術(shù)白盒測試技術(shù)要緊包括邏輯覆蓋和操縱結(jié)構(gòu)測試。所謂邏輯覆蓋是對一系列測試的總稱,這組測試過程逐步進(jìn)行越來越完整的通路測試。測試數(shù)據(jù)執(zhí)行〔或叫覆蓋〕程序邏輯的程度能夠劃分為以下不同覆蓋標(biāo)準(zhǔn):〔1〕語句覆蓋。為了暴露程序中的錯(cuò)誤,至少每個(gè)語句應(yīng)該執(zhí)行一次。語句覆蓋的含義是,選擇足夠多的測試數(shù)據(jù),使被測程序中的每個(gè)語句至少執(zhí)行一次?!?〕判定覆蓋。又稱分支覆蓋,它的含義是,不僅每個(gè)語句必須執(zhí)行一次,而且每個(gè)判定的每種可能的結(jié)果都應(yīng)該至少執(zhí)行一次,也確實(shí)是每個(gè)判定的每個(gè)分支都至少執(zhí)行一次?!?〕條件覆蓋。條件覆蓋的含義是,不僅每個(gè)語句至少執(zhí)行一次,而且是判定表達(dá)式中的每個(gè)條件都取到各種可能的結(jié)果?!?〕判定/條件覆蓋。它的含義是,選取足夠多的測試數(shù)據(jù),使得判定表達(dá)式中的每個(gè)條件都取到各種可能的值?!?〕條件組合覆蓋。它要求選取足夠多的測試數(shù)據(jù),使得每個(gè)判定表達(dá)式中條件的各種可能組合都至少顯現(xiàn)一次?!?〕路徑覆蓋。它的含義是,選取足夠多的測試數(shù)據(jù),使程序的每條可能路徑至少執(zhí)行一次。所謂操縱結(jié)構(gòu)測試是指通過程序的操縱結(jié)構(gòu)來設(shè)計(jì)測試用例的測試。其包括以下幾種測試方式如下所示:〔1〕差不多路徑測試。使用這種技術(shù)設(shè)計(jì)測試用例時(shí),第

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論