cmis_z8管理信息系統(tǒng)方案_第1頁
cmis_z8管理信息系統(tǒng)方案_第2頁
cmis_z8管理信息系統(tǒng)方案_第3頁
cmis_z8管理信息系統(tǒng)方案_第4頁
cmis_z8管理信息系統(tǒng)方案_第5頁
已閱讀5頁,還剩102頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第八章 系統(tǒng)實施 重點:程序設計與模塊調(diào)試。 要求:通過本章的學習,要使學生了解進行程序設計與系統(tǒng)測試的重要性,掌握模塊調(diào)試、子系統(tǒng)調(diào)試、總調(diào)試和系統(tǒng)調(diào)試、系統(tǒng)轉換的方法。28.1 系統(tǒng)實施概述 當系統(tǒng)分析與系統(tǒng)設計的工作完成以后,開發(fā)人員的工作重點就從分析、設計和創(chuàng)造性思考的階段轉入實踐階段。在此其間,將投入大量的人力、物力及占用較長的時間進行物理系統(tǒng)的實施、程序設計、程序和系統(tǒng)調(diào)試、人員培訓、系統(tǒng)轉換、系統(tǒng)管理等一系列工作,這個過程稱為系統(tǒng)實施。 這一階段要把系統(tǒng)分析階段建立的物理模型轉換為可實際運行的物理系統(tǒng)。一個好的設計方案,只有經(jīng)過精心實施,才能帶來實際效益。因此,系統(tǒng)實施階段的工

2、作對系統(tǒng)的質量有著十分直接的影響。3 1、系統(tǒng)實施階段的目標 在系統(tǒng)分析與與系統(tǒng)設計的階段中,開發(fā)人員為新系統(tǒng)設計了它的邏輯模型和物理模型。系統(tǒng)實施階段的目標就是把系統(tǒng)設計的物理模型轉換成可實際運行的物理系統(tǒng)。l系統(tǒng)實施階段既是成功地實現(xiàn)新系統(tǒng)的階段,又是取得用戶對新系統(tǒng)信任的關鍵階段。42、系統(tǒng)實施階段的任務 系統(tǒng)實施是開發(fā)信息系統(tǒng)的最后一個階段。這個階段的任務,是實現(xiàn)系統(tǒng)設計階段提出的物理模型,按實施方案完成一個可以實際運行的信息系統(tǒng),交付用戶使用。 系統(tǒng)設計報告詳細規(guī)定了系統(tǒng)的結構,規(guī)定了各個模塊的功能、輸人和輸出,規(guī)定了數(shù)據(jù)庫的物理結構。這是系統(tǒng)實施的出發(fā)點。如果說研制信息系統(tǒng)是蓋一幢

3、大樓,那么系統(tǒng)分析與設計就是根據(jù)蓋樓的要求畫出各種藍圖,而系統(tǒng)實施則是調(diào)集各種人員、設備、材料,在蓋樓的現(xiàn)場,根據(jù)圖紙按實施方案的要求把大樓蓋起來。5系統(tǒng)實施階段的任務 系統(tǒng)實施是一項復雜的工程,管理信息系統(tǒng)的規(guī)模越大,實施階段的任務越復雜。一般來說,系統(tǒng)實施階段主要有以下幾個方面的任務: 1按總體設計方案購置和安裝計算機網(wǎng)絡系統(tǒng); 2建立數(shù)據(jù)庫系統(tǒng); 3軟件準備與程序設計; 4輸入基礎數(shù)據(jù),進行系統(tǒng)測試; 5人員培訓,系統(tǒng)轉換,試運行。 68.2 程序設計 程序設計的主要依據(jù)是系統(tǒng)設計階段的HIPO圖以及數(shù)據(jù)庫結構和編程代碼設計。 程序調(diào)試的目的是要使用計算機語言實現(xiàn)系統(tǒng)設計中的每一個細節(jié)。

4、 編程的目的是為了實現(xiàn)開發(fā)者在系統(tǒng)分析和系統(tǒng)設計中所提出的管理方法和處理構想,編程不是系統(tǒng)開發(fā)的目的。在編程實現(xiàn)時。建議盡量借用已有的程序和各種開發(fā)工具,盡快、盡好地實現(xiàn)系統(tǒng)。7一、衡量編程工作指標 從目前的技術發(fā)展來看,衡量編程工作的指標大致開分為5個方面: 它可分解為兩個方面的內(nèi)容:一是程序或系統(tǒng)的安全可靠性;如數(shù)據(jù)存取的安全可靠性,通訊的安全可靠性,操作權限的安全可靠性。另一個方面是程序運行的可靠性,這一點只能靠程序調(diào)試時嚴格把關來保證編程工作質量。可靠性(可靠性(Reliability):):8 一般從用戶的角度來審查系統(tǒng)各部分是否都非常方便實用。它是系統(tǒng)今后能否投入實際運行的重要保證

