報(bào)表輔助系統(tǒng)的開(kāi)發(fā)_第1頁(yè)
報(bào)表輔助系統(tǒng)的開(kāi)發(fā)_第2頁(yè)
報(bào)表輔助系統(tǒng)的開(kāi)發(fā)_第3頁(yè)
報(bào)表輔助系統(tǒng)的開(kāi)發(fā)_第4頁(yè)
報(bào)表輔助系統(tǒng)的開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、畢業(yè)設(shè)計(jì)(論文)報(bào)表輔助系統(tǒng)的開(kāi)發(fā)摘要現(xiàn)在報(bào)表的運(yùn)用日益廣泛,企業(yè)對(duì)報(bào)表的需求也逐日增長(zhǎng),能否快速開(kāi)發(fā)出準(zhǔn)確的報(bào)表并方便客戶的查看也成了大家關(guān)心的問(wèn)題。本課題研究的是報(bào)表開(kāi)發(fā)過(guò)程中方便數(shù)據(jù)導(dǎo)入導(dǎo)出及報(bào)表查看的系統(tǒng),采用的工具為MyEclipse8.5+Tomcat6.0+Firefox。系統(tǒng)分為兩部分,一部分完成數(shù)據(jù)管理功能,采用的技術(shù)為JSP+Servelet+Jdbc,另一部分完成報(bào)表的管理功能。采用的技術(shù)為Extjs+SSI框架技術(shù)。在IE9,火狐以及谷歌上都可以正常運(yùn)行,運(yùn)行后會(huì)先進(jìn)入一個(gè)主界面,從主界面可以進(jìn)入到相應(yīng)的功能模塊進(jìn)行報(bào)表的上傳,管理以及查看,也可以對(duì)數(shù)據(jù)庫(kù)里面的數(shù)據(jù)進(jìn)行

2、導(dǎo)入導(dǎo)出管理。關(guān)鍵字:報(bào)表,Birt,報(bào)表管理,數(shù)據(jù)管理AbstractNow the use of report increasingly widespread, the enterprise demand for report is growing day by day, and developing accurate reporting quickly and convenient for customer to view also became a concern proble for many developer.This topic research is convenient i

3、n the process of report development of import and export data and report to check the system, using tools for MyEclipse8.5 + Tomcat6.0 + Firefox.System is divided into two parts, part of the complete data management function, using the technology of JSP + Servelet + Jdbc, another part of the complet

4、e report management functions.Using the technology of Extjs+SSI.In Internet explorer, firefox and Google can run normally, after the operation will be into a main interface, can enter from the main interface to the corresponding function module to upload report management and view, also can undertak

5、e import and export of the inside of the database data management.Key words: Report, Birt ,Report Manage,Data Manage 目錄摘要 Abstract1引言1.1課題背景意義 11.2報(bào)表介紹 11.3國(guó)內(nèi)外現(xiàn)狀分析 22系統(tǒng)分析 2.1可行性分析 32.2需求分析 33概要設(shè)計(jì) 44數(shù)據(jù)庫(kù)設(shè)計(jì) 55詳細(xì)設(shè)計(jì)及系統(tǒng)實(shí)現(xiàn) 5.1架構(gòu)搭建 65.2命名規(guī)則 95.3模塊設(shè)計(jì) 96系統(tǒng)測(cè)試6.1軟件測(cè)試基礎(chǔ)理論176.2軟件測(cè)試目的176.3軟件測(cè)試方法分類(lèi)176.4報(bào)表輔助系統(tǒng)測(cè)試196.

6、5測(cè)試報(bào)告216.6軟件安裝227 總結(jié) 23致謝 24參考文獻(xiàn) 251 引言1.1課題背景意義報(bào)表是信息管理,決策支持等系統(tǒng)必不可少的一項(xiàng)最基本但又最重要的內(nèi)容。因?yàn)楣芾砗褪褂眯畔?,不僅僅是為了瀏覽和查詢,還有更重要的內(nèi)容:通過(guò)這些信息來(lái)提取和反映出更重要的內(nèi)容,報(bào)表以特定的格式向用戶反映高度濃縮的數(shù)據(jù),使用戶能夠更清晰的看出繁雜的內(nèi)容中更深刻更有價(jià)值的東西,為其決策提供支持。而這些有價(jià)值的信息的載體就是報(bào)表。隨著信息技術(shù)的廣泛應(yīng)用,電子政務(wù)、電子商務(wù)得到迅猛發(fā)展,數(shù)據(jù)的采集、傳輸、展示、交互、安全等問(wèn)題顯得越來(lái)越重要。報(bào)表作為一種信息組織和分析的有力手段,是電子政務(wù)、商務(wù)智能、企業(yè)信息系統(tǒng)

7、的重要組成部分,是進(jìn)行信息瀏覽、分析、輸出的有利工具。隨著Internet技術(shù)的推廣和企業(yè)信息化程度的提高,越來(lái)越多的報(bào)表應(yīng)用將在Web環(huán)境下開(kāi)發(fā)和運(yùn)行。而報(bào)表最大的用途就是直觀的展示數(shù)據(jù),所以充足的數(shù)據(jù)是報(bào)表開(kāi)發(fā)的前提,而報(bào)表輔助系統(tǒng)就是方便報(bào)表的開(kāi)發(fā)及查看而設(shè)計(jì)的系統(tǒng)。它主要分為兩部分,其中一部分用于開(kāi)發(fā)人員導(dǎo)入測(cè)試數(shù)據(jù),另一部分用于客戶查看報(bào)表。1.2報(bào)表介紹在用計(jì)算機(jī)管理和處理信息之前,人們都是利用手工的方式來(lái)得到想要的數(shù)據(jù)和結(jié)果。當(dāng)計(jì)算機(jī)出現(xiàn)之后,人們利用計(jì)算機(jī)處理數(shù)據(jù)和界面設(shè)計(jì)的功能來(lái)生成、展示報(bào)表。計(jì)算機(jī)上的報(bào)表的主要特點(diǎn)是數(shù)據(jù)動(dòng)態(tài)化,格式多樣化,可以說(shuō),具有了上面公式中報(bào)表的特

8、征,就可以稱之為報(bào)表。從報(bào)表的格式和樣式來(lái)說(shuō),報(bào)表可以分為固定格式報(bào)表和可變格式報(bào)表。所謂固定格式報(bào)表就是它的樣式,字體甚至每一個(gè)符號(hào)的位置必須是嚴(yán)格規(guī)定,不可改變的。比如則務(wù)報(bào)表、專用票據(jù)等等就是這類(lèi)報(bào)表。而另外一類(lèi)更注重?cái)?shù)據(jù)的內(nèi)容和結(jié)果的報(bào)表,在決策支持系統(tǒng)中,這種報(bào)表就更常見(jiàn),因?yàn)槟軌蚩焖偬峁?zhǔn)確的統(tǒng)計(jì)數(shù)據(jù)比樣式更加重要。從報(bào)表的實(shí)現(xiàn)方式來(lái)分,可分為設(shè)計(jì)時(shí)報(bào)表和運(yùn)行時(shí)報(bào)表,也就是通常所說(shuō)的靜態(tài)報(bào)表和動(dòng)態(tài)報(bào)表。靜態(tài)報(bào)表就是在程序設(shè)計(jì)階段就將報(bào)表所要表現(xiàn)的數(shù)據(jù)通過(guò)程序編碼來(lái)完成,將報(bào)表表現(xiàn)樣式設(shè)定好。這種報(bào)表功能強(qiáng)大,也可以完成幾乎所有可能想到的報(bào)表樣式。缺點(diǎn)是數(shù)據(jù)的動(dòng)態(tài)性和可控制性弱。而后

