實現(xiàn)與測試課件_第1頁
實現(xiàn)與測試課件_第2頁
實現(xiàn)與測試課件_第3頁
實現(xiàn)與測試課件_第4頁
實現(xiàn)與測試課件_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章實現(xiàn)與測試9.1實現(xiàn)9.2測試9.3過渡與評價9.1實現(xiàn)9.1.1概述1.系統(tǒng)實現(xiàn)的任務(wù)系統(tǒng)實現(xiàn)的任務(wù)是通過一系列迭代過程,把信息系統(tǒng)的設(shè)計模型轉(zhuǎn)變成為可以交付測試的信息系統(tǒng),其重心是實現(xiàn)信息系統(tǒng)的軟件。信息系統(tǒng)軟件由源程序代碼、二進(jìn)制可執(zhí)行代碼和相關(guān)的數(shù)據(jù)結(jié)構(gòu)構(gòu)成,這些內(nèi)容以構(gòu)件的形式被組織。實現(xiàn)的工作包括確定系統(tǒng)的實現(xiàn)結(jié)構(gòu),子系統(tǒng)、類和接口的實現(xiàn),單元測試,系統(tǒng)集成等。2.實現(xiàn)工作的特點1)基于構(gòu)件的實現(xiàn)構(gòu)件(Component)是信息系統(tǒng)軟件的構(gòu)成件。在不同的開發(fā)階段,構(gòu)件表現(xiàn)為分析件、設(shè)計件、實現(xiàn)件、測試件等不同形式,也可以稱其為分析構(gòu)件、設(shè)計構(gòu)件、實現(xiàn)構(gòu)件和測試構(gòu)件。實現(xiàn)構(gòu)件是實現(xiàn)的產(chǎn)物,并具有《源代碼件》、《執(zhí)行件》、《文件》、《庫》、《表》、《文檔》等多種形式。《執(zhí)行件》是《源代碼件》編譯后的結(jié)果,可以直接投入運行?!段募肥切畔⒌拇鎯w,可以是《源代碼件》、《執(zhí)行件》、《文檔》等內(nèi)容?!稁臁房梢允穷悗?、動態(tài)鏈接庫、數(shù)據(jù)庫等?!侗怼繁硎緮?shù)據(jù)庫中的數(shù)據(jù)表。《文檔》泛指形成的所有文字材料。3.實現(xiàn)模型實現(xiàn)模型(ImplementationModel)是在實現(xiàn)工作中,對信息系統(tǒng)的抽象描述。在實現(xiàn)模型中,實現(xiàn)系統(tǒng)是實現(xiàn)模型的頂層子系統(tǒng),實現(xiàn)系統(tǒng)與設(shè)計模型中的設(shè)計系統(tǒng)相對應(yīng)。實現(xiàn)系統(tǒng)由多個實現(xiàn)子系統(tǒng)構(gòu)成,實現(xiàn)子系統(tǒng)又呈現(xiàn)為層次結(jié)構(gòu),在實現(xiàn)子系統(tǒng)中可以包含其它實現(xiàn)子系統(tǒng)。每一個實現(xiàn)子系統(tǒng)又由構(gòu)件和接口構(gòu)成。實現(xiàn)模型見圖9.1。圖9.1實現(xiàn)模型4.工作過程系統(tǒng)實現(xiàn)的工作過程見圖9.2。首先,由結(jié)構(gòu)師確定實現(xiàn)結(jié)構(gòu),然后再制定實現(xiàn)的迭代計劃。接下來由構(gòu)件師通過多次迭代實現(xiàn)各個子系統(tǒng)和每一個子系統(tǒng)中的類和接口,并進(jìn)行單元測試。構(gòu)件師把每次迭代的結(jié)果交由集成師進(jìn)行系統(tǒng)集成。通過多次迭代完成實現(xiàn)最終系統(tǒng)。本節(jié)介紹實現(xiàn)的主要工作,單元測試將在測試一節(jié)介紹。

