第06章 系統(tǒng)實施課件_第1頁
第06章 系統(tǒng)實施課件_第2頁
第06章 系統(tǒng)實施課件_第3頁
第06章 系統(tǒng)實施課件_第4頁
第06章 系統(tǒng)實施課件_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《信息系統(tǒng)開發(fā)》第六章 系統(tǒng)實施第06章系統(tǒng)實施第六章系統(tǒng)實施1.系統(tǒng)實施的主要活動2.程序設(shè)計3.系統(tǒng)測試4.系統(tǒng)轉(zhuǎn)換系統(tǒng)實施是整個管理信息系統(tǒng)建設(shè)的物理實現(xiàn)階段,要求自考者領(lǐng)會系統(tǒng)實施階段在系統(tǒng)建設(shè)中的地位與作用,領(lǐng)會系統(tǒng)實施階段的主要活動和內(nèi)容,深刻理解與熟練掌握結(jié)構(gòu)化程序設(shè)計的概念和方法,深刻理解系統(tǒng)測試的基本概念和對系統(tǒng)建設(shè)的重要意義,掌握系統(tǒng)測試的基本方法和步驟,領(lǐng)會系統(tǒng)轉(zhuǎn)換的任務(wù)和基本方式。本章的重點是結(jié)構(gòu)化程序設(shè)計和系統(tǒng)測試的基本概念和方法。難點是系統(tǒng)測試的方法和測試用例設(shè)計技術(shù)。第06章系統(tǒng)實施第六章系統(tǒng)實施6.l系統(tǒng)實施階段的主要活動6.2程序設(shè)計6.3系統(tǒng)測試6.4系統(tǒng)轉(zhuǎn)換第06章系統(tǒng)實施6.l系統(tǒng)實施階段的主要活動6.1.1系統(tǒng)實施在管理信息系統(tǒng)建設(shè)中的地位與作用6.1.2系統(tǒng)實施的主要活動第06章系統(tǒng)實施6.l系統(tǒng)實施階段的主要活動6.1.1系統(tǒng)實施在管理信息系統(tǒng)建設(shè)中的地位與作用在管理信息系統(tǒng)的生命周期中,經(jīng)過了系統(tǒng)規(guī)劃、系統(tǒng)分析和系統(tǒng)設(shè)計等階段以后,便開始了系統(tǒng)實施階段。在系統(tǒng)分析和設(shè)計階段,系統(tǒng)開發(fā)工作主要是集中在邏輯、功能和技術(shù)設(shè)計上,工作成果是以各種系統(tǒng)分析與設(shè)計文檔來體現(xiàn)的。系統(tǒng)實施階段要繼承此前各階段的工作,將技術(shù)設(shè)計轉(zhuǎn)化成為物理實現(xiàn),因此,系統(tǒng)實施的成果是系統(tǒng)分析和設(shè)計階段的結(jié)晶。系統(tǒng)實施是以系統(tǒng)分析和設(shè)計工作為基礎(chǔ)的,必須按照系統(tǒng)設(shè)計的文檔進(jìn)行。在管理信息系統(tǒng)的整個生命周期中,相對來講,系統(tǒng)分析與設(shè)計比系統(tǒng)實施要重要得多。只有在系統(tǒng)分析和設(shè)計工作完成以后,才能開始系統(tǒng)實施工作,切忌在系統(tǒng)開發(fā)工作中提前開展這部分的工作。第06章系統(tǒng)實施6.1系統(tǒng)實施階段的主要活動6.1.2系統(tǒng)實施的主要活動1.系統(tǒng)實施的前提條件系統(tǒng)實施是以系統(tǒng)分析和設(shè)計文檔資料為依據(jù)的。系統(tǒng)開發(fā)人員不僅要了解本人所承擔(dān)的部分,還要了解系統(tǒng)總體結(jié)構(gòu)、彼此接口、數(shù)據(jù)交換等相互聯(lián)系部分的內(nèi)容,以保證在系統(tǒng)實施工作中局部分散實施與系統(tǒng)整體的協(xié)調(diào)一致性。2.系統(tǒng)實施的主要活動這一階段由編碼、系統(tǒng)測試、系統(tǒng)安裝和新舊系統(tǒng)轉(zhuǎn)換等活動構(gòu)成。編碼又稱程序設(shè)計或編寫程序,按照詳細(xì)設(shè)計階段產(chǎn)生的程序設(shè)計說明書,用選定的程序設(shè)計語言書寫源程序。系統(tǒng)測試是系統(tǒng)質(zhì)量可靠性保證的關(guān)鍵,也是對需求分析、系統(tǒng)設(shè)計和編碼的最終評審。運用一定的測試技術(shù)與方法,通過模塊測試、組裝測試、確認(rèn)測試和系統(tǒng)測試幾個步驟,發(fā)現(xiàn)系統(tǒng)可能存在的問題。系統(tǒng)安裝主要是指各種軟、硬件設(shè)備的選型、論證、購置、安裝以及整個系統(tǒng)調(diào)試運行。新舊系統(tǒng)轉(zhuǎn)換,也稱系統(tǒng)切換與運行,是指以新開發(fā)的系統(tǒng)替換舊的系統(tǒng),并使之投入使用的過程。包括系統(tǒng)交付前的準(zhǔn)備工作、系統(tǒng)切換的方法和步驟等。第06章系統(tǒng)實施6.2程序設(shè)計6.2.1程序設(shè)計的基本概念6.2.2程序設(shè)計語言6.2.3結(jié)構(gòu)化程序設(shè)計6.2.4程序設(shè)計的風(fēng)格第06章系統(tǒng)實施6.2程序設(shè)計6.2.1程序設(shè)計的基本概念(1)1.程序設(shè)計的任務(wù)和作用程序設(shè)計又稱編碼,是系統(tǒng)生命周期中繼詳細(xì)設(shè)計之后的階段,這個階段的任務(wù)是使用選定的程序設(shè)計語言,把經(jīng)過概要設(shè)計和詳細(xì)設(shè)計所得到的以程序設(shè)計說明書體現(xiàn)的信息處理過程描述后,轉(zhuǎn)換成能在計算機(jī)系統(tǒng)上運行的程序源代碼(源程序)。系統(tǒng)設(shè)計是程序設(shè)計工作的先導(dǎo)和前提條件,而程序編碼是在此之前各階段的工作結(jié)晶,不僅體現(xiàn)了編程人員的工作成果,而且體現(xiàn)了開發(fā)周期各階段開發(fā)人員的勞動。第06章系統(tǒng)實施6.2程序設(shè)計6.2.1程序設(shè)計的基本概念(2)2.對程序設(shè)計的質(zhì)量要求對程序設(shè)計基本的質(zhì)量要求,當(dāng)然應(yīng)該是程序的正確性,即一方面正確運用程序設(shè)計語言環(huán)境,以避免語法錯誤,另一方面,程序所描述的過程和算法要滿足系統(tǒng)設(shè)計的功能要求,以避免語義錯誤。程序設(shè)計另一個主要的質(zhì)量要求是程序的可讀性,從軟件維護(hù)的角度出發(fā),程序設(shè)計人員在保證程序正確性的同時。還必須保證源程序的可讀性,以便于其他人可以讀懂和維護(hù)。從系統(tǒng)開發(fā)和應(yīng)用角度,程序的編寫和運行效率也是程序設(shè)計質(zhì)量的一個考慮方面。這里的效率指程序的語句行數(shù),對存儲空間的要求,以及程序運行速度等。在有些情況下,程序的可讀性與效率可能存在矛盾。從軟件工程出發(fā),對于絕大多數(shù)的程序模塊,編碼時應(yīng)把可讀性放在第一位,如果個別模塊對運行效率有特殊要求,就應(yīng)把具體要求做特殊處理,并通過一定的方法彌補(bǔ)其可讀性。第06章系統(tǒng)實施6.2程序設(shè)計6.2.1程序設(shè)計的基本概念(3)3.程序設(shè)計的步驟(1)了解計算機(jī)系統(tǒng)的性能和軟硬件環(huán)境,包括計算機(jī)的運算速度與存取速度,內(nèi)存和外存的大小,操作系統(tǒng)、程序設(shè)計語言以及開發(fā)工具,外設(shè)連接及通訊能力等重要性指標(biāo)。(2)充分理解系統(tǒng)概要設(shè)計和詳細(xì)設(shè)計的文檔,準(zhǔn)確把握系統(tǒng)的軟件功能,模塊間的邏輯關(guān)系算法的詳細(xì)方案以及輸入輸出要求。(3)根據(jù)程序設(shè)計要求和軟、硬件環(huán)境條件,選定程序設(shè)計語言。(4)編寫程序代碼。(5)程序的檢查、編譯和調(diào)試。第06章系統(tǒng)實施6.2程序設(shè)計6.2.2程序設(shè)計語言l.程序設(shè)計語言的發(fā)展與分類發(fā)展分為四代:機(jī)器語言、匯編語言、高級語言、第四代語言。2.程序設(shè)計語言的選擇信息系統(tǒng)的開發(fā)是面向具體應(yīng)用的,是以一定的軟件環(huán)境和工參具為基礎(chǔ)的,因此一般在程序設(shè)計語言上都選擇高級語言。只有在極特殊的條件下,才部分地使用低級語言,在程序設(shè)計語言的選擇上,主要應(yīng)考慮以下幾方面問題:(l)應(yīng)用的領(lǐng)域。 (6)有多少可用的支撐環(huán)境。(2)過程與算法的復(fù)雜程度。 (7)開發(fā)人員、用戶的知識水平和熟練程度。(3)數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)類型的考慮。 (8)程序設(shè)計語言的特性。(4)編碼及維護(hù)的工作量與成本。(9)系統(tǒng)規(guī)模。(5)兼容性和可移植性。 (10)系統(tǒng)的效率要求。以上是在選擇程序設(shè)計語言時要考慮的主要問題,可以看出并沒有哪種語言絕對的好或不好。每種語言都各有側(cè)重和特點,關(guān)鍵是要根據(jù)實際需要和可能,選擇最適用的語言,以滿足系統(tǒng)的要求。第06章系統(tǒng)實施6.2程序設(shè)計6.2.3結(jié)構(gòu)化程序設(shè)計(1)l.結(jié)構(gòu)化程序設(shè)計概念的提出結(jié)構(gòu)化程序設(shè)計的基本思想于70年代形成,即以自頂向下的方式,按照模塊化和逐步細(xì)化的思想,用一級單入口單出口的基本控制結(jié)構(gòu)及其反復(fù)嵌套來進(jìn)行程序設(shè)計。2.程序設(shè)計的基本控制結(jié)構(gòu)所有的程序都由基本控制結(jié)構(gòu)及其組合來實現(xiàn)。3.自頂向下的模塊化設(shè)計方法(1)自頂向下的模塊化設(shè)計。(2)逐步細(xì)化。第06章系統(tǒng)實施6.2程序設(shè)計6.2.3結(jié)構(gòu)化程序設(shè)計(2)2.程序設(shè)計的基本控制結(jié)構(gòu)(1)順序結(jié)構(gòu)。順序結(jié)構(gòu)表示含有多個連續(xù)的處理步驟,按程序書寫的先后順序執(zhí)行。處理過程從A到B順序執(zhí)行。(2)選擇結(jié)構(gòu)或條件結(jié)構(gòu)。由某個邏輯表達(dá)式的取值決定選擇。兩個處理加工中的一個。當(dāng)邏輯表達(dá)式P取值為真時執(zhí)行A,為假時執(zhí)行B。(3)循環(huán)結(jié)構(gòu)或重復(fù)結(jié)構(gòu)。它有兩種類型;一種稱為當(dāng)型循環(huán)結(jié)構(gòu)。在控制條件成立時,重復(fù)執(zhí)行特定的處理,從人口處首先測試邏輯表達(dá)式P,若P為真,則執(zhí)行S,然后再回到測試條件處;若P為假,則從出口離開此結(jié)構(gòu)。處理S的重復(fù)執(zhí)行次數(shù)由條件P控制,只要條件為真就執(zhí)行一次,因此處理S中必須包括修改邏輯表達(dá)式中的控制變量,否則將無限循環(huán)。另一種稱為"直到"型循環(huán)結(jié)構(gòu)。這種循環(huán)結(jié)構(gòu)與"當(dāng)"無本質(zhì)區(qū)別,只是測試條件在處理S之后執(zhí)行。因此"直到"型循環(huán)結(jié)構(gòu)不管條件P為何值,至少要執(zhí)行一次處理一次S。(4)多種情況選擇結(jié)構(gòu)或多分支結(jié)構(gòu)(CASE結(jié)構(gòu))。它是條件結(jié)構(gòu)的擴(kuò)充,當(dāng)被測試的變量有多種可能的取值,而根據(jù)不同的值需要選擇不同的處理時,可采用這種結(jié)構(gòu)。首先測試表達(dá)式P值,若P的值為民,執(zhí)行S,執(zhí)行后從出口離開此結(jié)構(gòu),當(dāng)P的值為其它值時,則執(zhí)行與之相應(yīng)的處理。以上控制結(jié)構(gòu)都有一個重要特征,即只有一個人口和一個出口。這種單人口單出口基本結(jié)構(gòu)單元,容易做到在一種結(jié)構(gòu)中嵌套其它結(jié)構(gòu),從而實現(xiàn)任何復(fù)雜的處理過程和算法。(5)結(jié)構(gòu)程序設(shè)計中的GOTO語句。采用基本控制結(jié)構(gòu)編著程序,完全可以避免使用GOTO語句,另一方面,也可以在確實需要無條件轉(zhuǎn)向的特殊情況下使用??傊瓽OTO語句不能濫用,但也不必禁止。GOTO語句可能在下面幾種情況下有用。①在沒有基本控制結(jié)構(gòu)語句的程序設(shè)計語言中,用GOTO實現(xiàn)三種基本控制結(jié)構(gòu);②在結(jié)束檢索、文件結(jié)束、發(fā)生錯誤等需進(jìn)行特殊處理需要從過程出口退出時,GOTO語句可能比有不變量和條件結(jié)構(gòu)都要簡潔明了。在除此之外的情況下,如果一定使用GOTO語句,要注意將轉(zhuǎn)移范圍控制在同一個控制結(jié)構(gòu)內(nèi)部。第06章系統(tǒng)實施入口AB出口FT出口ABp入口圖6-2順序結(jié)構(gòu)圖6-3選擇結(jié)構(gòu)第06章系統(tǒng)實施