9、者往往數(shù)據(jù)和報(bào)表樣式都可以在程序運(yùn)行之后進(jìn)行操作和改變。當(dāng)然,它的表現(xiàn)樣式就很難達(dá)到靜態(tài)設(shè)計(jì)時(shí)能完成的那樣完美。從報(bào)表的設(shè)計(jì)思想和基本的報(bào)表模型看,報(bào)表可以分為基于分帶的報(bào)表和基于表格的報(bào)表。盡管表格千變?nèi)f化,但只要仔細(xì)探究便會(huì)發(fā)現(xiàn)表格組成的一些有規(guī)律性的東西,這是人們?cè)陂L(zhǎng)期表格設(shè)計(jì)中所形成的經(jīng)驗(yàn),這是一種專門(mén)的知識(shí),人們稱為表格設(shè)計(jì)知識(shí)。通過(guò)對(duì)報(bào)表的分析可以對(duì)報(bào)表進(jìn)行抽象,通??梢詫?bào)表抽象分解成為標(biāo)題、表頭、表體、表尾等幾部分。標(biāo)題和報(bào)表頭主要用于標(biāo)明報(bào)表內(nèi)容信息、或者打印日期等附加信息的處理。表體就是報(bào)表的主體部分,也是報(bào)表的核心部分,通常是報(bào)表用戶最關(guān)心的數(shù)據(jù)所在,本部分一般包括數(shù)據(jù)字

10、段名稱,數(shù)據(jù)主體,小計(jì)等等的處理。報(bào)表尾一般就是報(bào)表日期,報(bào)表總計(jì),打印日期等附加信息?;谶@種設(shè)計(jì)模型的就是帶狀報(bào)表。1.3 國(guó)內(nèi)外現(xiàn)狀分析由于報(bào)表系統(tǒng)在信息系統(tǒng)中的基礎(chǔ)性地位,報(bào)表統(tǒng)計(jì)的應(yīng)用非常廣泛。報(bào)表工具軟件也引起了國(guó)內(nèi)外一些軟件公司的關(guān)注和重視。近年來(lái),隨著軟件開(kāi)發(fā)技術(shù)的日新月異,報(bào)表技術(shù)也不斷成熟和完善,目前已經(jīng)出現(xiàn)了一些優(yōu)秀的頗具特色的報(bào)表工具軟件。以下就從國(guó)外和國(guó)內(nèi)兩個(gè)方面扼要介紹一下報(bào)表系統(tǒng)的研究現(xiàn)狀和進(jìn)展。目前國(guó)內(nèi)報(bào)表工具軟件以用友華表公司的Cell軟件為代表,其內(nèi)核采用了類(lèi)似微軟的Excel的技術(shù)。另外,還有一些比較優(yōu)秀的報(bào)表軟件如:深圳明宇科技的如意報(bào)表(Ming-We

11、b Report)它是基于J2EE,XML及.NET等國(guó)際主流軟件技術(shù)開(kāi)發(fā)的,提供了較強(qiáng)的可視化報(bào)表設(shè)計(jì)器,可以實(shí)現(xiàn)多種復(fù)雜報(bào)表,它可運(yùn)行于Windows,Unix,Linux等多種操作系統(tǒng)上,具備跨平臺(tái)特性等特點(diǎn)。另外還有潤(rùn)乾報(bào)表,其技術(shù)核心是他們獨(dú)創(chuàng)的非線性報(bào)表模型,在國(guó)內(nèi)有一定的影響力。目前國(guó)外的商業(yè)化報(bào)表產(chǎn)品主要有Crystal Report和Active Report等,其中又以Crystal Report為代表。水晶報(bào)表由總部位于美國(guó)加州的帕羅奧多的Crystal Decisions公司開(kāi)發(fā)。此公司的主要業(yè)務(wù)有:報(bào)告、分析、信息傳遞技術(shù)和服務(wù)等。水晶報(bào)表基本上可以認(rèn)為是高效能報(bào)表系

12、統(tǒng)的行業(yè)標(biāo)準(zhǔn),微軟在其.NET開(kāi)發(fā)平臺(tái)上捆綁的便是水晶報(bào)表。在開(kāi)源報(bào)表產(chǎn)品中比較有名的主要有BIRT和Jasper Report,Jasper Report的優(yōu)點(diǎn)就是使用簡(jiǎn)單,輸出方式多樣,這樣在實(shí)現(xiàn)客戶的需要的時(shí)候痛苦會(huì)少一些, 缺點(diǎn)就是文檔是收費(fèi)的,有些東西就只能是靠自己琢磨和嘗試。BIRT項(xiàng)目屬于Eclipse項(xiàng)目下的商務(wù)智能子項(xiàng)目,發(fā)展迅速,是一種柔性的報(bào)表解決方案,一方面為基本用戶提供了可視化的報(bào)表設(shè)計(jì)器,另一方面為高級(jí)用戶提供了豐富的集成接口,提高了報(bào)表的重用性。2系統(tǒng)分析系統(tǒng)分析的主要活動(dòng)是對(duì)軟件的可行性進(jìn)行評(píng)估,對(duì)軟件的需求進(jìn)行分析。這是軟件開(kāi)發(fā)的起始階段也是非常重要的階段。2

13、.1可行性分析可行性研究是在項(xiàng)目開(kāi)發(fā)前期對(duì)項(xiàng)目的一種考察和鑒定,對(duì)擬議中的項(xiàng)目進(jìn)行全面的、綜合的調(diào)查研究,其目的是要判斷項(xiàng)目可行與否,用最小的代價(jià),在盡可能短時(shí)間內(nèi)確定問(wèn)題是否能夠解決,它的目的不是解決問(wèn)題,而是確定問(wèn)題是否值得去解決,可行性從以下三個(gè)方面來(lái)考慮。本系統(tǒng)主要對(duì)數(shù)據(jù)庫(kù)進(jìn)行一些簡(jiǎn)單的操作,然后對(duì)報(bào)表進(jìn)行一些管理,需要用到前端技術(shù)有JSP及ExtJs框架技術(shù),后臺(tái)技術(shù)有servelet,SSI框架及數(shù)據(jù)庫(kù)連接技術(shù),這些技術(shù)在java web開(kāi)發(fā)中都比較常用,相關(guān)語(yǔ)法在很多書(shū)籍當(dāng)中都可以搜索到,整體難度不大。所以技術(shù)上是可行的。由于系統(tǒng)較小,對(duì)電腦配置沒(méi)有太高要求,并且所需時(shí)間也不多,

14、幾天就可以完成,所以成本低廉,基本可以忽略不計(jì)。所以經(jīng)濟(jì)上是可行的。系統(tǒng)總共分為兩部分總共六個(gè)界面,邏輯也不太復(fù)雜,對(duì)可能出現(xiàn)的一些異常我也做了處理,不需要進(jìn)行學(xué)習(xí),就可以直接操作。綜上所述,技術(shù)上、經(jīng)濟(jì)上、操作上都是可行的,并且要求不高所以系統(tǒng)可以進(jìn)行開(kāi)發(fā)。2.2需求分析由于報(bào)表應(yīng)用是越來(lái)越廣泛,越來(lái)越多的企業(yè)需要用報(bào)表來(lái)進(jìn)行各種業(yè)務(wù)分析,而報(bào)表開(kāi)發(fā)本身需要的時(shí)間不會(huì)太長(zhǎng),所以一般企業(yè)不會(huì)專門(mén)招收?qǐng)?bào)表開(kāi)發(fā)人員進(jìn)行報(bào)表開(kāi)發(fā),而是把報(bào)表外包到其它公司進(jìn)行開(kāi)發(fā)。但由于每個(gè)公司的數(shù)據(jù)十分保密,他們一般不會(huì)把數(shù)據(jù)泄漏給其它公司,頂多為了報(bào)表開(kāi)發(fā)需要把數(shù)據(jù)庫(kù)數(shù)據(jù)表表結(jié)構(gòu)給外包公司的開(kāi)發(fā)人員。而沒(méi)有數(shù)據(jù),