9.1.2實現(xiàn)結(jié)構(gòu)1.實現(xiàn)結(jié)構(gòu)的概念實現(xiàn)結(jié)構(gòu)(ImplementationArchitecture)是信息系統(tǒng)在實現(xiàn)階段所呈現(xiàn)的系統(tǒng)結(jié)構(gòu),它由各個子系統(tǒng)按照確定的組成關(guān)系構(gòu)成。信息系統(tǒng)實現(xiàn)結(jié)構(gòu)的系統(tǒng)框架與設(shè)計結(jié)構(gòu)的系統(tǒng)框架完全相同,子系統(tǒng)的數(shù)目和相互之間的關(guān)系也完全一致。實現(xiàn)結(jié)構(gòu)與設(shè)計結(jié)構(gòu)的區(qū)別是子系統(tǒng)中的內(nèi)容不同。設(shè)計子系統(tǒng)中包括用例設(shè)計、設(shè)計類和接口,而實現(xiàn)結(jié)構(gòu)的子系統(tǒng)中則是構(gòu)件和接口。實現(xiàn)結(jié)構(gòu)與設(shè)計結(jié)構(gòu)的區(qū)別見圖9.3。圖9.3實現(xiàn)模型與設(shè)計模型的跟蹤關(guān)系實現(xiàn)模型中的子系統(tǒng)和設(shè)計模型中的子系統(tǒng)是一一對應(yīng)的,由一個實現(xiàn)子系統(tǒng)可以跟蹤到一個設(shè)計子系統(tǒng)。設(shè)計子系統(tǒng)中的設(shè)計類,在實現(xiàn)子系統(tǒng)中要變?yōu)闃?gòu)件。一個構(gòu)件可能包括多個設(shè)計類,但構(gòu)件總可以跟蹤到設(shè)計類。設(shè)計子系統(tǒng)對外提供的接口與實現(xiàn)子系統(tǒng)對外提供的接口應(yīng)該完全相同。圖9.3中的接口a是子系統(tǒng)向外提供的接口,接口b是該子系統(tǒng)所依賴的接口。3)關(guān)鍵構(gòu)件在節(jié)點中的分布所有構(gòu)件最終都要分布到不同的節(jié)點上。在結(jié)構(gòu)實現(xiàn)時,需要首先把關(guān)鍵構(gòu)件分布到相應(yīng)的節(jié)點上,通過系統(tǒng)配置圖來描述關(guān)鍵構(gòu)件在節(jié)點上的分布情況。例如,圖9.4是分布在書店信息系統(tǒng)中銷售節(jié)點、結(jié)算節(jié)點、數(shù)據(jù)庫服務(wù)器上的幾個關(guān)鍵構(gòu)件。圖9.4關(guān)鍵構(gòu)件節(jié)點分布示例9.1.3實現(xiàn)子系統(tǒng)1.構(gòu)件設(shè)計設(shè)計模型中的子系統(tǒng)包括設(shè)計類、用例設(shè)計和接口等內(nèi)容。設(shè)計模型轉(zhuǎn)變成為實現(xiàn)模型之后,實現(xiàn)模型中的子系統(tǒng)則是由一個個構(gòu)件構(gòu)成的(如圖9.3)。這就要求構(gòu)件師在實現(xiàn)一個子系統(tǒng)時,首先確定子系統(tǒng)中各個類應(yīng)該被含包到哪些構(gòu)件之中。這項工作主要確定子系統(tǒng)應(yīng)該由哪些構(gòu)件所構(gòu)成,并沒有實現(xiàn)具體的構(gòu)件,所以被稱為構(gòu)件設(shè)計。圖9.5“售書處理”銷售和結(jié)算節(jié)點的構(gòu)件設(shè)計在“數(shù)據(jù)庫服務(wù)器”上,有四個子系統(tǒng)和四個實體類。四個實體類均作為數(shù)據(jù)表存放,四個子系統(tǒng)對四個數(shù)據(jù)表提供管理,而且管理功能都比較具體。因此,可以把四個實體類設(shè)置為四個《數(shù)據(jù)表》構(gòu)件,把四個子系統(tǒng)設(shè)置成為四個《執(zhí)行件》構(gòu)件。其構(gòu)件設(shè)置見圖9.6。“售書處理”用例經(jīng)過分析之后的構(gòu)件在節(jié)點上的分布見圖9.7。圖9.6“售書處理”數(shù)據(jù)庫服務(wù)器構(gòu)件設(shè)計2.類的實現(xiàn)類實現(xiàn)的工作需要編寫類的程序代碼,并把編好的程序代碼類放入到構(gòu)件之中。實現(xiàn)類的依據(jù)是設(shè)計類和設(shè)計類所提供的接口,實現(xiàn)類的工作包括生成類、類屬性代碼和類操作代碼等。在實現(xiàn)一個類之前,首先應(yīng)該確定該類所屬的文件構(gòu)件。文件構(gòu)件是指類代碼所在的以文件形式組織的構(gòu)件。圖9.6已經(jīng)反映出類與構(gòu)件的對應(yīng)關(guān)系,但構(gòu)件和文件構(gòu)件兩個概念并不完全一樣。文件構(gòu)件就是文件,它是系統(tǒng)對信息在磁盤上的邏輯存儲單位。系統(tǒng)所有構(gòu)件最終都需要以文件的形式來存儲。在一個文件中可以存放一個構(gòu)件,也可以存放多個構(gòu)件。實現(xiàn)類的構(gòu)件與文件的關(guān)系也因編程語言而定。由于在設(shè)計類中對類以及類的屬性和操作已經(jīng)按照所采用的程序設(shè)計語言的語法格式進(jìn)行了描述,因此,在此生成類屬性代碼的工作就相對簡單了,只需要在所定義的類中描述類的各個屬性。需要注意的是,應(yīng)完全按照程序設(shè)計語言的語法格式,描述各個屬性的可見性、屬性名、屬性的類型,如果有初始值,也應(yīng)在屬性定義時一并賦給。類操作的實現(xiàn)比實現(xiàn)屬性要復(fù)雜。需要用程序設(shè)計語言編制能夠完成該操作功能的程序代碼。圖9.8是用Java語言描述的“書目”類的程序代碼,圖9.9是“待售圖書”類的程序代碼?!按蹐D書”類是“書目”類的子類。//類名:Books.java書目package銷售管理publicclassBooks{//定義屬性StringbookNo;//書號StringbookName;//書名Stringauthor;//作者StringpublishNo;//出版社編號Floatprice;//單價DatepublishDate;//出版日期IntbookTypeNo;//圖書類別//定義操作publicvoidsetBookNo(StringbookNo)//寫書號{this.bookNo=bookNo;}publicStringgetBookNo()//讀書號{returnthis.bookNo;}publicvoidsetBookName(StringbookName)//寫書名{this.bookName=bookName;}publicStringgetBookName()//讀書名{returnthis.bookName;}publicvoidsetAuthor(Stringauthor)//寫作者{this.author=author;}publicStringgetAuthor()//讀作者{returnthis.author;}publicvoidsetPublishNo(StringpublishNo)//寫出版社編號{this.publishNo=publishNo;}publicStringgetPublishNo()//讀出版社編號{returnthis.publishNo;}publicvoidsetPrice(Floatprice)//寫單價{this.price=price;}publicFloatgetPrice()//讀單價{returnthis.price;}publicvoidsetPublishDate(DatepublishDate)//寫出版日期{this.publishDate=publishDate;}publicDategetPublishDate()//讀出版日期{returnthis.publishDate;}publicvoidsetBookTypeNo(IntbookTypeNo)//寫圖書類別{this.bookTypeNo=bookTypeNo;}publicIntgetBookTypeNo()//讀圖書類別{returnthis.bookTypeNo;}}圖9.8“書目”類的程序代碼3.接口的實現(xiàn)在實現(xiàn)工作中,需要描述接口和實現(xiàn)接口。描述接口是通過程序設(shè)計語言所提供的語法格式,把接口精確地描述出來。實現(xiàn)接口則是在類或子系統(tǒng)中,對接口所定義的操作通過確定的方法予以實現(xiàn)。接口的實現(xiàn)與類中操作的實現(xiàn)完全相同,無非是這些操作是接口中定義的操作。對接口的描述應(yīng)視所選用的程序設(shè)計語言而定,有些程序設(shè)計語言提供對接口的描述語句,但有些則不提供對接口的描述功能。下面用Java的接口描述語句來描述圖9.7中的接口a。接口a的全名是“收款接口(InceptBF)”,它是“待售圖書”類向“收書款”類所提供的接口。該接口向“收書款”類提供“讀書單”、“寫交款標(biāo)記”和“讀交款標(biāo)記”三個操作。接口描述見圖9.10。系統(tǒng)集成是一個漸進(jìn)的、逐步迭代的過程。從大的方面看,需要通過多次迭代構(gòu)成最終系統(tǒng),把每一次迭代的結(jié)果集成到上一次迭代的內(nèi)容之中形成新的中間系統(tǒng)。在每一次迭代中,又需要把多個類集成為構(gòu)件,把多個構(gòu)件集成為子系統(tǒng),或者把多個構(gòu)件集成為能夠?qū)崿F(xiàn)本次迭代目標(biāo)的中間結(jié)果。集成的過程是一個設(shè)置集成環(huán)境、組裝、測試和實施運行的過程。首先需要設(shè)置集成環(huán)境。集成的基礎(chǔ)環(huán)境是系統(tǒng)開發(fā)的環(huán)境。9.2測試9.2.1概述1.測試的概念信息系統(tǒng)測試是在信息系統(tǒng)開發(fā)過程中,通過確定的方法,從信息系統(tǒng)模型和軟件代碼中發(fā)現(xiàn)并排除潛在的錯誤,以得到能可靠運行的信息系統(tǒng)的過程。信息系統(tǒng)開發(fā)的復(fù)雜性決定了在所開發(fā)的信息系統(tǒng)中肯定會隱含和殘存各種各樣的錯誤和問題。信息系統(tǒng)是一個復(fù)雜整體,包括硬件和軟件、模型和代碼、程序和數(shù)據(jù)。其中任何一個部分出現(xiàn)問題,信息系統(tǒng)都不能夠正常運行。因此,從廣義上講,信息系統(tǒng)測試是對信息系統(tǒng)所有內(nèi)容的測試。硬件網(wǎng)絡(luò)和系統(tǒng)支撐軟件是可以可靠使用的成熟產(chǎn)品,在應(yīng)用環(huán)境中,對其測試主要限于安裝測試和協(xié)調(diào)性測試。而數(shù)據(jù)的正確性則需要由數(shù)據(jù)員來保證。因此,本節(jié)主要討論對信息系統(tǒng)模型和程序代碼的測試。2.測試的工作測試要做大量的工作。它包括確定測試目的和測試對象、編制測試計劃、組織測試隊伍、選擇測試方法、設(shè)計測試用例、實施測試和測試結(jié)果評價等項工作。根據(jù)測試的對象和時間順序,需要進(jìn)行模型測試、單元測試、集成測試、系統(tǒng)測試和驗收測試等方面的工作。3.測試的基本原則(1)建立一支獨立于開發(fā)的測試隊伍。開發(fā)者與測試者對信息系統(tǒng)持有完全不同的態(tài)度。開發(fā)是建設(shè)性的,它以構(gòu)建滿足用戶需要的信息系統(tǒng)為目的。系統(tǒng)中問題越少,開發(fā)者的成功感越高。而測試是破壞性的,它假定被測試的信息系統(tǒng)中存在問題,并以找出問題為目的。被找出的問題越多,測試人員的成就感越強。由于開發(fā)者和測試者對系統(tǒng)持有不同的態(tài)度,因而原則上不能由開發(fā)者測試自己所開發(fā)的系統(tǒng)。(2)盡早不斷地進(jìn)行測試。應(yīng)盡早在系統(tǒng)開發(fā)的各個階段不斷地進(jìn)行測試,以便及時發(fā)現(xiàn)系統(tǒng)分析、系統(tǒng)設(shè)計和系統(tǒng)實現(xiàn)中存在的缺陷和錯誤,以免積少成多,在最后的測試階段再來解決,造成不必要的人力和物力的浪費。(3)嚴(yán)格按照測試計劃進(jìn)行測試。應(yīng)該嚴(yán)格按照測試計劃進(jìn)行測試,以保證測試進(jìn)度,使測試和糾錯工作在預(yù)定的范圍內(nèi)進(jìn)行,避免隨意性。(4)精心設(shè)計測試用例。測試用例直接反映被測對象的覆蓋范圍和測試深度。好的測試用例能夠集中發(fā)現(xiàn)系統(tǒng)中存在的隱患。因此,必須精心設(shè)計測試用例,用盡可能少的測試投入發(fā)現(xiàn)盡可能多的問題。(5)對錯誤多發(fā)程序段重點測試,對改正過的程序進(jìn)行回歸測試。在測試過程中,發(fā)現(xiàn)的錯誤越多,說明存在的隱患越大,對這樣的測試對象越應(yīng)該重點進(jìn)行深入測試。在糾正錯誤后還必須重新測試,以免帶來新的錯誤。(6)妥善保存各類測試資料,為系統(tǒng)維護(hù)提供方便。當(dāng)系統(tǒng)功能增加后,可以利用以前的測試用例或在其基礎(chǔ)上進(jìn)行修改、擴充后,再次用于系統(tǒng)測試,為重新測試或追加測試提供方便。9.2.2測試方法對信息系統(tǒng)測試可以采用多種方法,并可從不同角度對測試方法進(jìn)行分類。根據(jù)是否執(zhí)行被測程序,可以分為靜態(tài)測試和動態(tài)測試,其中動態(tài)測試方法又可以分為功能測試方法和結(jié)構(gòu)測試方法;根據(jù)測試對象,可以分為模型測試方法和程序測試方法;根據(jù)開發(fā)方法,可以分為傳統(tǒng)測試方法和面向?qū)ο鬁y試方法;根據(jù)測試的重復(fù)性,可以分為順序測試和回歸測試;根據(jù)被測對象的覆蓋性,可以分為窮舉測試和抽樣測試。下面主要介紹靜態(tài)測試方法和動態(tài)測試方法。1.靜態(tài)測試方法靜態(tài)測試是由測試者通過閱讀、檢查、分析被測的信息系統(tǒng)模型以及程序代碼,發(fā)現(xiàn)錯誤和問題的一種測試方法,這種測試不運行被測試的程序。靜態(tài)測試一般被用來檢查模型和文檔的正確性,查找程序中存在的邏輯問題。靜態(tài)測試難以查出程序中隱藏的深層問題,不能代替動態(tài)測試。2.動態(tài)測試方法動態(tài)測試是在計算機上直接運行測試實例,以發(fā)現(xiàn)程序錯誤的一種測試方法。動態(tài)測試方法又可以分為功能測試和結(jié)構(gòu)測試兩種方法。