5、。 即系統(tǒng)的劃分、書寫格式、變量的命名等等都是按統(tǒng)一規(guī)范進行的。這對于今后程序的閱讀、修改和維護都是十分必要的。 即程序清晰,沒有太多繁雜的技巧,能夠使他人容易讀懂。它對于大規(guī)模過程化開發(fā)軟件非常重要。實用性(實用性(Suability) :規(guī)范性(規(guī)范性(Standardability):):可讀性(可讀性(Readability):):9 即程序各部分相互獨立,沒有調(diào)子程序以外的其它數(shù)據(jù)關聯(lián)。也就是說不會發(fā)生那種在維護時,牽一發(fā)動全身的連鎖反應。 一般一個規(guī)范性、可讀性、結構劃分都很好的程序模塊,它的可維護性也是比較好的。可維護性可維護性(maintainability):10二、程序設計

6、方法 我們推薦使用現(xiàn)有軟件工具的方法,這樣做不但可以減輕開發(fā)的工作量,而且可以使系統(tǒng)開發(fā)過程規(guī)范,功能強,易于修改和維護。1.結構化方法結構化方法2.原型法原型法3.面向對象方法面向對象方法111、結構化程序設計方法 這種方法就是按照HIPO圖的要求,用結構化的方法來分解內(nèi)容和設計程序。在結構化程序設計方法的內(nèi)部它強調(diào)的是自頂向下地分析和設計,而在外部它強調(diào)自底向上地實現(xiàn)整個系統(tǒng)。它是當今程序設計的主流方法。 若遇到某些開發(fā)過程不規(guī)范,模塊劃分不細,或因特殊業(yè)務處理而需要模塊程序量較大時,結構化程序設計方法仍然是一種非常有效的方法。12結構化程序設計方法主要強調(diào)以下3點: 模塊內(nèi)部程序的各部分

7、要自頂向下地結構劃分; 各程序部分應按功能組合; 各程序部分的聯(lián)系盡量使用調(diào)用子程序(CALLRETURN)方式,不用或少用GOTO方式。132、速成原型式的程序開發(fā)方法這種開發(fā)方法是 首先將HIPO圖中類似帶有普遍性的功能模塊集中,如菜單模塊、報表模塊、查詢模塊、統(tǒng)計分析和圖形模塊等。 尋找有無相應和可用的軟件工具,若有則使用這些工具生成這些程序模型原型。 否則,則可考慮開發(fā)一個能夠適合各子系統(tǒng)情況的通用模塊。143、面向對象程序設計方法 面向對象的程序設計方法一般應與OOD所設計的內(nèi)容相對應。它實際上是一個簡單、直接的映射過程,即將OOD中所定義的范式直接用面向對象的程序(OOP),如C,

8、Smalltalk,Visual C等來取代即可。15三、常用的編程工具 目前市場上能夠提供系統(tǒng)選用的編程工具十分豐富。它們不僅在數(shù)量和功能上突飛猛進,而且在內(nèi)涵的拓展上也日新月異,為我們開發(fā)系統(tǒng)提供了越來越多、越來越方便的實用手段。 一般比較流行的軟件工具分為6類:一般編程語言,數(shù)據(jù)庫系統(tǒng),程序生成工具、專用系統(tǒng)開發(fā)工具、客戶/服務器(client/Server,C/S)型工具以及面向對象的編程工具。161、常用編程語言類 它是指由傳統(tǒng)編程工具發(fā)展而來的一類程序設計語言。通常有:C語言、C語言、COBOL語言、PL/1語言、PROLOG語言、OPS語言等等。 這些語言一般不具有很強的針對性,

9、它只是提供了一般程序設計命令的基本集合,因而適應范圍很廣,原則上任何模塊都可以用它們來編寫。缺點:其適應范圍廣是以用戶編程的復雜程度為代價的,程序設計的工作量很大。172、數(shù)據(jù)庫類 它是信息系統(tǒng)中數(shù)據(jù)存放的中心和整個系統(tǒng)數(shù)據(jù)傳遞和交換的樞紐。目前市場上提供的主要有兩類:xBASE系統(tǒng)(以微機關系數(shù)據(jù)庫為基礎)和大型數(shù)據(jù)庫系統(tǒng)。xBASE系統(tǒng):它主要是指以微機為基礎所形成的關系數(shù)據(jù)庫及其程序開發(fā)語言。典型產(chǎn)品代表有:dBASE-II,III, IV,F(xiàn)oxBASE以及FoxPro等各種版本。18大型數(shù)據(jù)庫系統(tǒng):指規(guī)模較大、功能較齊全的大型數(shù)據(jù)庫系統(tǒng)。 目前較為典型的系統(tǒng)有:ORACLE系統(tǒng),SY

10、BASE統(tǒng),INGRES系統(tǒng),INFORMAX系統(tǒng),DB2系統(tǒng)等等。 這類系統(tǒng)的最大特點是功能齊全,容量巨大,適合于大型綜合類數(shù)據(jù)庫系統(tǒng)的開發(fā)。在使用時配有專門的接口語言,可以允許各類常用的程序語言(稱之為主語言)任意地訪問數(shù)據(jù)庫內(nèi)的數(shù)據(jù)。193、程序生成工具類 它是指第四代程序(4GLs)生成語言,是一種常用數(shù)據(jù)處理功能和程序之間的對應關系的自動編程工具。 較為典型的產(chǎn)品有:AB(Application Builder應用系統(tǒng)建造工具),屏幕生成工具、報表生成工具以及綜合程序生成工具,即有FoxPro, Visual BASIC, Visual C+, CASE, Power Builder

11、(PB)等。 目前這類工具發(fā)展的一個趨勢是功能大型綜合化,生成程序模塊語言專一化。204、系統(tǒng)開發(fā)工具類 它是在程序生成工具基礎上進一步發(fā)展起來的,它不但具有4GLs的各種功能,而且更加綜合化、圖形化,使用起來更加方便。 目前主要有兩類:專用開發(fā)工具類和綜合開發(fā)工具類。專用開發(fā)工具類:是指對某應用領域和待開發(fā)功能針對性都較強的一類系統(tǒng)開發(fā)工具。21綜合開發(fā)工具類:它是針對一般應用系統(tǒng)和數(shù)據(jù)處理功能的一類系統(tǒng)開發(fā)工具。其特點是可以最大限度地適用于一般應用系統(tǒng)開發(fā)和生成。 如專門用于開發(fā)查詢模塊的SQL,專門用于開發(fā)數(shù)據(jù)處理模塊的SDK(Structured Development Kits),專

12、門用于人工智能和符號處理的Prolog for Windows, 專門用于開發(fā)產(chǎn)生式規(guī)則知識處理系統(tǒng)的OPS(Operation Process System)等等。22 在實際開發(fā)系統(tǒng)時,只要我們再自己動手將特殊數(shù)據(jù)處理過程編制成程序模塊,則可實現(xiàn)整個系統(tǒng)。 常見的系統(tǒng)開發(fā)工具有:FoxPro, dBASE-V, Visual BASIC, Visual C+, CASE, Team Enterprise Developer等等。 這種工具雖然不能幫用戶生成一個完整的應用系統(tǒng),但可幫助用戶生成應用系統(tǒng)中大部分常用的處理功能。235、客戶/服務器(C/S)工具類 它是采用了人類在經(jīng)濟和管理學中

13、經(jīng)常提到的“ 專業(yè)化分工協(xié)作”的思想而產(chǎn)生的開發(fā)工具。 它是在原有開發(fā)工具的基礎上,將原有工具改變?yōu)橐粋€ 個既可被其它工具調(diào)用的,又可以調(diào)用其它工具的“ 公共模塊”。 在整個系統(tǒng)結構方面,這類工具采用了傳統(tǒng)分布式系統(tǒng)的思想,產(chǎn)生了前臺和后臺的作業(yè)方式,減輕了網(wǎng)絡的壓力,提高了系統(tǒng)運行的效率。24常用的C/S工具有: FoxPro, Visual BASIC, Visual C+, Excel, Powerpoint, Word, Delphi C/S, Power Builder Enterprise, Team Enterprise Developer等等。 這類工具的特點是它們之間相互調(diào)用