15、又無(wú)法完成報(bào)表的開(kāi)發(fā)。所以開(kāi)發(fā)人員必須親自向數(shù)據(jù)庫(kù)內(nèi)導(dǎo)入所需數(shù)據(jù)。直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作比較麻煩,容易出錯(cuò),為了一勞永逸,有必要開(kāi)發(fā)一個(gè)方便數(shù)據(jù)導(dǎo)入及修改的系統(tǒng)。開(kāi)發(fā)人員可以使用MyEclipse工具進(jìn)行報(bào)表開(kāi)發(fā),開(kāi)發(fā)完畢以后也可以使用MyEclipse來(lái)查看報(bào)表。但客戶大部分都不是程序員,他們一般不會(huì)用到開(kāi)發(fā)工具,當(dāng)然我們也不大可能去要求他們?yōu)榱瞬榭次覀冮_(kāi)發(fā)的報(bào)表而專門(mén)去安裝一個(gè)開(kāi)發(fā)工具,我們只能去適應(yīng)他們的要求,開(kāi)發(fā)一個(gè)可以脫離開(kāi)發(fā)工具來(lái)查看報(bào)表的系統(tǒng)。而報(bào)表輔助系統(tǒng)正是為了實(shí)現(xiàn)以上兩個(gè)功能而進(jìn)行開(kāi)發(fā)的,所以它的開(kāi)發(fā)價(jià)值顯而易見(jiàn),它的開(kāi)發(fā)需求也會(huì)隨著報(bào)表應(yīng)用的推廣而不斷增加。3概要設(shè)計(jì)經(jīng)過(guò)系

16、統(tǒng)分析階段的工作,系統(tǒng)必須“做什么”已經(jīng)清楚了,現(xiàn)在是決定“怎樣做”的時(shí)候。概要設(shè)計(jì)的基本目的就是回答“從總體上說(shuō),系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”這個(gè)問(wèn)題,按照“先邏輯,后物理”的原則來(lái)設(shè)計(jì)每個(gè)模塊的內(nèi)容。有了良好的設(shè)計(jì)后面的開(kāi)發(fā)才不會(huì)走太多的彎路。系統(tǒng)總體流程圖如下:圖3.1 系統(tǒng)流程圖4數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)際上就是一個(gè)由大量資料所組成的集合。但是這些資料不是雜亂無(wú)章的堆積在一起,而是按照一定的規(guī)律和規(guī)則存儲(chǔ)在計(jì)算機(jī)中。數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)是很明顯的, 它具有結(jié)構(gòu)化的存儲(chǔ)方式, 最小的空間冗余,而且在數(shù)據(jù)庫(kù)中處理事務(wù)的程序與被處理的事務(wù)資料是分開(kāi)存儲(chǔ)的,這種獨(dú)立性能夠更好的保持資料的完整性和程序的可擴(kuò)展性。數(shù)據(jù)

17、庫(kù)系統(tǒng)為我們提供了一種把我們的工作和生活緊密相關(guān)的信息集合在一起的方法,它還提供在某個(gè)集中的地方存儲(chǔ)和維護(hù)這些信息的方法。數(shù)據(jù)庫(kù)系統(tǒng)主要由三大部分組成:數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS是專門(mén)負(fù)責(zé)組織和管理資料信息的程序), 數(shù)據(jù)庫(kù)應(yīng)用程序(它使我們能夠獲取,顯示和更新由DBMS存儲(chǔ)的資料), 數(shù)據(jù)庫(kù)(按一定結(jié)構(gòu)組織在一起的相關(guān)資料的集合)。本系統(tǒng)數(shù)據(jù)管理模塊,主要是對(duì)數(shù)據(jù)庫(kù)中現(xiàn)有的數(shù)據(jù)表進(jìn)行操作,所以不需要建立數(shù)據(jù)表,而報(bào)表管理模塊需要建立兩個(gè)數(shù)據(jù)表分別來(lái)存儲(chǔ)報(bào)表及報(bào)表類(lèi)型的信息,數(shù)據(jù)表詳情如下:4.1報(bào)表詳情表此表用來(lái)記錄報(bào)表的詳細(xì)信息,其中birt_type外鍵關(guān)聯(lián)于類(lèi)型表的id。表4.1報(bào)表詳情

18、表字段名稱字段類(lèi)型字段大小主鍵備注idint16Y報(bào)表idbirt_typeint4N報(bào)表類(lèi)型statusint4N活動(dòng)狀態(tài)birt_namevarchar64N報(bào)表名稱file_namevarchar64N文件名稱descriptionvarchar256N描述uploadtimevarchar32N上傳時(shí)間4.2報(bào)表類(lèi)型表因?yàn)閳?bào)表類(lèi)型可會(huì)產(chǎn)生變動(dòng)所以需要單獨(dú)建立一張表。4.2報(bào)表類(lèi)型表字段名稱字段類(lèi)型字段大小主鍵備注idint16Y類(lèi)型idnamevarchar64N類(lèi)型名稱codevarchar16N類(lèi)型編碼descriptionvarchar256N描述5詳細(xì)設(shè)計(jì)及系統(tǒng)實(shí)現(xiàn)5.1架構(gòu)搭

19、建本系統(tǒng)采用MVC模式開(kāi)發(fā),將視圖層、模型層及控制層分開(kāi),層次清晰方便系統(tǒng)的開(kāi)發(fā)與修改。開(kāi)發(fā)工具使用MyEclipse8.5。因?yàn)榇讼到y(tǒng)兩個(gè)功能模塊雖然同為報(bào)表服務(wù),但使用對(duì)象不同,為了保證每個(gè)功能模塊的獨(dú)立性,我將在4個(gè)project內(nèi)完成。先建立一個(gè)空的Report Web Project,專門(mén)用來(lái)顯示報(bào)表,因?yàn)閳?bào)表所需的插件會(huì)自動(dòng)加載到工程里面。然后再新建Web Project分別用來(lái)提供程序入口,完成數(shù)據(jù)管理功能及報(bào)表管理功能。5.1.1數(shù)據(jù)管理工程JDK采用jre1.6版本,先新建源文件夾config用來(lái)存放數(shù)據(jù)庫(kù)配置信息,這樣數(shù)據(jù)庫(kù)信息一旦發(fā)生變化,就不需要改動(dòng)代碼,直接改配置文件

20、就行了。再建一個(gè)普通包org.study,然后后在此包下新建四個(gè)子包:(1)servlet:在里面新建ActionServlet類(lèi)用來(lái)處理前臺(tái)頁(yè)面發(fā)送過(guò)來(lái)的請(qǐng)求。(2)dao:里面存放用來(lái)處理與數(shù)據(jù)庫(kù)操作相關(guān)操作的業(yè)務(wù)邏輯的接口TableDao及實(shí)現(xiàn)類(lèi)TableDaoImpl。(3)service:里面新建接口TableService及實(shí)現(xiàn)類(lèi)TableServiceImpl,用來(lái)處理一般的業(yè)務(wù)請(qǐng)求。之所以把兩個(gè)處理業(yè)務(wù)邏輯的類(lèi)分開(kāi)是因?yàn)閿?shù)據(jù)庫(kù)類(lèi)型可能會(huì)發(fā)生變更,如果發(fā)生變更只需要改動(dòng)TableDaoImpl里面的代碼,其它的不需要變動(dòng),這樣可以減少修改量。(4)util:里面存放一些工具類(lèi),如

21、數(shù)據(jù)庫(kù)連接的類(lèi)DBUtil,存放常量的類(lèi)Constant,Excel文件操作類(lèi)HSSFReadWrite需要引入的js文件為jquery-1.4.3.js,因?yàn)楸鞠到y(tǒng)需要用到ajax技術(shù)需要使用的jar主要有以下幾種:(1)json包:commons-beanutils.jar、commons-collections.jar、commons-lang.jar、commons-logging.jar、ezmorph-1.0.6.jar、json-lib-2.2.3-jdk15.jar(2)MySql數(shù)據(jù)庫(kù)驅(qū)動(dòng)包:mysql-connector-java-5.1.8-bin.jar(3)Excel