功能測試又稱為黑盒測試,這種測試將軟件看成黑盒子,完全不考慮程序內(nèi)部的結(jié)構(gòu),只根據(jù)測試用例檢測程序是否滿足功能說明書所指定的功能的一類測試方法。結(jié)構(gòu)測試又稱為白盒測試。這種測試要求測試者必須了解程序的內(nèi)部邏輯結(jié)構(gòu),通過對不同邏輯路徑和過程的測試,檢查程序是否滿足設(shè)計的要求。測試用例對路徑的覆蓋率越高,測試范圍越廣,測試越充分。20次BA520條路徑。9.2.3模型測試1.模型測試的意義檢查并發(fā)現(xiàn)系統(tǒng)模型中存在錯誤的工作被稱為模型測試。信息系統(tǒng)開發(fā)過程要建立大量的模型。只有完整、正確和一致的系統(tǒng)模型才有可能得到成功的信息系統(tǒng),錯誤的系統(tǒng)模型必然帶來錯誤的結(jié)果。另外,信息系統(tǒng)的錯誤具有放大效應(yīng),前期模型中的錯誤帶到后期開發(fā)中,會把錯誤蔓延到更多的地方,并且解決起來需要花費更大的代價。因此,通過模型測試及時發(fā)現(xiàn)并糾正系統(tǒng)模型中的錯誤,對信息系統(tǒng)開發(fā)具有重要意義。模型測試是一項十分龐雜的工作。因為信息系統(tǒng)具有多種模型,包括業(yè)務(wù)模型、需求模型、分析模型、設(shè)計模型和實現(xiàn)模型等,每一種模型都是從一個階段或一個側(cè)面對信息系統(tǒng)的描述。保證這些模型的正確性、一致性和完整性是一項十分困難的工作。2.模型測試的方法和步驟可以運用多種方法進(jìn)行模型測試,但較實用的還是模型審查法。模型審查法是由建立模型的人員或?qū)<?,按照審查?biāo)準(zhǔn)對所要測試的模型文檔進(jìn)行分析和審查,找出模型中存在的問題。模型審查的一般過程如下:(1)確定審查的模型對象和審查的范圍。(2)收集被審查的模型文檔材料。(3)組織審查小組。(4)制定審查計劃,確定審查標(biāo)準(zhǔn)。(5)對模型材料實施審查。(6)收集并分析審查結(jié)果。(7)形成審查結(jié)論。3.模型測試的實例模型審查應(yīng)該按照完整性、正確性和一致性三個方面的標(biāo)準(zhǔn)要求進(jìn)行。對用例圖而言,完整性的含義是該用例圖完整地描述了被審查部分所需要的功能,既沒有漏掉必須要的功能用例,也沒有包含不需要的功能用例。