14、的隨意性。例如在FoxPro中通過DDE(dynamic Data Exchange, 動態(tài)數(shù)據(jù)交換)或OLE(Object linking and Embedding,對象的鏈接和嵌入)或直接調(diào)用Excel, 這時FoxPro應用程序模塊是客戶,Excel應用程序是服務器。256、面向對象編程工具類 它主要是指與OO方法相對應的編程工具。目前常見的工具有:C(或VC),Smalltalk。這一類針對性較強,且很有潛力,其特點是必須與整個OO方法相結合。26四、管理信息系統(tǒng)的基本程序模塊 一個管理信息系統(tǒng)的軟件由很多程序模塊組成,這些程序模塊可以歸納成為幾種基本類型包括 控制模塊 輸入及校驗模

15、塊 修改或更新模塊 分類合并模塊 計算模塊 查詢、檢索模塊、輸出模塊和預測、優(yōu)化模塊等,其結構如P199圖8-2所示。27圖8-2 基本程序模塊結構288.3 系統(tǒng)測試系統(tǒng)測試P20029一、測試的意義 在管理信息系統(tǒng)開發(fā)周期的各個階段都不可避免地會出現(xiàn)差錯。 程序設計階段也不可避免還會產(chǎn)生新的錯誤。據(jù)統(tǒng)計,一個較好的程序員,在他交付的程序中,錯誤率為1,而一個水平低的程序員可能每個語句都含有錯誤。 對系統(tǒng)進行測試是不可缺少的,這是保證系統(tǒng)質量的關鍵步驟。通過測試可以盡早發(fā)現(xiàn)和糾正錯誤,減少錯誤造成的損失。 統(tǒng)計資料表明,對于一些較大規(guī)模的系統(tǒng)來說,系統(tǒng)測試的工作量往往占系統(tǒng)開發(fā)總工作量的40

16、%以上。 30握奇公司的例子 握奇公司生產(chǎn)的SIM芯片經(jīng)過中國電信五家公司試驗成功,可在國外的正規(guī)測試中出現(xiàn)隱性錯誤,一致不能投入市場,造成100多萬元的損失。目前該公司專門成立測試部,對程序進行測試。31二、測試的目的 發(fā)現(xiàn)其中的錯誤并及時糾正,所以在測試時應想方設法使程序的各個部分都投入運行,力圖找出所有錯誤。錯誤多少與程序質量有關。 測試通過也不能證明系統(tǒng)絕對無誤,只不過說明各模塊、各子系統(tǒng)的功能和運行情況正常,相互之間連接無誤,系統(tǒng)交付用戶使用以后,在系統(tǒng)的維護階段仍有可能發(fā)現(xiàn)少量錯誤,這也是正常的。 32三、測試的策略 先看一個例子。l例:P201圖8-3所示的是一個小程序的控制流程

17、圖,該程序由一個循環(huán)語句組成,循環(huán)次數(shù)可達20次,循環(huán)體中是一組嵌套的IF語句 ,其可能的路徑有五條,所以從程序的入口A到出口B的路徑數(shù)高達5201014。如果編寫一個測試例子,并用它來測試這個程序的一條路徑要化一分鐘,則測試每一條路徑就需要二億年。331、測試采取的策略 這個例子說明,要想通過“徹底”地測試找出系統(tǒng)的全部錯誤是不可能的,因此,測試階段要考慮的基本問題就是“經(jīng)濟性”了。 測試采取的策略是:在一定的開發(fā)時間和經(jīng)費的限制下,通過進行有限步操作或執(zhí)行測試用例,盡可能多發(fā)現(xiàn)一些錯誤。 342、測試的基本原則l(1)測試用例一般由“輸入數(shù)據(jù)”和“預期的輸出結果”組成。l這就是說,在執(zhí)行程