22、包:poi-3.8-beta4-20110826.jar、poi-ooxml-schemas-3.8.jar、poi-ooxml-3.8-beta5-20111217.jar、excel-jxl.jar(4)文件上傳的包:commons-fileupload-1.2.1.jar、commons-io-1.4.jar工程結(jié)構(gòu)如下:圖5.1 數(shù)據(jù)管理工程dbm結(jié)構(gòu)圖 5.1.2報(bào)表管理工程本系統(tǒng)采用MVC模式開(kāi)發(fā),前臺(tái)頁(yè)面用Extjs框架技術(shù)完成,服務(wù)器端采用SSI(Struts2+spring+ibatis)框架技術(shù)完成,數(shù)據(jù)庫(kù)采用MySql數(shù)據(jù)庫(kù)。(1)創(chuàng)建包:先新建工程birts,再創(chuàng)建一個(gè)

23、父包org.study,然后在里面創(chuàng)建兩個(gè)子包birt及common,common用來(lái)存放工具類(lèi),birt里面再創(chuàng)建三個(gè)子包:a. action:里面創(chuàng)建類(lèi)BirtAction用來(lái)處理發(fā)過(guò)來(lái)的struts2請(qǐng)求。b. service:里面新建接口BirtService以及實(shí)現(xiàn)類(lèi)BirtServiceImpl用來(lái)操作數(shù)據(jù)庫(kù)。c. model:里面存放實(shí)體類(lèi)如Birt(報(bào)表類(lèi))及ObjType(報(bào)表類(lèi)型類(lèi))以及ibatis配置文件BirtSQL.xml用來(lái)配置SQL語(yǔ)句。再新建一個(gè)源文件夾config,里面存放數(shù)據(jù)庫(kù)配置文件perties,spring框架核心配置文件app

24、licationContext-base.xml,ibatis框架核心配置文件SqlMapConfig.xml以及struts2核心配置文件,再新建一個(gè)文件夾birt里面存放與實(shí)體類(lèi)Birt相關(guān)的struts2及spring配置文件。(2)引入jar包:需要使用到的jar包主要有以下幾種:a.spring框架包:cglib-nodep-2.1_3.jar、aopalliance.jar、aspectjweaver.jar、aspectjrt.jar、commons-logging.jar、spring.jar、struts2-spring-plugin-2.1.8.jar。b.struts2框

25、架包:commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar、freemarker-2.3.15.jar、ognl-2.7.3.jar、struts2-core-2.1.8.jar、xwork-core-2.1.6.jar、struts2-json-plugin-2.2.3.jar。c.batis包:ibatis-77.jar。d.Json包:commons-beanutils.jar、commons-collections.jar、commons-lang.jar、commons-logging.jar、ezmorph-1.0.6.j

26、ar、json-lib-2.2.3-jdk15.jar。e.MySql數(shù)據(jù)庫(kù)驅(qū)動(dòng)包:mysql-connector-java-5.1.8-bin.jar。f.文件上傳的包:commons-fileupload-1.2.1.jar、commons-io-1.4.jar。(3)引入js框架包:extjs-4.2.0,這是版本比較新的一種包,使用此包最大好處就是不用設(shè)置太多的css樣式,js語(yǔ)法也得到簡(jiǎn)化。工程目錄結(jié)構(gòu)如下:圖5.2 報(bào)表管理工程birts結(jié)構(gòu)圖 5.2命名規(guī)則(1)名字不能用保留字和關(guān)鍵字,但如果保留字或關(guān)鍵字中有字母大寫(xiě)就不算保留字或關(guān)鍵字了。 開(kāi)頭字符能用字母、$或者_(dá)。 名字

27、中不能用+、- 空格等字符。 部分易混的保留字關(guān)鍵字和非保留字關(guān)鍵字: null, native, goto,const,instanceof,default是關(guān)鍵字保留字 then , sizeof , main,Boolean,unsigned,java, Integer不是關(guān)鍵字保留字(2)常量的名字應(yīng)該都使用大寫(xiě)字母,并且指出該常量完整含義。如果一個(gè)常量名稱由多個(gè)單詞組成,則應(yīng)該用下劃線來(lái)分割這些單詞。(3)JSP包的名字都是由小寫(xiě)單詞組成。但是由于Java面向?qū)ο缶幊痰奶匦?,每一名Java程序員都可以編寫(xiě)屬于自己的Java包,為了保障每個(gè)Java包命名的唯一性,在最新的Ja

28、va編程規(guī)范中,要求程序員在自己定義的包的名稱之前加上唯一的前綴。由于互聯(lián)網(wǎng)上的域名稱是不會(huì)重復(fù)的,所以程序員一般采用自己在互聯(lián)網(wǎng)上的域名稱作為自己程序包的唯一前綴。類(lèi)的名字必須由大寫(xiě)字母開(kāi)頭而單詞中的其他字母均為小寫(xiě);如果類(lèi)名稱由多個(gè)單詞組成,則每個(gè)單詞的首字母均應(yīng)為大寫(xiě)例如TestPage;如果類(lèi)名稱中包含單詞縮寫(xiě),則這個(gè)縮寫(xiě)詞的每個(gè)字母均應(yīng)大寫(xiě),如:XMLExample,還有一點(diǎn)命名技巧就是由于類(lèi)是設(shè)計(jì)用來(lái)代表對(duì)象的,所以在命名類(lèi)時(shí)應(yīng)盡量選擇名詞。 方法的名字的第一個(gè)單詞應(yīng)以小寫(xiě)字母作為開(kāi)頭,后面的單詞則用大寫(xiě)字母開(kāi)頭。5.3模塊設(shè)計(jì)5.3.1主界面該模塊功能十分簡(jiǎn)單,只是為數(shù)據(jù)管理及報(bào)

29、表管理功能提供兩個(gè)入口,所以實(shí)現(xiàn)起來(lái)也比較簡(jiǎn)單,界面如下圖所示:圖5.3 主界面對(duì)于許多開(kāi)發(fā)人員來(lái)說(shuō),CSS樣式是一大難點(diǎn),因?yàn)闀?huì)寫(xiě)java代碼及js代碼的人很多,但要想制作比較絢麗的界面一般需要專業(yè)的美工。對(duì)于本功能模塊前端使用的是JSP技術(shù),樣式自然也成了一大難題。當(dāng)然寫(xiě)CSS樣式其實(shí)有一種比較簡(jiǎn)便的方法,就是去摳現(xiàn)有的時(shí),現(xiàn)在js框架很多,我們可以借用JS框架里面的樣式,或者我們?cè)跒g覽網(wǎng)站時(shí)遇到自己想要的樣式也可以拿過(guò)來(lái)使用。你可以在瀏覽器里面,將鼠標(biāo)移到某個(gè)元素上面,然后右鍵查看元素,就能夠看到該元素的html代碼及css樣式。如圖所示:圖5.4 CSS樣式的獲取對(duì)于樣式要求不高的系統(tǒng)

30、來(lái)說(shuō),這可以算是一種比較簡(jiǎn)便的方法,可以輕輕松松獲取大量樣式。5.3.2數(shù)據(jù)管理模塊(1)文件上傳界面圖5.5 文件上傳界面此界面主要有一個(gè)上傳控件,外加兩個(gè)按鈕,其主要功能就是Excel文件上傳,對(duì)于Excel文件存在一些要求:a.文件里面必須要有數(shù)據(jù),而且第一行為標(biāo)題行,也就是數(shù)據(jù)字段名稱,從第二行起才是要導(dǎo)入的數(shù)據(jù)。b.文件里面所有數(shù)據(jù)必須設(shè)置為文本格式,因?yàn)槿绻袷竭^(guò)于特殊,其數(shù)據(jù)受技術(shù)限制難以正常獲取,為了保證導(dǎo)入數(shù)據(jù)的準(zhǔn)確性,就不要使用特殊格式。c.標(biāo)題行字段不要出現(xiàn)“+”這樣的特殊字符,這樣在數(shù)據(jù)傳遞過(guò)程可能出現(xiàn)錯(cuò)誤,數(shù)據(jù)行沒(méi)有限制,是可以出現(xiàn)特殊字符的。d.中間最好不要出現(xiàn)空行