正確性的含義是每一個用例都精確地描述了所要描述的系統(tǒng)功能,這樣用例描述才是規(guī)范而正確的。

一致性含義更為廣泛,要求本圖與其它用例圖沒有沖突和矛盾,與系統(tǒng)功能沒有矛盾。我們以需求模型中的用例圖為例討論模型審查的基本過程。這里假定審查書店管理中的“圖書銷售管理”的用例圖(見圖9.11)。圖9.11“圖書銷售管理”功能用例圖根據(jù)模型審查的標(biāo)準(zhǔn),確定對用例圖審查的重點和方面:①該模型是否全面、準(zhǔn)確地描述了“圖書銷售”應(yīng)該具有的功能?是否存在疏漏或不需要的功能?②系統(tǒng)邊界的劃分是否合理?③所確定的參與者是否正確?④用例圖的描述是否規(guī)范?用例命名是否準(zhǔn)確?⑤本圖與其它模型是否存在不一致的地方?⑥本圖所需的描述文檔是否齊全?根據(jù)確定的審查重點和方面,由審查人員對用例圖進(jìn)行審查。發(fā)現(xiàn)兩個問題:①缺少“銷售分析”功能用例;②缺少詳細(xì)的用例說明。9.2.4單元測試單元測試是指對實現(xiàn)的構(gòu)件所實施的測試。單元測試包括構(gòu)件中的類測試、類關(guān)系測試、對象交互測試和構(gòu)件本身的測試。單元測試過程一般分為制定測試計劃、設(shè)計測試用例、實施測試等步驟。