出口SP入口TF

PS入口F出口圖6-4“當(dāng)”型循環(huán)圖6-5“直到”型循環(huán)第06章系統(tǒng)實施

S=S1S=S2S=S3S=Sn

P3P2P1測試P。。。。。。。。。。入口出口Pn

圖6-6多分支結(jié)構(gòu)第06章系統(tǒng)實施6.2程序設(shè)計6.2.3結(jié)構(gòu)化程序設(shè)計(3)3.自頂向下的模塊化設(shè)計方法(1)自頂向下的模塊化設(shè)計。進(jìn)入程序設(shè)計階斷,系統(tǒng)設(shè)計人員將對應(yīng)的HIPO圖或控制結(jié)構(gòu)圖中各個模塊的模塊說明書分別交給若干多程序員,由程序員進(jìn)行各個模塊的程序設(shè)計工作。對應(yīng)系統(tǒng)結(jié)構(gòu)圖中的每個模塊,都有一份模塊說明書,內(nèi)容包括模塊名稱、程序名稱、輸入數(shù)據(jù)、輸出數(shù)據(jù)、轉(zhuǎn)換過程等,這是程序員進(jìn)行程序設(shè)計的主要文檔和依據(jù)。按照自須向下的模塊化設(shè)計原則,第一步先把這個程序高度抽象,看作是一個最簡單的控制結(jié)構(gòu),它實際上是一個龐大而復(fù)雜的功能模塊。第二步分析這個功能的完成可以由幾部分組成,或可以劃分為幾個步驟,因此這個模塊可以進(jìn)一步分解成若干個較低一層的模塊,每個模塊都表示了一個較上層功能較小的功能。然后,對分解出來的每一個下層模塊,反復(fù)運用上述第二步,逐層分解努直到最低一層的每個模塊都非常簡單,功能很小,能夠容易地用程序語句實現(xiàn)為止,這樣分解出的模塊圖可用層次模塊圖表示。由于分解出來的每一個模塊都屬于基本控制結(jié)構(gòu)的集合,那么這個模塊化的程序就是一個結(jié)構(gòu)化程序。(2)逐步細(xì)化。自須向下模塊化設(shè)計,把一個程序分解為若干個層次模塊,但它以表達(dá)了程序中各功能之間的關(guān)系,卻不能表達(dá)每個模塊的內(nèi)部邏輯。采用逐步細(xì)化的方法,能把每一個模塊功能進(jìn)一步分解,分解成程序的內(nèi)部邏輯。對每一個模塊的細(xì)化應(yīng)包括功能細(xì)化、數(shù)據(jù)細(xì)化和邏輯細(xì)化等三個方面。功能細(xì)化應(yīng)對本模塊的功能進(jìn)行分析,力圖分解為若干個更為簡單的子功能;數(shù)據(jù)細(xì)化應(yīng)列出本模塊涉及到的數(shù)據(jù)項名各數(shù)據(jù)類型。邏輯細(xì)化確定所構(gòu)成的子模塊之間的結(jié)構(gòu)關(guān)系,用基本控制結(jié)構(gòu)來描述這些關(guān)系,從而形成各個模塊的內(nèi)部處理邏輯,一般用程序流程圖或其它工具來表示。這樣對每個模塊都進(jìn)行上述三個方面的細(xì)化,就可以將整個程序的邏輯過程描述清楚,為程序編碼做好準(zhǔn)備。第06章系統(tǒng)實施6.2程序設(shè)計6.2.4程序設(shè)計的風(fēng)格(1)良好的程序設(shè)計風(fēng)格包括以下幾個方面:1.標(biāo)志符的命名2.程序中的注釋3.程序的布局格式4.數(shù)據(jù)說明5.程序語句的結(jié)構(gòu)6.輸入和輸出7.程序的運行效率第06章系統(tǒng)實施6.2程序設(shè)計6.2.4程序設(shè)計的風(fēng)格(2)1.標(biāo)志符的命名(1)命名規(guī)則在整個程序中前后一致,不要中途變化,給閱讀理解帶來困難。(2)命名時一定要避開程序設(shè)計語言的保留字,否則程序在運行中會產(chǎn)生莫明其妙的錯誤。(3)盡量避免使用意義容易混淆的標(biāo)識名。第06章系統(tǒng)實施6.2程序設(shè)計6.2.4程序設(shè)計的風(fēng)格(3)2.程序中的注釋(l)注釋一定要在程序編制中書寫,不要在程序完成之后進(jìn)行補(bǔ)寫。(2)解釋性程序不是簡單直譯程序語句,而是要說明程序段的動機(jī)和原因,提供的是從程序本身難以得到的信息,說明"做什么"。(3)一定要保持注釋與程序的一致性,程序修改后,注釋也要及時做相應(yīng)修改。第06章系統(tǒng)實施6.2程序設(shè)計6.2.4程序設(shè)計的風(fēng)格(4)3.程序的布局格式一個程序可以充分利用空格、空行和右縮格等改善程序的布局,以獲得較好的視覺效果。4.數(shù)據(jù)說明在每個程序模塊的前面都集中一些數(shù)據(jù)說明語句。原則上講,數(shù)據(jù)結(jié)構(gòu)的組織及復(fù)雜程度是在設(shè)計階段決定的,與程序中說明的次序和語法無關(guān),只要做到先說明、后引用即可。但出于閱讀理解和維護(hù)的要求,最好使其規(guī)范化,使說明的內(nèi)容和次序固定。第06章系統(tǒng)實施6.2程序設(shè)計6.2.4程序設(shè)計的風(fēng)格(5)5.程序語句的結(jié)構(gòu)程序的邏輯結(jié)構(gòu)是在設(shè)計時定的,而在源程序中語句的結(jié)構(gòu)卻在很大程度上受編碼風(fēng)格的影響。下列規(guī)則有助于使語句簡單明了。(l)每句寫一行,不要多個語句寫在同一行。(2)避免使用復(fù)雜的條件判斷。(3)盡量減少使用否定的邏輯條件進(jìn)行測試。(4)盡量減少循環(huán)嵌套和條件嵌套的尾數(shù)。(5)用空格、括號使復(fù)雜表達(dá)式的運算次序清晰直觀。第06章系統(tǒng)實施6.2程序設(shè)計6.2.4程序設(shè)計的風(fēng)格(6)6.輸入和輸出信息系統(tǒng)一般都是交互式系統(tǒng),程序的輸入輸出是與用戶的使用直接有關(guān)的,應(yīng)通過輸入輸出格式和方式的設(shè)計實現(xiàn)友好的用戶界面。在輸入輸出設(shè)計時應(yīng)注意以下幾點:(1)應(yīng)針對用戶的不同對象、特點和要求設(shè)計人機(jī)交互方式。(2)程序在運行過程中應(yīng)有看明當(dāng)前狀態(tài)的標(biāo)注說明信息,以使用戶對進(jìn)程有了解,不至于面對靜止的、無內(nèi)容的屏幕不知所措。(3)交互式輸入的請求應(yīng)有明確提示,輸入格式應(yīng)簡潔,且與用戶所習(xí)慣或熟悉的方式接近;對于要求輸入的內(nèi)容,應(yīng)標(biāo)明可用的選擇和邊界條件,可能的話輔之以在線幫助功能;對用戶的輸入應(yīng)進(jìn)行有效性檢驗,以防無效數(shù)據(jù)的引入。(4)對于輸出的格式和方式,應(yīng)允許用戶進(jìn)行選擇或應(yīng)答,對于所有輸出都應(yīng)有明確的標(biāo)志和說明。(5)應(yīng)設(shè)計完備的錯誤檢測和恢復(fù)功能,以防程序非正常運行或終止,使用戶無所適從,又無從下手。第06章系統(tǒng)實施6.2程序設(shè)計6.2.4程序設(shè)計的風(fēng)格(7)7.程序的運行效率效率主要指計算機(jī)運行時間和存儲空間兩個方面,要在保證程序可讀性的前提下,提高效率。應(yīng)注意以下幾點:(l)寫程序之前,盡量簡化算術(shù)和邏輯表達(dá)式,且盡量用邏輯表達(dá)式。(2)盡量選用好的算法。(3)仔細(xì)研究循環(huán)嵌套,確定是否有語句可以從內(nèi)層移到循環(huán)體外。(4)盡量避免使用指針和復(fù)雜的表。(5)充分利用語言環(huán)境提供的函數(shù)。(6)使用有良好優(yōu)化特性的編譯程序,以生產(chǎn)高效的目標(biāo)代碼。第06章系統(tǒng)實施6.2程序設(shè)計6.2.4程序設(shè)計的風(fēng)格(1)良好的程序設(shè)計風(fēng)格包括以下幾個方面:1.標(biāo)志符的命名2.程序中的注釋3.程序的布局格式4.數(shù)據(jù)說明5.程序語句的結(jié)構(gòu)6.輸入和輸出7.程序的運行效率第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.l系統(tǒng)測試的基本概念6.3.2系統(tǒng)測試的方法6.3.3系統(tǒng)測試的步驟6.3.4測試用例設(shè)計技術(shù)6.3.5排錯第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.l系統(tǒng)測試的基本概念(1)1.系統(tǒng)測試的作用和意義系統(tǒng)測試是管理信息系統(tǒng)開發(fā)周期中一個十分重要而漫長的階段,其重要性體現(xiàn)在它是保證系統(tǒng)質(zhì)量與可靠性的最后關(guān)口,是對整個系統(tǒng)開發(fā)過程包括系統(tǒng)分析、系統(tǒng)設(shè)計和系統(tǒng)實現(xiàn)的最終審查。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.l系統(tǒng)測試的基本概念(2)2.系統(tǒng)測試的對象和目的系統(tǒng)測試的對象不僅僅是源程序,而應(yīng)是整個軟件。它把需求分析、概要設(shè)計、詳細(xì)設(shè)計以及程序設(shè)計各階段的開發(fā)文檔,包括需求規(guī)格說明、概要設(shè)計說明、詳細(xì)設(shè)計說明以及源程序,都作為測試的對象。由于"程序+文檔=軟件",所以系統(tǒng)測試的對象是軟件。系統(tǒng)測試的目的是發(fā)現(xiàn)軟件的錯誤。按發(fā)現(xiàn)的錯誤其范圍和性質(zhì)可劃分為以下幾類:(1)功能錯誤。(2)系統(tǒng)錯誤。(3)過程錯誤。(4)數(shù)據(jù)錯誤。(5)編碼錯誤。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.l系統(tǒng)測試的基本概念(3)3.系統(tǒng)測試的基本原則在進(jìn)行系統(tǒng)測試中應(yīng)遵循以下基本原則:(1)測試工作應(yīng)避免由原開發(fā)軟件的個人或小組來承擔(dān)。(2)設(shè)計測試方案時,不僅要包括確定的輸入數(shù)據(jù),而且應(yīng)包括從系統(tǒng)功能出發(fā)預(yù)期的測試結(jié)果。(3)測試用例不僅要包括合理、有效的輸入數(shù)據(jù),還要包括無效的或不合理的輸入數(shù)據(jù)。(4)不僅要檢驗程序是否做了該做的事,還要檢查程序是否同時做了不該做的事。(5)軟件仍存在錯誤的概率和已經(jīng)發(fā)現(xiàn)錯誤的個數(shù)是成正比的。(6)保留測試用倒,作為軟件文檔的組成部分。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.l系統(tǒng)測試的基本概念(4)4.測試和調(diào)試測試是發(fā)現(xiàn)系統(tǒng)中的錯誤,調(diào)試則是發(fā)現(xiàn)問題后,還必須診斷錯誤、改正錯誤。改正錯誤后,應(yīng)及時對系統(tǒng)文檔中相關(guān)的內(nèi)容進(jìn)行修改,以保證程序與文檔的一致性。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.l系統(tǒng)測試的基本概念(5)5.窮舉測試與選擇測試窮舉測試:能夠包含所有可能情況的測試。選擇測試:即從數(shù)量極大的測試用例中選擇一部分進(jìn)行選擇測試,從而獲得以較少的測試數(shù)據(jù)發(fā)現(xiàn)最多的錯誤的最佳測試效果。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.2系統(tǒng)測試的方法(1)對軟件進(jìn)行測試的主要方法見圖:一般源程序通過編譯后,要先經(jīng)過人工測試,然后再進(jìn)行機(jī)器測試。人工測試是采用人工方式進(jìn)行,目的在于檢查程序的靜態(tài)結(jié)構(gòu),找出編譯不能發(fā)現(xiàn)的錯誤。機(jī)器測試是運用事先設(shè)計好的測試用例,執(zhí)行被測程序,對比運行結(jié)果與預(yù)期結(jié)果的差別以發(fā)現(xiàn)錯誤。對某些類型的錯誤,機(jī)器測試比人工測試有效,但對另一些類型的錯誤,人工測試的效率往往比機(jī)器測試更高。而且機(jī)器測試只能發(fā)現(xiàn)錯誤的癥狀,不能進(jìn)行問題定位,而人工測試一旦發(fā)現(xiàn)錯誤。同時就確定了錯誤位置、類型和性質(zhì)。因此人工測試不可忽視,它是機(jī)器測試的準(zhǔn)備,是測試中必不可少的環(huán)節(jié)。第06章系統(tǒng)實施