31、與空列,因?yàn)樽x取數(shù)據(jù)時(shí)遇到空行及空列時(shí)就終止了,后面的數(shù)據(jù)就獲取不到了。上傳文件以后就可以點(diǎn)擊“數(shù)據(jù)導(dǎo)入”按鈕,提交文件,并且跳轉(zhuǎn)到數(shù)據(jù)導(dǎo)入界面進(jìn)行數(shù)據(jù)導(dǎo)入。如果沒(méi)有上傳文件就直接點(diǎn)擊按鈕“數(shù)據(jù)導(dǎo)入”可能會(huì)出現(xiàn)問(wèn)題,所以這里要用js做一步驗(yàn)證,如果沒(méi)有上傳文件就不允許提交并彈窗提示“請(qǐng)上傳文件”。導(dǎo)出數(shù)據(jù)是不需要上傳文件的,因?yàn)樗槍?duì)的只是數(shù)據(jù)庫(kù)里面的數(shù)據(jù)表。(2)數(shù)據(jù)導(dǎo)出圖5.6 數(shù)據(jù)導(dǎo)出界面圖5.7 導(dǎo)出的Excel數(shù)據(jù)文件這個(gè)界面主要功能是將數(shù)據(jù)庫(kù)里面的數(shù)據(jù)導(dǎo)出到Excel文件里面,左邊的表格加載的是數(shù)據(jù)庫(kù)里面所有的數(shù)據(jù)表,選擇左邊的數(shù)據(jù)表以后,后臺(tái)就會(huì)根據(jù)選擇的數(shù)據(jù)表表名,將該數(shù)據(jù)表里

32、面的所有字段查詢出來(lái),加載到右邊的表格里面。然后就可以在右邊的表格里面字段后面的選擇框內(nèi)勾選字段,將所需字段的數(shù)據(jù)導(dǎo)出,我還設(shè)置了全選按鈕,勾選該按鈕會(huì)將所有的選擇框都選中,取消選擇也會(huì)將所有選擇框選擇去掉。我把此方法封裝成了一個(gè)通用方法,可以在多個(gè)地方使用。創(chuàng)建模板的功能是將所選擇的字段導(dǎo)出到Excel文件里面,數(shù)據(jù)不會(huì)導(dǎo)出,你可以根據(jù)導(dǎo)出的Excel模板自己填寫(xiě)要插入的數(shù)據(jù),然后再導(dǎo)入。而導(dǎo)出數(shù)據(jù),不僅能將選擇的字段作為標(biāo)題行導(dǎo)出,還能將對(duì)應(yīng)的數(shù)據(jù)導(dǎo)出到Excel表格,這樣做的目的是可以將自己認(rèn)為不合適的數(shù)據(jù)進(jìn)行編輯再重新導(dǎo)入,如圖5.5所示,為了使導(dǎo)出的數(shù)據(jù)看起來(lái)更加清晰,在數(shù)據(jù)寫(xiě)入Ex

33、cel文件時(shí),我還設(shè)置單元格的邊框及背景色等屬性,第一行的標(biāo)題為黃色背景,數(shù)據(jù)為白色背景,列標(biāo)題按照英文字母排序。當(dāng)然如果沒(méi)有選擇字段,是不能進(jìn)行創(chuàng)建模板以及導(dǎo)出數(shù)據(jù)操作的。本頁(yè)面的數(shù)據(jù)表都來(lái)自于現(xiàn)有的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)連接信息可以在源文件夾config下面的配置文件perties里面配置。Url是指數(shù)據(jù)庫(kù)的服務(wù)器地址,我們不但可以獲取本地?cái)?shù)據(jù)庫(kù)的信息,也可以獲取遠(yuǎn)程數(shù)據(jù)庫(kù)的信息,當(dāng)數(shù)據(jù)庫(kù)發(fā)生變更時(shí),修改一下url的值以及user(用戶名)、password(密碼)的值就行了,不需要改動(dòng)程序,操作十分方便。Table_schema是指數(shù)據(jù)庫(kù)對(duì)象名,同一個(gè)數(shù)據(jù)庫(kù)會(huì)有許多個(gè)數(shù)據(jù)庫(kù)對(duì)象,通過(guò)

34、這個(gè)屬性可以修改數(shù)據(jù)庫(kù)對(duì)象。driver是指數(shù)據(jù)庫(kù)驅(qū)動(dòng)類(lèi)的位置,本系統(tǒng)只支持MySql數(shù)據(jù)庫(kù),所以驅(qū)動(dòng)類(lèi)一般不會(huì)產(chǎn)生變更。(3)數(shù)據(jù)導(dǎo)入 圖5.8 數(shù)據(jù)導(dǎo)入界面 該界面的主要功能就是將Excel表格里面的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)相應(yīng)數(shù)據(jù)表中。剛跳轉(zhuǎn)到該界面時(shí),Excel表格中所有字段加載到左邊的表格中,數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)表會(huì)加載到右邊的表格中,如果點(diǎn)擊數(shù)據(jù)表,該表內(nèi)所有字段會(huì)分頁(yè)顯示到右邊表格內(nèi),如果數(shù)據(jù)量較大,就可以使用搜索及翻頁(yè)功能,這里的搜索都是模糊搜索。右邊的搜索框默認(rèn)搜素?cái)?shù)據(jù)庫(kù)的數(shù)據(jù)表,當(dāng)點(diǎn)擊數(shù)據(jù)表以后,右邊的搜索將搜索的的數(shù)據(jù)表里面的字段。因?yàn)镋xcel文件內(nèi)的字段可以與數(shù)據(jù)表里面的不同名

35、,所以在導(dǎo)入前必須先匹配字段。匹配時(shí),左右兩邊的字段個(gè)數(shù)必須相等,否則就會(huì)彈窗提示報(bào)錯(cuò)。匹配成功的字段會(huì)加載到下面的匹配表中,并且匹配過(guò)的字段不會(huì)重復(fù)在上面的表格里面顯示,并且也搜索不到,以免重復(fù)匹配。 匹配表里面的選擇框是用來(lái)選擇數(shù)據(jù)表的主鍵來(lái)決定是更新還是插入,如果沒(méi)有選擇則默認(rèn)插入,如果選擇了主鍵,則根據(jù)該主鍵對(duì)應(yīng)的數(shù)據(jù)進(jìn)行更新。因?yàn)橹谱饕粡垐?bào)表可能需要各種類(lèi)型的數(shù)據(jù),這樣報(bào)表的測(cè)試才會(huì)更加準(zhǔn)確,一些隱藏的問(wèn)題,才能及早發(fā)現(xiàn)。而這個(gè),插入及更新操作正好可以產(chǎn)生我們制作報(bào)表時(shí)所需的各種數(shù)據(jù)。導(dǎo)入時(shí)后臺(tái)會(huì)有異常捕獲,如果導(dǎo)入成功就會(huì)跳轉(zhuǎn)到文件上傳界面,如果導(dǎo)入的數(shù)據(jù)存在錯(cuò)誤,則錯(cuò)誤會(huì)反饋到前