類測試主要測試類的屬性和操作的方法。類測試可以采用代碼檢查和執(zhí)行測試用例兩種方法。兩種方法各有利弊:代碼檢查簡單、易于實施,但是容易受人為錯誤的影響,而且每一次回歸測試都要重新完整地檢查代碼;執(zhí)行測試用例測試得比較徹底,但構(gòu)造測試環(huán)境和開發(fā)測試驅(qū)動程序可能需要花費較大的工作量。因此,應(yīng)視具體情況選擇測試方法。屬性測試主要測試類的屬性是否有遺漏或重復(fù),屬性名寫法是否規(guī)范、正確,屬性類型設(shè)置是否正確等。一般對屬性的測試可以直接通過檢查程序文本來查找錯誤。操作測試是測試類中操作的方法是否存在錯誤。操作測試可以采用執(zhí)行測試用例的方法,其中又可以具體采用規(guī)格測試和結(jié)構(gòu)測試兩種方法。例如,對圖9.9“待售圖書”類中的“寫書單號”操作setBookBillkNo(StringbookBillNo)進(jìn)行測試,先給參數(shù)bookBillNo設(shè)置一個合適的書單號,執(zhí)行這個操作之后,在屬性bookBillNo中就應(yīng)該存有這個書單號。接下來執(zhí)行“讀書單號”操作getBookbillNo(),就會把屬性bookBillNo中的書單號讀出來。結(jié)構(gòu)測試也被稱為白盒測試,它要求測試者深入到方法內(nèi)部,測試操作方法的正確性。其所設(shè)置的測試用例要保證能夠遍歷程序的所有路徑。尤其對關(guān)鍵路徑和可能存在問題的路徑要予以高度關(guān)注。例如,對圖9.9中的“計算折扣率”操作countDiscount()的測試,就要考慮銷售圖書冊數(shù)在大于等于100、大于等于50、大于等于20、大于等于10,以及不大于10的情況下五種路徑的測試。在設(shè)置測試用例時,100、50、20、10這幾個數(shù)字就是關(guān)鍵的臨界數(shù)字。采用測試用例的方法進(jìn)行類測試時,除了要求構(gòu)建有效的測試用例之外,還要建立測試驅(qū)動程序。所謂測試驅(qū)動程序,就是能夠運行測試用例,對被測試類實施測試的一整套程序。測試驅(qū)動程序的設(shè)計應(yīng)該根據(jù)被測類的具體要求而定。在設(shè)計測試驅(qū)動程序時,盡量借用其它已經(jīng)使用過的相似類的測試驅(qū)動程序,以減輕設(shè)計測試驅(qū)動程序的工作量。9.2.5集成測試1.集成測試概念集成測試是把單元測試所得到的構(gòu)件,按照系統(tǒng)結(jié)構(gòu)要求集成為最終信息系統(tǒng)所實施的測試。每個構(gòu)件可單獨正常工作,但并不能保證組合在一起也能正常工作。集成測試將已測試過的構(gòu)件組合在一起,重點測試各構(gòu)件之間的接口和聯(lián)系,以及各構(gòu)件之間的協(xié)調(diào)一致性,發(fā)現(xiàn)與接口有關(guān)的錯誤。