18、序之前應該對期望的輸出有很明確的描述,這樣,測試后可將程序的輸出同它仔細對照檢查。若不事先確定預期的輸出,可能把似乎是正確而實際是錯誤的結果當成是正確結果。 35l(2)不僅要選用合理的輸入數(shù)據(jù)進行測試,還應選用不合理的甚至錯誤的輸入數(shù)據(jù)。l許多人往往只注意前者而忽略了后一種情況,為了提高程序的可靠性,應認真組織一些異常數(shù)據(jù)進行測試,并仔細觀察和分析系統(tǒng)的反應。36 (3)除了檢查程序是否做了它應該做的工作,還應檢查程序時候做了它不該做的事情。 例如除了檢查工資管理程序是否為每個職工正確地產(chǎn)生了一份工資單以外,還應檢查它是否還產(chǎn)生了多余的工資單。37 (4)應該長期保留所有的測試用例,直至該系

19、統(tǒng)被廢棄不用為止。 在管理信息系統(tǒng)的測試中,設計測試用例是很費時的,如果將用過的例子丟棄了,以后一旦需要再測試有關的部分時(例如技術鑒定系統(tǒng)維護等場合)就需要再花費很多人工。 通常,人們往往懶得再次認真地設計測試用例,因而下次測試時很少有初次那樣全面。如果將所有測試用例作為系統(tǒng)的一部分保存下來,就可以避免這種情況的發(fā)生。38四、測試的方法 1.測試過程 2.測試用例 3.設計測試用例的基本目標 4.設計測試數(shù)據(jù)的技術 黑盒測試技術 白盒測試技術 391、測試過程 測試包括三方面: (1)設計“測試用例” (2)執(zhí)行被測程序 (3)分析執(zhí)行結果找出錯誤。402、什么是測試用例 設計測試用例是開始

20、程序測試的第一步,也是有效地完成測試工作的關鍵。 所謂測試用例就是以發(fā)現(xiàn)程序錯誤為目的而精心設計的一組測試數(shù)據(jù),包括預定要測試的功能,應該輸入的測試數(shù)據(jù)和預期的結果??梢詫懗?測試用例輸入數(shù)據(jù)期望結果413、設計測試用例的基本目標 設計測試用例最最困難的問題是設計測試的輸入數(shù)據(jù)。 因為不可能進行窮盡的測試,所以,選用少量“最有效的”測試數(shù)據(jù),做到盡可能完備的測試就很重要了。 因此,設計測試用例的基本目標就是確定因此,設計測試用例的基本目標就是確定一組最可能發(fā)現(xiàn)多個錯誤或多類錯誤的測一組最可能發(fā)現(xiàn)多個錯誤或多類錯誤的測試數(shù)據(jù)。試數(shù)據(jù)。424、設計測試數(shù)據(jù)的技術 已經(jīng)研究出許多設計測試數(shù)據(jù)的技術,

21、這些技術各有優(yōu)缺點,沒有哪一種是最好的,更沒有一種可以代替其余所有技術;同一種技術在不同應用場合效果可能相差很大,因此,通常需要聯(lián)合使用多種測試數(shù)據(jù)。 按照在設計測試用例時是否涉及程序的內(nèi)部結構,設計測試數(shù)據(jù)技術主要有白盒測試和黑盒測試兩種方法。 黑盒測試有等價劃分、邊界值分析及錯誤推測法等方法; 白盒測試有邏輯覆蓋法等。 通常設計測試數(shù)據(jù)的做法是:用黑盒法設計基本的測試用例,再用白盒法補充一些方案。435、黑盒測試技術 黑盒測試的測試者把被測程序看成一個黑盒,完全不關心程序的內(nèi)部結構。設計測試用例時,僅以程序的外部功能為根據(jù)。一方面檢查程序能否完成一切應做的事情,另一方面要考察它能否拒絕一切

22、不應該做的事情。由于黑盒測試著重于檢查程序的功能,所以也稱為功能測試。 常用的方法有: (1)等價劃分 (2)邊界值分析 (3)錯誤推測 (4)組合輸入44(1)等價劃分 等價劃分是黑盒測試的一種技術。前面講過,窮盡的黑盒測試需要使用所有有效的和無效的輸入數(shù)據(jù)來測試程序,通常這是不現(xiàn)實的。因此,只能選取少量有代表性的輸入數(shù)據(jù),以期用較小的代價暴露出較多的程序錯誤。 這種方法是把被測試的程序的所有可能的輸入數(shù)據(jù)(有效的和無效的)劃分成若干個等價類,把無限的隨機測試變成有針對性的等價類測試。按這種方法可以合理地做出下列假定:每類中的一個典型值在測試中的作用與這一類中所有其他值的作用相同。因此,可以

23、從每個等價類中只取一組數(shù)據(jù)作為測試數(shù)據(jù)。這樣可選取少量有“代表性”的測試數(shù)據(jù),來代替大量相類似的測試,從而大大減少總的測試次數(shù)。 45等價類的測試例子 設計等價類的測試用例一般分為兩步進行,第一步:劃分等價類并給出定義; 第二步:選擇測試用例。 選擇的原則是:有效等價類的測試用例盡量公用,以期進一步減少測試的次數(shù);無效等價類必須每類一例,以防漏掉本來可能發(fā)現(xiàn)的錯誤。 46例: 某城市的電話號碼由三部分組成。這三部分的名稱和內(nèi)容分別是 地區(qū)碼:空白或三位數(shù)字; 前 綴:非0或1開頭的三位數(shù); 后 綴:四位數(shù)字。 假定被測試的程序能接受一切符合上述規(guī)定的電話號碼,拒絕所有不符合規(guī)定的號碼,就可用等