軟件測試機(jī)器測試白盒測試黑盒測試會審走查個人復(fù)查人工測試

第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.2系統(tǒng)測試的方法(2)1.人工測試人工測試又稱代碼復(fù)審,主要有下列三種方法。(l)個人復(fù)查。 (2)走查。 (3)會審。2.機(jī)器測試通過在計算機(jī)上直接運行被測程序來發(fā)現(xiàn)程序中的錯誤。機(jī)器測試有黑盒測試和白盒測試兩種方法。(l)黑盒測試:也稱功能測試,將軟件看成黑盒子,在完全不考慮程序的內(nèi)部結(jié)構(gòu)和特性的情況下,測試軟件的外部特性。根據(jù)軟件的需求規(guī)格說明書設(shè)計測試用例,從程序的輸入輸出特性上測試是否滿足設(shè)定的功能。(2)白盒測試:也稱結(jié)構(gòu)測試,將軟件看作一個透明的白盒子,按照程序的內(nèi)部結(jié)構(gòu)和處理邏輯來選定測試用例,對軟件的邏輯路徑及過程進(jìn)行測試,檢查它與設(shè)計是否相符。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.3系統(tǒng)測試的步驟(1)系統(tǒng)測試工作一般有以下步驟:單元測試、組裝測試、確認(rèn)測試和系統(tǒng)測試,每一步都是在前一步的基礎(chǔ)上進(jìn)行,其過程如圖6-15所示:第06章系統(tǒng)實施