2.集成測試方法集成測試方法可以分為集中式集成測試和迭代式集成測試兩種方法。集中式集成測試是指將單元測試所得到的各個構(gòu)件集中到一起進(jìn)行整體測試的方法。集中式集成測試就像在工廠生產(chǎn)線的最后裝配工序時對產(chǎn)品部件所實施的測試。集中式集成測試一般被用在傳統(tǒng)軟件開發(fā)過程中。統(tǒng)一軟件開發(fā)過程規(guī)定軟件開發(fā)采用迭代式開發(fā),而不宜采用集中式集成測試方法。迭代式集成測試是指在迭代過程中,將已測試的構(gòu)件增添到中間系統(tǒng)之中時所進(jìn)行的測試。每進(jìn)行一次迭代都要進(jìn)行一次測試。迭代過程中系統(tǒng)范圍在逐步擴大,所以錯誤容易被定位。3.集成測試過程集成測試是伴隨系統(tǒng)集成的一個較長的過程,并需要通過多次迭代來完成。在集成測試之初,首先應(yīng)該制定詳細(xì)的集成測試計劃。集成測試計劃應(yīng)該根據(jù)系統(tǒng)集成計劃的確定而定。整個集成測試應(yīng)該在集成測試計劃的指導(dǎo)下有條不紊地進(jìn)行。對于每一次迭代測試,應(yīng)該按照以下步驟進(jìn)行測試工作:(1)確定被測對象。明確本次迭代測試需要測試的構(gòu)件以及要把這些構(gòu)件增加到的中間系統(tǒng)。(2)設(shè)計測試用例。所設(shè)計的測試用例應(yīng)該能夠覆蓋被測內(nèi)容,盡可能發(fā)現(xiàn)和暴露隱藏的問題。(3)設(shè)置測試環(huán)境。測試環(huán)境要能夠正確運行被測構(gòu)件和測試用例。由于這些構(gòu)件要增加到中間系統(tǒng)之中,因此測試環(huán)境應(yīng)該以中間系統(tǒng)為基礎(chǔ)。(4)實施測試。運行測試用例,發(fā)現(xiàn)測試過程中暴露的問題,并及時記錄所發(fā)現(xiàn)的問題。(5)分析并報告測試結(jié)果。9.2.6系統(tǒng)測試系統(tǒng)測試是將軟件、硬件、網(wǎng)絡(luò)等系統(tǒng)的各個部分連接在一起,對整個系統(tǒng)進(jìn)行總的功能、性能等方面的測試。其任務(wù)就是測試軟件與系統(tǒng)其它部分是否能正常配套工作。通過與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方。常見的系統(tǒng)測試有以下幾類:1)恢復(fù)測試恢復(fù)測試檢測系統(tǒng)的容錯能力。其方法是,首先采用各種方法使系統(tǒng)出現(xiàn)故障,然后檢驗系統(tǒng)在故障狀態(tài)下的恢復(fù)能力。2)安全測試安全測試檢測系統(tǒng)的安全機制、保密措施是否完善且沒有漏洞,以驗證系統(tǒng)的防范能力。其方法是,設(shè)計測試用例,模仿非法入侵者,采用各種方法突破系統(tǒng)安全保密防線,從而檢測系統(tǒng)是否有安全保密方面的漏洞。理論上講沒有進(jìn)入不了的系統(tǒng),但只要使非法入侵花費的代價較大,入侵失去實際意義即可。3)強度測試強度測試是對系統(tǒng)在異常情況下的承受能力的測試,是為了檢測系統(tǒng)在極限狀態(tài)下運行時,性能下降的幅度是否在允許的范圍內(nèi)。設(shè)計測試用例時,考慮讓系統(tǒng)處于非正常數(shù)據(jù)量、非正常工作效率、非正常的運行狀態(tài)下,以發(fā)現(xiàn)不穩(wěn)定或不正常的情況組合。4)性能測試性能測試是檢驗系統(tǒng)是否滿足系統(tǒng)分析說明書對性能的要求。性能測試的內(nèi)容主要包括響應(yīng)時間、處理速度、吞吐量、處理精度等。性能測試貫穿于軟件測試的各個階段,通常與強度測試結(jié)合進(jìn)行,并同時對軟、硬件進(jìn)行測試。9.2.7驗收測試經(jīng)過以上種種測試后,系統(tǒng)已能正常安全運行,但其功能和性能是否確實與用戶的要求一致,還需經(jīng)過專家的評估和用戶的認(rèn)可。首先要進(jìn)一步驗證信息系統(tǒng)的有效性,檢查系統(tǒng)的功能和性能是否與用戶的要求一樣(其標(biāo)準(zhǔn)是系統(tǒng)需求說明書);然后審查系統(tǒng)的配置情況;再運行系統(tǒng),記錄運行情況,列出缺陷清單,提出解決辦法;最后由專家對系統(tǒng)功能和性能做出評估,并經(jīng)管理部門和用戶認(rèn)可,信息系統(tǒng)方可交給用戶使用。9.3過渡與評價9.3.1系統(tǒng)過渡系統(tǒng)過渡是由新信息系統(tǒng)代替舊系統(tǒng)的過程。此階段一般要完成兩項任務(wù):一是整理并輸入真實數(shù)據(jù),二是完成系統(tǒng)的切換。1.?dāng)?shù)據(jù)的整理和輸入數(shù)據(jù)整理是按照新建立的信息系統(tǒng)對數(shù)據(jù)的格式和內(nèi)容的要求,統(tǒng)一進(jìn)行數(shù)據(jù)的收集、分類和編碼。2.系統(tǒng)切換新舊信息系統(tǒng)的切換一般可以采用以下三種方法進(jìn)行:直接式、并行式、分段式。