24、價分類法來設計它的測試用例。47劃分等價類的第一步: 劃分等價類,包括4個有效等價類,11個無效等價類。 下表列出了劃分的結果。 在每一等價類之后加有編號,以便識別。4849第二步:確定測試用例。 表8-1中有4個有效等價類,可以公用以下 兩個測試用例: 測試數(shù)據(jù) 測試范圍 期望結果( ) 2782345 等價類(1),(3),(4) 有效(835) 8059321 等價類(2),(3),(4) 有效 50對11個無效等價類,要選擇11個測試用例 測試數(shù)據(jù) 測試范圍 期望結果 1. (20A) 1234587 無效等價類(5) 無效2. (33 ) 2345878 無效等價類(8) 無效3.

25、(7777) 3458789 無效等價類(7) 無效4. (777) 34A8789 無效等價類(8) 無效5. (234) 0458789 無效等價類(9) 無效6. (777) 1458789 無效等價類(10) 無效7. (777) 348789 無效等價類(11) 無效8. (777) 23458789 無效等價類(12) 無效9. (777) 345878A 無效等價類(13) 無效10. (777) 345878 無效等價類(14) 無效11. (777) 34558789 無效等價類(15) 無效51(2)邊界值分析方法 經(jīng)驗表明,處理邊界情況時程序最容易發(fā)生錯誤。例如,許多程序

26、錯誤出現(xiàn)在下標、純量、數(shù)據(jù)結構和循環(huán)等等的邊界附近。因此,設計使程序運行在邊界情況附近的測試方案,暴露出錯誤的可能性更大一些。 例如某個輸入條件說明了值的范圍是-1.010,則可以選-1.0,1.0和-1.0011.001測試用例。 再如一個輸人文件可以有1-255個記錄,則分別設計有0個、1個、255個、256個記錄的輸人文件,等等。52 使用邊界值分析方法設計測試用例首先應該確定邊界情況,這需要經(jīng)驗和創(chuàng)造性,通常輸入等價類和輸出等價類的邊界,就是應該著重測試的程序邊界情況。選取的測試數(shù)據(jù)應該剛好等于、剛剛小于和剛剛大于邊界值。也就是說,按照邊界值分析法,應該選取剛好等于、稍小于和稍大于等價

27、類邊界值的數(shù)據(jù)作為測試數(shù)據(jù),而不是選取每個等價類內(nèi)的典型值作為測試數(shù)據(jù)。 53 通常設計測試用例時總是聯(lián)合使用等價劃分和邊界值分析兩種技術。例如,稅法規(guī)定個人的收入所得稅從超過800元開始征收。如果用一個程序來計算稅款,則“收入800”就是一個判定條件,滿足條件的人免稅,否則對超出800元的部分征稅。在選擇測試用例時,可以用300、900兩個測試數(shù)據(jù)分別代表免稅和征稅兩個等價類,還可以就800這個邊界值作為測試數(shù)據(jù)。54邊界值分析方法 把邊界值的概念擴大,可以設計出種種的測試用例。例如對文件只處理第一個記錄、中間一個記錄、最后一個記錄、不存在的記錄等等。下面是一些測試用例: (1)新記錄 在文

28、件第一個記錄之前加一個記錄; 在文件最后一個記錄之后加一個記錄; 插人的新記錄對應實體是實際不可能存在的; 記錄的域不全。55邊界值分析方法 (2)處理業(yè)務 處理文件的第一個記錄; 處理文件的最后一個記錄; 處理中間的一個記錄; 處理同一程序剛建立的記錄; 連續(xù)處理相鄰記錄; 試圖處理一個不存在的記錄; 處理業(yè)務使某個數(shù)值超過常規(guī)(如庫存數(shù)為負、或域值上溢汕 對某些關鍵數(shù)據(jù)輸入有錯誤的數(shù)據(jù); 同一業(yè)務處理過程中造成多重例外和出錯。56邊界值分析方法 (3)記錄刪除 刪去文件的第一個記錄; 刪去文件的最后一個記錄; 試圖刪去不存在的記錄; 連續(xù)刪去多個記錄; 刪去一個記錄,并試圖處理這個記錄。5

29、7邊界值分析方法 (4)試驗邏輯 檢查所有能產(chǎn)生最大值、最小值、平均值的計算; 除式中除數(shù)為零; 數(shù)據(jù)城放最小數(shù)或最大數(shù); 數(shù)據(jù)域填入允許值之外的數(shù)。58邊界值分析方法 (5)報告程序 負號是否全打印出來; 全9是否訂金; 全0看高位壓縮情況; 交叉結算平衡結果是否有報告。 從以上列舉的這些例子可以看出,這種方法表面上看起來很簡單,但許多程序的邊界情況極其復雜,要找出適當?shù)臏y試用例,需要有一定的經(jīng)驗和創(chuàng)造性。使用得當,這種方法是相當有效的。59(3)錯誤推測 使用邊界分析法和等價劃分技術,可以幫助開發(fā)人員設計具有代表性的,容易暴露程序錯誤的測試用例。但是,不同類型不同特點的程序通常又有一些特殊