36、臺(tái),錯(cuò)誤行及錯(cuò)誤原因都會(huì)顯示到錯(cuò)誤信息列表中。錯(cuò)誤信息表,初始狀態(tài)下是隱藏的,如果有錯(cuò)誤才會(huì)顯示出來(lái)。5.3.3報(bào)表管理模塊與上一個(gè)模塊不同,本模塊采用的是Extjs技術(shù),所以風(fēng)格與上一模塊會(huì)有較大的差別。使用Extjs最大的一個(gè)好處就是它集成了CSS樣式文件,窗口、面板以及文本框都有現(xiàn)成的模板樣式,不需要美工進(jìn)行特別的美化就可以直接進(jìn)行使用。當(dāng)然它的缺陷就是加載速度慢,不夠靈活。本模塊的動(dòng)態(tài)性,沒(méi)有上一個(gè)模塊強(qiáng),所以采用此項(xiàng)技術(shù)較為合適。本功能模塊主要功能就是,將已經(jīng)開(kāi)發(fā)好的報(bào)表上傳到服務(wù)器中,然后可以直接在瀏覽器管理報(bào)表信息,并查看報(bào)表。(1)報(bào)表上傳圖5.9 報(bào)表上傳頁(yè)面此頁(yè)面功能就是上

37、傳birt報(bào)表,并且只支持rptdesign格式的報(bào)表,因?yàn)楹竺嬗玫降膱?bào)表引擎是MyEclipse里面的一個(gè)插件,所以此處上傳的報(bào)表最好是在MyEclipse里面開(kāi)發(fā)的報(bào)表,否則后面可能出現(xiàn)無(wú)法正常顯示的異常。上面四個(gè)字段都為必填項(xiàng),如果有一項(xiàng)沒(méi)有填寫(xiě)是不允許提交的。報(bào)表類(lèi)型數(shù)據(jù)來(lái)自于數(shù)據(jù)庫(kù)中報(bào)表類(lèi)型表,由于報(bào)表類(lèi)型數(shù)據(jù)一般不會(huì)有太大變化,所以我沒(méi)有專門(mén)為報(bào)表類(lèi)型設(shè)置一個(gè)管理界面,如果此數(shù)據(jù)表數(shù)據(jù)產(chǎn)生變化,直接使用上面開(kāi)發(fā)的數(shù)據(jù)管理系統(tǒng)修改或插入即可。如果數(shù)據(jù)填寫(xiě)錯(cuò)誤,可以點(diǎn)擊重置按鈕,將填寫(xiě)的所有數(shù)據(jù)清空,重新填寫(xiě)。點(diǎn)擊取消,可以關(guān)閉窗口。上傳成功以后,會(huì)彈窗提示“上傳成功”,并刷新界面。(

38、2)報(bào)表管理圖5.10 報(bào)表管理頁(yè)面此頁(yè)面功能就是管理報(bào)表數(shù)據(jù)信息,它是一個(gè)樹(shù)狀結(jié)構(gòu)的表格,按照類(lèi)型把不同種類(lèi)的報(bào)表分開(kāi)顯示,這樣看起來(lái)更加清晰。點(diǎn)擊報(bào)表名稱,就會(huì)彈出報(bào)表信息編輯框,如果上傳報(bào)表時(shí)報(bào)表信息輸入錯(cuò)誤,還可以在這里進(jìn)行修改,在初始情況下,輸入框默認(rèn)不可編輯,當(dāng)點(diǎn)擊編輯按鈕以后,才能進(jìn)行編輯。點(diǎn)擊報(bào)表后面的刪除,就可以將報(bào)表信息刪除。這里是邏輯刪除,不是物理刪除,刪除后報(bào)表信息還在數(shù)據(jù)庫(kù),只是活動(dòng)狀態(tài)設(shè)置為0,列表數(shù)據(jù)加載時(shí),只查詢活動(dòng)狀態(tài)為1的數(shù)據(jù),為0的是加載不出來(lái)的。之所以使用邏輯刪除,是因?yàn)閿?shù)據(jù)可能會(huì)被誤刪,如果是物理刪除,重要的數(shù)據(jù)一旦被刪除,將不可恢復(fù),而邏輯刪除,并非

39、真正意義意思上的刪除,數(shù)據(jù)具有恢復(fù)性。點(diǎn)擊上傳報(bào)表按鈕,可以跳轉(zhuǎn)到報(bào)表上傳界面。點(diǎn)擊查看報(bào)表界面,就可以跳轉(zhuǎn)到報(bào)表列表界面。(3)報(bào)表列表圖5.11 報(bào)表查看列表這個(gè)界面與管理界面類(lèi)似,區(qū)別在于管理界面用于管理人員修改報(bào)表信息,而這個(gè)界面用于一般人員查看報(bào)表,所以本界面去掉了一些用于報(bào)表管理的按鈕。點(diǎn)擊報(bào)表名稱或者點(diǎn)擊報(bào)表名稱的單元格,都會(huì)觸發(fā)點(diǎn)擊事件,都可以查看到該報(bào)表,如下圖所示:圖5.12 報(bào)表頁(yè)面上圖即是前面上傳的birt報(bào)表,這個(gè)報(bào)表就是在MyEclipse里面開(kāi)發(fā)的,它是一張柱形圖。此頁(yè)面上的英文都是系統(tǒng)默認(rèn)的,如果要修改,必須修改運(yùn)行報(bào)表jar包viewservlets.jar,

40、不過(guò)改成中文有可能會(huì)亂碼。運(yùn)行報(bào)表時(shí),執(zhí)行的jar包比較多,所以運(yùn)行速度會(huì)比較的慢,這也是本系統(tǒng)唯一對(duì)服務(wù)器性能有較高要求的地方。運(yùn)行報(bào)表所調(diào)用的工程,就是前面所建立的空的Report Web Project。雖然我沒(méi)有在工程中主動(dòng)添加文件,但工程創(chuàng)建成功以后,執(zhí)行報(bào)表所需的配置文件、jar包及jsp文件會(huì)自動(dòng)加載進(jìn)去。報(bào)表開(kāi)發(fā)完成以后實(shí)際上就是一個(gè)rptdesign格式的配置文件,與xml文件有些類(lèi)似,開(kāi)發(fā)過(guò)程的各種設(shè)置會(huì)保存到這個(gè)配置文件。當(dāng)報(bào)表運(yùn)行時(shí),會(huì)發(fā)送請(qǐng)求到報(bào)表引擎,然后報(bào)表服務(wù)器會(huì)讀取配置文件內(nèi)容,根據(jù)設(shè)置,在后臺(tái)動(dòng)態(tài)合成JSP文件,發(fā)送到瀏覽器進(jìn)行顯示。6系統(tǒng)測(cè)試6.1軟件測(cè)試

41、基礎(chǔ)理論6.1.1 軟件測(cè)試定義軟件測(cè)試是根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)的一批測(cè)試用例,并利用這些測(cè)試用例運(yùn)行程序以及發(fā)現(xiàn)錯(cuò)誤的過(guò)程,即執(zhí)行測(cè)試步驟。軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼實(shí)現(xiàn)的最終審查,它是軟件質(zhì)量保證的關(guān)鍵步驟。6.1.2 軟件測(cè)試基本概念(1)測(cè)試的含義所謂測(cè)試,首先是一項(xiàng)活動(dòng),在這項(xiàng)活動(dòng)中某個(gè)系統(tǒng)或組成的部分將在特定的條件下運(yùn)行,結(jié)果將被觀察和記錄,并對(duì)系統(tǒng)或組成部分進(jìn)行評(píng)價(jià)。測(cè)試活動(dòng)有兩種結(jié)果:找出缺陷和故障,或顯示軟件執(zhí)行正確。測(cè)試是一個(gè)或多個(gè)測(cè)試用例的集合。測(cè)試用例:所謂測(cè)試用例是為特定的目的而設(shè)計(jì)的一組測(cè)試輸入、