1)直接式直接式是當(dāng)確定新系統(tǒng)能正常運行后,在某一確定時間,停止舊系統(tǒng)的運行,立即啟用新的信息系統(tǒng)。這種方式的優(yōu)點是簡單、節(jié)省費用和人力,但風(fēng)險較大。因為新系統(tǒng)沒有真正擔(dān)負(fù)過實際工作,運行中難免出現(xiàn)預(yù)想不到的問題。因此,對重要系統(tǒng)不宜采用此種方法。這種方法僅適用于系統(tǒng)規(guī)模小、業(yè)務(wù)簡單、數(shù)據(jù)不很重要的應(yīng)用場合。2)并行式并行式是針對直接式存在的問題,采用并行切換方法,即使新舊信息系統(tǒng)同時運行一段時間,經(jīng)過一段時間的考驗,對比結(jié)果沒有問題后,便可用新系統(tǒng)正式代替舊系統(tǒng)。并行時間一般為3~5個月。這種方法雖沒有多大風(fēng)險,但費用高、工作量大。3)分段式分段式是對上面兩種方法的綜合,它的特點是分階段、分部分進(jìn)行新舊替換,這樣既避免了直接式的風(fēng)險,又減輕了并行式費用和人力資源的浪費。除了確定系統(tǒng)的切換方式之外,還應(yīng)該由各個部門聯(lián)合組織人員,制定信息系統(tǒng)管理及操作制度(包括機房管理制度、技術(shù)檔案管理制度、數(shù)據(jù)輸入與維護(hù)制度、操作規(guī)程等),以便進(jìn)行系統(tǒng)運行的日常管理及對系統(tǒng)運行情況進(jìn)行記錄。9.3.2系統(tǒng)移交當(dāng)新系統(tǒng)完全取代了舊系統(tǒng)而投入正常運行后,就應(yīng)該著手準(zhǔn)備系統(tǒng)的移交工作,由開發(fā)方正式把信息系統(tǒng)的管理權(quán)移交給用戶。除了移交信息系統(tǒng)之外,還需同時移交合同規(guī)定的信息系統(tǒng)開發(fā)的所有技術(shù)文檔。9.3.3系統(tǒng)評價1.系統(tǒng)評價的目的在信息系統(tǒng)正式投入穩(wěn)定運行之后,就可對所開發(fā)的信息系統(tǒng)從技術(shù)性能及達(dá)到的經(jīng)濟效益等方面做出總體評價,以檢查信息系統(tǒng)是否達(dá)到了預(yù)期的目標(biāo),并指出系統(tǒng)的優(yōu)點和不足,提出改進(jìn)意見。最后據(jù)此寫出評價報告,為系統(tǒng)的改進(jìn)和擴充指出方向。2.系統(tǒng)評價的內(nèi)容1)技術(shù)性能評價技術(shù)性能評價的主要內(nèi)容有以下幾方面:(1)系統(tǒng)的總體技術(shù)水平。主要包括系統(tǒng)的技術(shù)先進(jìn)性、實用性,系統(tǒng)的開放性與集成程度等。(2)系統(tǒng)功能覆蓋范圍。主要包括對各個管理層次及各業(yè)務(wù)部門業(yè)務(wù)的支持程度,用戶要求滿意程度等。(3)信息資源開發(fā)與利用的范圍與深度。主要包括是否通過了信息的集成及功能的集成是否實現(xiàn)了業(yè)務(wù)流程的優(yōu)化,人、財、物等資源的合理使用,對市場、客戶等信息的利用率等。(4)系統(tǒng)本身的質(zhì)量。如系統(tǒng)的可使用性、正確性、適用性、可維護(hù)性、通用性、可靠性等。(5)系統(tǒng)的安全性與保密性。主要包括業(yè)務(wù)數(shù)據(jù)是否會被破壞或被修改,數(shù)據(jù)使用權(quán)限是否得到保障,防攻擊、防侵入的能力等。(6)系統(tǒng)文檔的完備性。2)系統(tǒng)效益評價系統(tǒng)效益評價可分為直接經(jīng)濟效益評價和間接經(jīng)濟效益評價。直接經(jīng)濟效益評價的內(nèi)容包括系統(tǒng)的投資額,運行費用,系統(tǒng)新增效益,投資回收期等。間接經(jīng)濟效益評價的內(nèi)容包括企業(yè)形象的改變,對員工素質(zhì)提高所起的作用,管理水平的提高,業(yè)務(wù)重組及管理流程優(yōu)化,資源的合理利用,提高決策成功率等。系統(tǒng)評價一般需要在系統(tǒng)穩(wěn)定運行一個時期,例如三個月或半年后再進(jìn)行。系統(tǒng)評價可結(jié)合系統(tǒng)驗收進(jìn)行。3.系統(tǒng)評價的指標(biāo)對信息系統(tǒng)的評價屬于多目標(biāo)問題,難度較大。通常是對那些可以定量分析的給出定量的指標(biāo),對不可能定量評價的則給出定性的評價。具體的評價指標(biāo)可分為下述三個方面。1)系統(tǒng)性能指標(biāo)

溫馨提示

  • 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

提交評論