30、的容易出錯的情況。 此外,有時分別使用每組測試數(shù)據(jù)時程序都能正常工作,這些輸入數(shù)據(jù)的組合卻可能檢測出程序的錯誤。一般說來,即使是一個比較小的程序,可能的輸入組合數(shù)也往往十分巨大,因此必須依靠測試人員的經(jīng)驗和直覺,從各種可能的測試用例中選出一些最可能引起程序出錯的方案。對于程序中可能存在哪類錯誤的推測,是挑選測試用例時的一個重要因素。 60錯誤推測 錯誤推測法在很大程度上靠直覺和經(jīng)驗進行。它的基本想法是列舉出程序中可能有的錯誤和容易發(fā)生錯誤的特殊情況,并且根據(jù)它們選擇測試用例。對于程序中容易出錯的情況也有一些經(jīng)驗總結出來,例如,輸入數(shù)據(jù)為零或輸出數(shù)據(jù)為零往往容易發(fā)生錯誤;如果輸入或輸出的數(shù)目允許

31、變化(例如,被檢索的或生成的表的項數(shù)),則輸入或輸出的數(shù)目為0和1的情況(例如,表為空或只有一項)是容易出錯的情況。還應該仔細分析程序規(guī)格說明書,注意找出其中遺漏或省略的部分,以便設計相應的測試用例,檢測程序員對這些部分的處理是否正確。61錯誤推測 例如,當對一個排序程序進行測試時,可先用邊界值分析法設計測試用例: 輸入表為空表; 輸入表中僅有一個數(shù)據(jù); 輸入表為滿表。 再用錯誤推測法補充一些例子: 輸入表已經(jīng)排好了序: 輸入表的排序恰與所要求的順序相反(如程序功能為由小到大排序,輸入表為由大到小排序); 輸入表中的所有數(shù)據(jù)全部相同。 此外,經(jīng)驗說明,在一段程序中已經(jīng)發(fā)現(xiàn)的錯誤數(shù)目往往和尚未發(fā)

32、現(xiàn)的錯誤數(shù)目成正比。因此,在進一步測試時要著重測試那些已發(fā)現(xiàn)較多錯誤的程序段。 62(4)組合輸入 等價劃分法和邊界值分析法都只孤立地考慮各個輸入數(shù)據(jù)的測試功效,而沒有考慮多個輸入數(shù)據(jù)的組合效應,可能會遺漏了輸入數(shù)據(jù)易于出錯的組合情況。 選擇輸入組合的一個有效途徑是利用判別表和判定樹為工具,列出輸入數(shù)據(jù)各種組合與程序應作的動作(及相應的輸出結果)之間的對應關系,然后為判定表的每一列至少設計一個測試用例。 636、白盒測試技術 白盒測試時,測試者對被測試程序的內(nèi)部結構是清楚的。他從程序的邏輯結構人手,按照一定的原則來設計測試用例,設定測試數(shù)據(jù)。由于被測程序的結構對測試者是透明的,因此有些書本又稱

33、這類測試為玻璃盒測試或邏輯覆蓋。64白盒測試 有選擇的執(zhí)行程序中某些最有代表性的通路是對窮盡測試的唯一可行的替代方案。白盒測試是對一系列測試過程的總稱,這組測試過程逐漸進行越來越完整的通路測試。65白盒測試技術 (1) 語句覆蓋 (2) 判定覆蓋 (3)條件覆蓋 (4) 判定/條件覆蓋 (5) 條件組合覆蓋66五、測試與調(diào)試五、測試與調(diào)試 一個管理信息系統(tǒng)通常由若干子系統(tǒng)組成,每個子系統(tǒng)又由若干模塊(程序)組成。所以,可把測試工作分為模塊(程序)測試、分調(diào)(子系統(tǒng)測試)和總調(diào)(系統(tǒng)測試)三個層次,測試過程依次是模塊測試、分調(diào)、總調(diào),如圖8-5所示,最后,進行的是系統(tǒng)測試(試運行)。67圖8-5

34、 系統(tǒng)測試的步驟681模塊測試 模塊(程序)測試的目的是保證每個模塊本身能正常運行,在該步測試中發(fā)現(xiàn)的問題大都是程序設計或詳細設計中的錯誤。對于模塊測試,一般分成人工走通和上機測試兩步進行。69人工走通 人工走通就是打印出源程序,然后參照設計說明書(包括程序框圖)的要求把呈現(xiàn)在紙上的程序“走”一遍。程序的錯誤可分成語法錯誤和邏輯錯誤兩種情況,一般只要認真檢查就可以發(fā)現(xiàn)絕大部分的語法錯誤和部分邏輯錯誤。而用計算機進行交互測試時,每發(fā)現(xiàn)一個錯誤后要先改正錯誤才能繼續(xù)測試,速度要明顯降低。所以,決不要一開始就將源程序鍵入計算機而忙于立即執(zhí)行,而應先在紙上走通。 70上機測試 當人工走通以后,就可以上

35、機測試了??偟膩砜矗Z法錯誤比較容易發(fā)現(xiàn)和修改(因為高級語言都具備語法檢查功能,但是檢查的全面性不盡相同)。 為了有效地發(fā)現(xiàn)并改正邏輯錯誤,一方面,可認真設計測試用例,另一方面,要充分利用所用高級語言提供的測試機制或軟件工具。 71注意的問題 程序的檢查最好請審查小組或其他開發(fā)者。因為程序編制者在審查時往往會犯編程時同樣的錯誤,而查不出某些問題。 但這只是理想的情況,由于人力、財力所限,目前的測試基本上還是由編程者本人進行。按各層次人員的分工,模塊測試應由操作員或程序員來進行。 722分調(diào) 分調(diào)也稱子系統(tǒng)測試,就是把經(jīng)過測試的模塊放在一起形成一個子系統(tǒng)來測試。主要是測試各模塊之間的協(xié)調(diào)和通信,