設(shè)計信息可運行系統(tǒng)系統(tǒng)其它元素單元測試單元測試單元測試組裝測試確認(rèn)測試系統(tǒng)測試軟件需求信息測后軟件測后模塊模塊模塊模塊確認(rèn)后軟件

圖6-15系統(tǒng)測試的步驟…第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.3系統(tǒng)測試的步驟(2)1.單元測試所謂單元是指程序中的一個模塊或一個子程序,是程序運行的最小單元,或是程序最小的獨立編譯單位。因此單元測試也稱模塊測試。模塊測試的目的是保證每個模塊作為一個獨立單元能夠正確進(jìn)行。在單元測試中往往是編碼和詳細(xì)設(shè)計的錯誤。進(jìn)行單元測試是采用白盒測試的方法,根據(jù)詳細(xì)設(shè)計的描述,從模塊的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,進(jìn)行測試。單元測試主要從下述五個方面先檢驗?zāi)K。(1)模塊接口:測試信息能否正確無誤地流入、流出模塊。(2)模塊內(nèi)部之?dāng)?shù)據(jù)結(jié)構(gòu):測試內(nèi)部數(shù)據(jù)的完整性,包括內(nèi)容、形式及相互關(guān)系。(3)邏輯路徑:測試應(yīng)覆蓋模塊中關(guān)鍵的邏輯路徑。(4)出錯處理:測試模塊對錯誤及產(chǎn)生錯誤的條件的預(yù)見能力并且檢測其出錯處理是否適當(dāng)。(5)邊界條件:軟件往往容易在邊界條件上發(fā)生問題,可利用邊值分析方法設(shè)計測試用例,以便檢查這類錯誤。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.3系統(tǒng)測試的步驟(3)2.組裝測試(1)對每個模塊完成了單元測試以后,需要按照設(shè)計時作出的層次模塊圖把它們連接起來,進(jìn)行組裝測試,也稱為組合測試或綜合測試。一個模塊能夠單獨地正常工作,但并不一定能保證聯(lián)結(jié)起來也能正常工作,這里可能存在接口和整體協(xié)調(diào)問題。如數(shù)據(jù)可能在接口的傳遞中丟失,一個模塊的運行可能會影響或干擾其它模塊運行;子功能不能協(xié)調(diào)成為主功能;有些單獨看來可允許的誤差,在組裝后形成的系統(tǒng)誤差可能累積到不能容忍的地步;全局?jǐn)?shù)據(jù)結(jié)構(gòu)與局部數(shù)據(jù)結(jié)構(gòu)的矛盾或不協(xié)調(diào)等,這些只有通過組裝測試來發(fā)現(xiàn)。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.3系統(tǒng)測試的步驟(4)2.組裝測試(2)組裝測試的策略分為增式測試和非增式兩大類;增式測試又分為自項向下、自底向上和混合方式三種。(l)非增式測試:在對所有模塊分別進(jìn)行了基于輔助模塊的單元測試以后,按程序結(jié)構(gòu)圖,將所有模塊聯(lián)接起來,把聯(lián)接后的程序作為一個整體來進(jìn)行測試。(2)增式測試:增式測試實際上是把單元測試與組裝測試結(jié)合起來,每次測試把下一個待測試的模塊與已經(jīng)測試過的那些模塊結(jié)合起來進(jìn)行測試。測試對象是組裝起來的,一次增加一個模塊,所以謂之"增式"。大多數(shù)軟件都采用增式測試方法,增式測試按其組裝的順序又分為自項向下測試和自底向上測試兩種。自項向下測試是按照程序模塊結(jié)構(gòu)圖,從頂層模塊開始自上而下地組裝,每次只增加一個模塊。每當(dāng)增加一個新的模塊時,都要同時加上與之接口的樁模塊,去掉上次測試中本模塊的替身樁模塊。