42、執(zhí)行條件和預(yù)期的結(jié)果;測(cè)試用例是執(zhí)行測(cè)試的最小實(shí)體。(2)測(cè)試的步驟測(cè)試步驟詳細(xì)規(guī)定了如何設(shè)置、執(zhí)行、評(píng)估特定的測(cè)試用例。軟件生命周期:一個(gè)軟件生命周期包括制定計(jì)劃、需求分析定義、軟件設(shè)計(jì)、程序編碼、軟件測(cè)試、軟件運(yùn)行、軟件維護(hù)、軟件停用等8個(gè)階段。軟件測(cè)試在軟件生命周期中橫跨兩個(gè)階段:?jiǎn)卧獪y(cè)試階段,即在每個(gè)模塊編寫(xiě)出以后所做的必要測(cè)試;綜合測(cè)試階段,即在完成單元測(cè)試后進(jìn)行的測(cè)試,如集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試。6.2軟件測(cè)試目的測(cè)試是程序的執(zhí)行過(guò)程,目的在于發(fā)現(xiàn)錯(cuò)誤;不能證明程序的正確性,除非僅處理有限種情況。檢查系統(tǒng)是否滿足需求也是測(cè)試的期望目標(biāo)。一個(gè)好的測(cè)試用例在于發(fā)現(xiàn)了還未曾發(fā)現(xiàn)的錯(cuò)誤

43、;一次成功的測(cè)試則是發(fā)現(xiàn)了錯(cuò)誤的測(cè)試。只有進(jìn)行了充足的測(cè)試,軟件的準(zhǔn)確性才能有效提高,用戶使用時(shí)不會(huì)出現(xiàn)太多的問(wèn)題,這樣用戶的滿意度才能逐步提升。6.3軟件測(cè)試方法分類(lèi)軟件測(cè)試技術(shù)按照不同的劃分方法,有不同的分類(lèi):靜態(tài)測(cè)試、動(dòng)態(tài)測(cè)試;黑盒測(cè)試、白盒測(cè)試;單元測(cè)試、集成測(cè)試、回歸測(cè)試、系統(tǒng)測(cè)試、驗(yàn)證測(cè)試以及確認(rèn)測(cè)試。6.3.1 靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試按照軟件測(cè)試分析與非分析方法而論,軟件測(cè)試可以分靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。(1)靜態(tài)測(cè)試指不實(shí)際運(yùn)行軟件,主要是對(duì)軟件的編程格式、結(jié)構(gòu)等方面進(jìn)行評(píng)估。靜態(tài)測(cè)試包括:代碼檢查 、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。它可以由人工進(jìn)行,也可以借助軟件工具自動(dòng)進(jìn)行。(2)動(dòng)

44、態(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è)的目的。動(dòng)態(tài)測(cè)試包括:功能確認(rèn)與接口測(cè)試 ,覆蓋率分析,性能分析,內(nèi)存分析。6.3.2 黑盒白盒與白盒測(cè)試(1)黑盒測(cè)試按照軟件測(cè)試用例的設(shè)計(jì)方法而論,軟件測(cè)試可以分為白盒測(cè)試法和黑盒測(cè)試法。若測(cè)試規(guī)劃是基于產(chǎn)品的功能,目的是檢查程序各個(gè)功能是否能夠?qū)崿F(xiàn),并檢查其中的功能錯(cuò)誤,則這種測(cè)試方法稱為黑盒測(cè)試(Black-box Testing)方法。 黑盒測(cè)試又稱為功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試和基于規(guī)格說(shuō)明的測(cè)試。它是一種從用戶觀點(diǎn)出發(fā)的測(cè)試,一般被用來(lái)確認(rèn)軟件功能的正確性和可操

45、作性。黑盒測(cè)試主要根據(jù)規(guī)格說(shuō)明書(shū)設(shè)計(jì)測(cè)試用例,并不涉及程序內(nèi)部構(gòu)造和內(nèi)部特性,只依靠被測(cè)程序輸入和輸出之間的關(guān)系或程序的功能設(shè)計(jì)測(cè)試用例。黑盒測(cè)試有兩個(gè)特點(diǎn):黑盒測(cè)試與軟件的具體實(shí)現(xiàn)過(guò)程無(wú)關(guān),在軟件實(shí)現(xiàn)的過(guò)程發(fā)生變化時(shí),測(cè)試用例仍然可以使用。黑盒測(cè)試用例的設(shè)計(jì)可以和軟件實(shí)現(xiàn)同時(shí)進(jìn)行,這樣能夠壓縮總的開(kāi)發(fā)時(shí)間。(2)白盒測(cè)試白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于程序的測(cè)試,一般用來(lái)分析程序的內(nèi)部結(jié)構(gòu)。白盒測(cè)試要求是對(duì)某些程序的結(jié)構(gòu)特性做到一定程度的覆蓋,或者說(shuō)這種測(cè)試是“基于覆蓋率的測(cè)試”。通常的程序結(jié)構(gòu)覆蓋有:語(yǔ)句覆蓋,判定覆蓋,條件覆蓋,判定/條件覆蓋,路徑覆蓋。6.3.3 測(cè)試類(lèi)型按照

46、軟件測(cè)試的策略和過(guò)程來(lái)分類(lèi),軟件測(cè)試可分為單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)證測(cè)試和確認(rèn)測(cè)試。測(cè)試中的錯(cuò)誤分類(lèi):A類(lèi)錯(cuò)誤:致命錯(cuò)誤引起程序異常中斷或死機(jī)的錯(cuò)誤等。B類(lèi)錯(cuò)誤:功能錯(cuò)誤業(yè)務(wù)功能實(shí)現(xiàn)錯(cuò)誤、程序執(zhí)行結(jié)果錯(cuò)誤等。C類(lèi)錯(cuò)誤:功能缺陷功能操作不方便、缺少操作提示等。D類(lèi)錯(cuò)誤:界面缺陷界面設(shè)計(jì)不符合本系統(tǒng)的界面設(shè)計(jì)規(guī)范等。E類(lèi)錯(cuò)誤:測(cè)試正確正確的測(cè)試項(xiàng)、測(cè)試結(jié)果與預(yù)期的一致等。6.4報(bào)表輔助系統(tǒng)測(cè)試本系統(tǒng)各部分模塊,采黑白盒測(cè)試。6.4.1 測(cè)試用例設(shè)計(jì)要求一個(gè)好的測(cè)試用例,應(yīng)該包含以下信息: (1)軟件或項(xiàng)目的名稱。(2)軟件或項(xiàng)目的版本(內(nèi)部版本號(hào))。(3)功能模塊名。(4)測(cè)試用例的簡(jiǎn)單描

47、述,即該用例執(zhí)行的目的或方法。(5)測(cè)試用例的參考信息(便于跟蹤和參考)。(6)本測(cè)試用例與其他測(cè)試用例間的依賴關(guān)系。(7)本用例的前置條件,即執(zhí)行本用例必須要滿足的條件,如對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。(8)用例的編號(hào)(ID),如可以是:軟件名稱簡(jiǎn)寫(xiě)-功能塊簡(jiǎn)寫(xiě)-NO.。(9)步驟號(hào)、操作步驟描述、測(cè)試數(shù)據(jù)描述。(10)預(yù)期結(jié)果(這是最重要的)和實(shí)際結(jié)果(如果有BUG管理工具,這條可以省略)。(11)開(kāi)發(fā)人員(必須有)和測(cè)試人員(可有可無(wú))。(12)測(cè)試執(zhí)行日期。6.4.2 登錄系統(tǒng)模塊測(cè)試用例表6.1 數(shù)據(jù)管理模塊測(cè)試用例系統(tǒng)名稱報(bào)表輔助系統(tǒng)程序版本V1.0功能模塊數(shù)據(jù)管理模塊編制人徐波功能特性將文