36、即重點測試子系統(tǒng)內(nèi)各模塊的接口。例如,數(shù)據(jù)穿過接口時可能丟失;一個模塊對另一個模塊可能存在因疏忽而造成的有害影響;把若干子功能結合起來可能不產(chǎn)生預期的結果。l 如何將若干個模塊連接成一個可運行的子系統(tǒng),通常有兩種方法。一種方法是先分別測試每個模塊,再把所有模塊按設計要求連成一起進行測試,這種方法稱為。另一種方法是把下一個要測試的模塊同已經(jīng)測試好的那些模塊結合起來進行測試,測試完成后再把下一個應該測試的模塊結合進來測試,這種方式稱為這種方式實際上同時完成了模塊測試和子系統(tǒng)測試。73(1)非漸增式l 如圖8-6所示,非漸增式是先分別測試六個模塊A、B、C、D、E、F,然后將它們連接到一起再進行測試

37、。若采用這種方式則在測試某個模塊X時,需要臨時為它設計一個驅動模塊和若干個樁模塊,如圖8-7所示。74 驅動模塊的作用是模擬X的調(diào)用模塊,樁模塊的作用則是模擬X的下層模塊。例如,測試圖8-6中的模塊B時,要為它設計一個驅動模塊,其作用是將測試數(shù)據(jù)傳送給模塊B并接收和顯示B產(chǎn)生的結果,同時,因B要調(diào)用模塊E,所以還需設計一個樁模塊,用來接受B的控制并模擬E的功能。這兒的臨時模塊(驅動模塊和樁模塊)可以設計的非常簡單,只要滿足測試要求即可。75(2) 漸增式 對漸增式來說,又可分為“由頂向下”、“由底向上”等多種方式進行測試。若對圖8-6采用“由底向上”的漸增式方式,則是先順序地或并行地(例如由三

38、人完成)測試模塊E、C、F,此時只需為每個模塊臨時準備驅動模塊,但不需要樁模塊,然后為模塊B準備一個驅動模塊,將模塊B與模塊E連接起來測試,再為模塊D準備一個驅動模塊將D與F連接起來測試,最后把模塊A與其它各模塊連接并測試。76兩種測試方法的比較 對這兩種測試方法進行比較可以看到: 非漸增式需要更多的人工(如準備較多的控制模塊和樁模塊),而漸增式則可利用已經(jīng)測試過的模塊(如采用“由底向上”時可不需樁模塊)。 漸增式可以較早地發(fā)現(xiàn)模塊界面之間的錯誤,非漸增式則要到最后將所有模塊相連時才能發(fā)現(xiàn)這類錯誤。 77 漸增式有利于排錯。如果界面有錯,它通常與最新加上去的那個模塊有關,錯誤比較容易定位,非漸

39、增式則不然。 漸增式比較徹底。它以前面測試過的模塊作為驅動模塊或樁模塊,所以這些模塊將得到進一步的檢查。78 漸增式需要較多的機器時間。例如在圖8-6中若采用“由底向上”的漸增式,則在測試模塊A時,模塊B、C、D、E、F也要執(zhí)行。若用非漸增式,在測試模塊A時只要執(zhí)行用來模擬B、C、D的樁模塊即可。當然,編寫這些樁模塊也需花費一定機器時間,所以可抵消一部分機器時間。 使用非漸增式可以并行(同時)同時所有模塊,能充分利用人力,這對開發(fā)系統(tǒng)是很有意義的。79 綜上所述,可以認為漸增式測試方法較非漸增式要優(yōu)越。尤其對管理信息系統(tǒng)軟件來說“由底向上”的漸增式方法是一種較為適合的測試方法。 當然,在測試一

40、個實際系統(tǒng)時,并沒有必要機械照搬上述某一些方法。例如,當把一個已經(jīng)充分測試過的模塊結合進來時,可以著重測試模塊之間的接口,當一個沒有充分測試過的模塊結合進來時,則需要利用已測試過的模塊充分測試它。 803總調(diào) 經(jīng)過分調(diào),已經(jīng)把一個模塊裝成若干子系統(tǒng)并經(jīng)充分測試。接著的任務是總調(diào),也程為系統(tǒng)測試,它是經(jīng)過測試的子系統(tǒng)裝配成一個完整的系統(tǒng)來測試,用以發(fā)現(xiàn)系統(tǒng)設計和程序設計中的錯誤,驗證系統(tǒng)的功能是否達到設計說明書的要求。81 剛開始總調(diào)時,不必按完全真實情況下的數(shù)據(jù)量進行,可采用一些精心設計的數(shù)據(jù)量較少的測試用例,這樣不僅可以使處理工作量大為減少,而且更容易發(fā)現(xiàn)錯誤和確定錯誤所在范圍。 什么樣的系

41、統(tǒng)是有效的呢?一般說來,當系統(tǒng)的功能和性能如同用戶所合理地期待的那樣,則系統(tǒng)是有效的。因為系統(tǒng)分析階段產(chǎn)生的系統(tǒng)說明書,描述了用戶的這種合理期望,所以它是系統(tǒng)有效性的標準。 824系統(tǒng)調(diào)試 總調(diào)完成后下一步就可將原始系統(tǒng)手工作業(yè)方式得出的結果正確的數(shù)據(jù)作為新系統(tǒng)的輸入數(shù)據(jù)進行“真實”運行或稱試運行,這時除了將結果與手工作業(yè)進行校核以外,還應考察系統(tǒng)的有效性、可靠性和效率。 為此,最好請用戶一起參加系統(tǒng)測試工作。系統(tǒng)測試的關鍵是“真實”和全面。進行系統(tǒng)測試應該注重以下幾點:83系統(tǒng)調(diào)試應該注重以下幾點: (1)測試用例應該是由實際意義的數(shù)據(jù)組成的??梢哉堄脩魠⑴c測試用例的設計。 (2)某些已經(jīng)測