自底向上測試的特點剛好與自頂向下相反,它不能在測試早期顯現(xiàn)程序輪廓,總體結(jié)構(gòu)只有加上最后一個模塊才能體現(xiàn)。輔助模塊只有驅(qū)動模塊,而無需樁模塊,由于每個分支的測試均從下層模塊開始,所以較易設(shè)計測試用例,數(shù)據(jù)由已測過的事實的下級模塊提供。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.3系統(tǒng)測試的步驟(5)3.確認(rèn)測試確認(rèn)測試是要進(jìn)一步檢查軟件是否符合軟件需求規(guī)格說明書的全部要求,因此又稱為合格性測試或驗收測試。確認(rèn)測試的內(nèi)容主要包括:(1)功能測試。(2)性能測試。(3)配置審查。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.3系統(tǒng)測試的步驟(6)4.系統(tǒng)測試系統(tǒng)測試是將信息系統(tǒng)的所有組成部分包括軟件、硬件、用戶以及環(huán)境等綜合在一起進(jìn)行測試,以保證系統(tǒng)的各組成部分協(xié)調(diào)運行。系統(tǒng)測試要在系統(tǒng)的實際運行環(huán)境現(xiàn)場,在用戶的直接參與下進(jìn)行。系統(tǒng)測試是面向集成的整體系統(tǒng)。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.4測試用例設(shè)計技術(shù)1.邏輯覆蓋法是一種白盒測試法,是從程序內(nèi)部的邏輯結(jié)構(gòu)出發(fā)選取測試用例。2.等貨類劃分法等價類劃分法屬于黑盒測試方法,在完全不考慮程序內(nèi)部結(jié)構(gòu)的情況下,只根據(jù)程序的規(guī)格說明設(shè)計測試用例。它是把程序的輸入范圍劃分為若干部分,然后從每一部分中選舉少量代表性數(shù)據(jù)作為測試用例。

3.邊值分析法軟件在處理邊緣情況時,容易發(fā)生錯誤。針對這些區(qū)域設(shè)計測試用例,能夠提高軟件測試發(fā)現(xiàn)錯誤的概率。這種測試用例設(shè)計方法稱為邊值分析法。4.錯誤猜測法依靠軟件測試人員的經(jīng)驗和直覺來推測軟件中可能存在的各種錯誤,針對這些可能的錯誤設(shè)計測試用例,這就是錯誤猜測法。5.綜合測試法對系統(tǒng)進(jìn)行實際測試時,應(yīng)將各種方法結(jié)合起來綜合使用,使之互相補(bǔ)充。一般來說,先用黑盒法設(shè)計出基本的測試用例,然后再用白盒法補(bǔ)充一些必要的測試用例。第06章系統(tǒng)實施6.3系統(tǒng)測試6.3.5排錯測試是為了

溫馨提示

  • 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

提交評論