48、件數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)及將數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)出到文件測(cè)試目的驗(yàn)證數(shù)據(jù)是否能正常導(dǎo)入導(dǎo)出測(cè)試頁(yè)面測(cè)試用例期望結(jié)果實(shí)際結(jié)果測(cè)試狀態(tài)index.jsp不上傳文件直接點(diǎn)擊按鈕“數(shù)據(jù)導(dǎo)入”彈窗提示“請(qǐng)上傳文件”彈窗提示“請(qǐng)上傳文件”正常import.jsp左邊輸入框輸入“d”搜索左邊表格顯示包含“d”及“D”的字段左邊表格顯示包含“d”及“D”的字段正常(續(xù))表6.1 數(shù)據(jù)管理模塊測(cè)試用例import.jsp右邊輸入框輸入“_c”搜索右邊表格顯示包含“_C”及“_c”的字段右邊表格顯示包含“_C”及“_c”的字段正常點(diǎn)擊搜索到數(shù)據(jù)表“d_category”右邊表格加載該數(shù)據(jù)表的所有字段,表格標(biāo)題變?yōu)椤白侄蚊Q”右邊

49、表格加載該數(shù)據(jù)表的所有字段,表格標(biāo)題未變不正常右邊輸入框輸入“es”搜索右邊表格加載數(shù)據(jù)表“d_category”中包含“es”的字段右邊表格顯示“description”正常左邊選擇三個(gè)文件字段,右邊選擇兩個(gè)數(shù)據(jù)表字段彈窗提示“兩邊字段個(gè)數(shù)必須相等!”彈窗提示“兩邊字段個(gè)數(shù)必須相等!”正常左右兩邊都選三個(gè)字段點(diǎn)擊匹配匹配的字段出現(xiàn)在匹配列表匹配的字段出現(xiàn)在匹配列表正常左右兩邊都不選擇字段,直接點(diǎn)擊匹配彈窗提示“請(qǐng)選擇要匹配的字段”彈窗提示“請(qǐng)選擇要匹配的字段”正常Excel文件數(shù)據(jù)deptno=1001dname=rdLocation=wuhan正常方式導(dǎo)入彈窗提示導(dǎo)入成功跳轉(zhuǎn)到“index

50、.jsp”界面彈窗提示導(dǎo)入成功跳轉(zhuǎn)到“index.jsp”界面正常Excel文件數(shù)據(jù)deptno=testdname=rdLocation=wuhan正常方式導(dǎo)入錯(cuò)誤信息列表內(nèi)提示錯(cuò)誤行“1”,錯(cuò)誤信息“Incorrect integer value: 'test' for column 'deptno' at row 1”顯示錯(cuò)誤信息“Incorrect integer value: 'test' for column 'deptno' at row 1”正常(續(xù))表6.1 數(shù)據(jù)管理模塊測(cè)試用例import.jspExcel文件

51、數(shù)據(jù)deptno=1001dname=rdLocation=wuhan正常方式導(dǎo)入錯(cuò)誤信息列表內(nèi)提示錯(cuò)誤行“1”,錯(cuò)誤信息“錯(cuò)誤信息列表內(nèi)提示錯(cuò)誤行“1”,錯(cuò)誤信息“Incorrect integer value: 'test' for column 'deptno' at row 1”錯(cuò)誤信息列表內(nèi)提示錯(cuò)誤行“1”,錯(cuò)誤信息“錯(cuò)誤信息列表內(nèi)提示錯(cuò)誤行“1”,錯(cuò)誤信息“Incorrect integer value: 'test' for column 'deptno' at row 1”正常export.jsp先選擇數(shù)據(jù)表“de

52、pt”,再選擇數(shù)據(jù)表“emp”右邊先加載dept的字段再 加載emp的字段右邊先加載dept的字段再 加載emp的字段正常不選字段,直接點(diǎn)擊“創(chuàng)建模板”彈窗提示“請(qǐng)選擇字段”導(dǎo)出一張空的Excel表格不正常選擇字段點(diǎn)擊“導(dǎo)出數(shù)據(jù)”成功導(dǎo)出數(shù)據(jù),并且標(biāo)題行為黃色背景,數(shù)據(jù)行為白色背景成功導(dǎo)出數(shù)據(jù),并且標(biāo)題行為黃色背景,數(shù)據(jù)行為白色背景正常選擇字段點(diǎn)擊“導(dǎo)出模板”成功導(dǎo)出模板文件,并且第一行標(biāo)題為黃色背景成功導(dǎo)出模板文件,并且第一行標(biāo)題為黃色背景正常使用導(dǎo)出的模板文件,重新錄入數(shù)據(jù),然后重新導(dǎo)入導(dǎo)入成功導(dǎo)入成功正常使用導(dǎo)出的數(shù)據(jù)文件,直接再重新導(dǎo)入導(dǎo)入成功導(dǎo)入成功正常表6.2 數(shù)據(jù)管理模塊測(cè)試用例

53、系統(tǒng)名稱報(bào)表輔助系統(tǒng)程序版本V1.0功能模塊報(bào)表管理模塊編制人徐波功能描述報(bào)表的上傳,報(bào)表信息編輯修改及報(bào)表顯示測(cè)試目的驗(yàn)證數(shù)據(jù)是否能正常導(dǎo)入導(dǎo)出測(cè)試頁(yè)面測(cè)試用例期望結(jié)果實(shí)際結(jié)果測(cè)試狀態(tài)birtUpload.jsp不填數(shù)據(jù)直接提交所有文本框邊框變?yōu)榧t色波浪線所有文本框邊框變?yōu)榧t色波浪線正常birtManage.jsp點(diǎn)擊刪除列表刷新,刪除數(shù)據(jù)消失列表刷新,刪除數(shù)據(jù)消失正常點(diǎn)擊報(bào)表名稱,修改后保存列表刷新,顯示修改后的報(bào)表信息列表刷新,顯示修改后的報(bào)表信息正常點(diǎn)擊“查看”按鈕跳轉(zhuǎn)到報(bào)表查看列表界面跳轉(zhuǎn)到報(bào)表查看列表界面正常點(diǎn)擊“上傳報(bào)表”按鈕跳轉(zhuǎn)到報(bào)表上傳界面跳轉(zhuǎn)到報(bào)表上傳界面正常birtLis

54、t.jsp點(diǎn)擊報(bào)表名稱顯示報(bào)表顯示報(bào)表正常6.5測(cè)試報(bào)告本系統(tǒng)經(jīng)過(guò)測(cè)試,各部分的功能基本正常,達(dá)到了預(yù)期的目的。通過(guò)對(duì)系統(tǒng)的全面測(cè)試,我學(xué)到了許多測(cè)試方面的知識(shí),了解到測(cè)試方法、測(cè)試經(jīng)驗(yàn)。通過(guò)本次設(shè)計(jì),使我了解到測(cè)試的重要性。通過(guò)測(cè)試,可以使軟件更適合用戶的需求,更加穩(wěn)定、可靠地運(yùn)行,并能適應(yīng)市場(chǎng)競(jìng)爭(zhēng),應(yīng)用前景廣泛。6.6軟件安裝 由于本系統(tǒng)采用了JSP、MySQL術(shù),因此需要的軟件包括有JDK、TOMCAT、MySQL。6.6.1 JDK的安裝首先,JDK的安裝配置。雙擊文件,裝完之后,設(shè)置環(huán)境變量。右擊“我的電腦” 選“屬性”,選“高級(jí)", 選“環(huán)境變量”,在這個(gè)窗口中選最下面的“新建"變量名:javapath,變量值:C:Program FilesJavajdk1.5.0_05(這個(gè)是安裝的默認(rèn)路徑),點(diǎn)擊“確定”,創(chuàng)建環(huán)境變量。6.6.2 TOMCAT的安裝其次,TOMCAT6.0的安裝配置。Tomcat解壓版以及安裝版文件,都可以在官網(wǎng)上下載。建議使用安裝版的服務(wù)器。下載以后,雙擊安裝文件,安裝過(guò)程需要修改用戶名及密碼,還可以設(shè)置端口號(hào)。安裝完成之后,可以將其引入MyEclipse里面,啟動(dòng)服務(wù)器執(zhí)行文件。如果已經(jīng)產(chǎn)生可執(zhí)行項(xiàng)目,可以將其復(fù)制到

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論