42、試過的純粹技術的特點可以不需再次執(zhí)行。 (3)對用戶特別感興趣的功能或性能,可以增加一些測試。 (4)應該設計并執(zhí)行一些與用戶使用步驟有關的測試。848.4 系統(tǒng)說明文件的組成 在系統(tǒng)測試完成后,應該編寫、整理出一份詳細和全面的系統(tǒng)說明書。該文件既可以提交用戶作為今后使用、維護新系統(tǒng)的指導性文檔,另一方面,該文件也是鑒定和驗收新系統(tǒng)時不可少的技術資料。應此,應該充分重視系統(tǒng)說明文件的編寫工作。l一般說來,系統(tǒng)說明文件可由以下各部分組成:851系統(tǒng)一般性說明 (1)用戶手冊 給用戶介紹系統(tǒng)全面情況,包括系統(tǒng)目標、功能和性能的簡要說明等。 (2)特殊說明 隨著外部環(huán)境的變化而使系統(tǒng)作出相應調(diào)整等,

43、這些是不斷進行補充和發(fā)表的。862系統(tǒng)開發(fā)報告 (1)系統(tǒng)分析報告 已在第六章作過介紹。 (2)系統(tǒng)設計報告 已在第七章作過介紹。 (3)系統(tǒng)實施說明 主要涉及到系統(tǒng)分調(diào)、總調(diào)過程中某些重要問題的回顧和說明;人員培訓、系統(tǒng)轉化的計劃及執(zhí)行情況。l (4)系統(tǒng)利益分析報告 主要涉及系統(tǒng)的管理工作和職工所產(chǎn)生的影響,系統(tǒng)的費用、效益分析等方面。873程序資料 (1)整個系統(tǒng)程序的說明。 (2)系統(tǒng)的計算機系統(tǒng)流程圖和程序流程圖。 (3)源程序清單。 (4)輸入輸出樣本。 (5)程序所有檢測點的說明。 (8)修改程序的手續(xù)規(guī)定。884操作說明 (1)系統(tǒng)規(guī)程 系統(tǒng)總的規(guī)程,包括系統(tǒng)技術標準、編程、操

44、作規(guī)程、監(jiān)理規(guī)程等。 (2)操作說明 系統(tǒng)的操作順序,各種參數(shù)輸入條件,數(shù)據(jù)的備份和恢復操作方法以及系統(tǒng)維護的有關注意事項。l對于管理信息系統(tǒng)的說明文件的組成,目前還沒有一個統(tǒng)一的標準。不少部門和組織都有各自的一套規(guī)定,但總的內(nèi)容都在上述之內(nèi)。898.5 系統(tǒng)轉換 在系統(tǒng)總調(diào)結束并完成測試工作的基礎上,就可以進行系統(tǒng)轉換的工作。系統(tǒng)轉換就是按預定計劃新系統(tǒng)代替原有系統(tǒng)的一系列過程,它的最終目的是將全部控制權移交給用戶。 轉換工作包括原有系統(tǒng)的數(shù)據(jù)文件向新系統(tǒng)文件轉換,人員培訓、設備和組織結構的調(diào)整,有關資料和使用說明書移交給用戶。管理人員和開發(fā)人員在系統(tǒng)轉換中的任務是:確保系統(tǒng)盡可能平穩(wěn)的過渡

45、,使新系統(tǒng)盡快投入運行,逐步安全地取代原有系統(tǒng)的功能。 90一、人員培訓 為了使新系統(tǒng)能夠按預期目標正常運行,對用戶人員進行必要的培訓是在系統(tǒng)轉換之前不可忽視的一項工作。 管理信息系統(tǒng)是一個人機系統(tǒng),它的正常運行需要很多人參加工作,將有許多人承擔系統(tǒng)所需輸入信息的人工處理過程,以及計算機操作過程。這些人通常來自現(xiàn)行系統(tǒng),他們熟悉或精通原來的人工處理過程,但缺乏計算機處理的有關知識,為了保證新系統(tǒng)的順利使用,必須提前培訓有關人員。91需要進行培訓的人員主要有以下三類:l事務管理人員l系統(tǒng)操作員l系統(tǒng)維護人員921. 事務管理人員 新系統(tǒng)能否順利運行并獲得預期目標,在很大程度上與這些第一線的事務管理人員(或主管人員)有關系。因此,可以通過講座、報告會的形式,向他們說明新系統(tǒng)的目標、功能說明系統(tǒng)的結構及運行過程,以及對企業(yè)組織機構、工作方式等產(chǎn)生的影響。對事務管理人員進行培訓時,必須做到通俗、具體、盡量不采用與實際業(yè)務領域無關的計算機專業(yè)術語。例如,可以就他們最關心的以下問題展開對話: 93事務管理人員 (1)管理信息系統(tǒng)能為我們干些什么? (2)采用新系統(tǒng)后,我們和我們的職工必須學會什么新技術? (3)采用新系統(tǒng)后,我們的機構和人員將發(fā)生什么變動? (4)今后如何衡量我們的任務完成情況? 大量事實說明,許多管理信息系統(tǒng)不能正常發(fā)揮預期作用,其原因之一就是沒有注

溫馨提示

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

評論

0/150

提交評論