




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
教學(xué)要求掌握系統(tǒng)實(shí)施的任務(wù)了解系統(tǒng)實(shí)施計(jì)劃包括的內(nèi)容掌握程序設(shè)計(jì)的基本方法掌握系統(tǒng)測試的幾個(gè)步驟了解系統(tǒng)測試報(bào)告包括哪些內(nèi)容具備進(jìn)行系統(tǒng)測試的能力掌握系統(tǒng)轉(zhuǎn)換的方式和優(yōu)缺點(diǎn)1主要內(nèi)容8.1系統(tǒng)實(shí)施概述8.2程序設(shè)計(jì)8.3信息系統(tǒng)的測試8.4信息系統(tǒng)的調(diào)試28.1系統(tǒng)實(shí)施概述
系統(tǒng)實(shí)施是MIS開發(fā)的最后一個(gè)階段。系統(tǒng)實(shí)施是將系統(tǒng)設(shè)計(jì)的結(jié)果付諸實(shí)踐,建立計(jì)算機(jī)硬件環(huán)境和系統(tǒng)軟件環(huán)境,編寫計(jì)算機(jī)程序,組織系統(tǒng)測試、調(diào)試和各類人員培訓(xùn),完成系統(tǒng)的切換并最終交付使用。3系統(tǒng)實(shí)施階段的主要活動(dòng)設(shè)備的購置與安裝硬件(通信設(shè)備、計(jì)算機(jī)主機(jī)、輸入輸出設(shè)備、存儲設(shè)備),軟件(OS、DBMS、應(yīng)用程序),附屬設(shè)備(穩(wěn)壓電源、空調(diào)),計(jì)算機(jī)機(jī)房等程序的編制與測試
選定計(jì)算機(jī)程序語言,編寫程序,測試模塊數(shù)據(jù)的錄入人員的培訓(xùn)系統(tǒng)的測試、調(diào)試與轉(zhuǎn)換4系統(tǒng)實(shí)施的內(nèi)容及流程編程準(zhǔn)備編制新系統(tǒng)實(shí)施計(jì)劃硬件準(zhǔn)備計(jì)算機(jī)硬件安裝與調(diào)試程序的編制、測試與調(diào)試數(shù)據(jù)的收集和準(zhǔn)備業(yè)務(wù)人員培訓(xùn)新系統(tǒng)調(diào)試建立文件(DB)老文件轉(zhuǎn)換編寫系統(tǒng)操作使用手冊系統(tǒng)轉(zhuǎn)換新系統(tǒng)維護(hù)與評價(jià)驗(yàn)收系統(tǒng)軟件準(zhǔn)備系統(tǒng)軟件的消化與調(diào)試提前或并行將大大縮短周期5實(shí)施階段任務(wù)之間的關(guān)系程序編制設(shè)備購置人員培訓(xùn)數(shù)據(jù)準(zhǔn)備程序編制—提供調(diào)試設(shè)備培訓(xùn)有關(guān)人員試用軟件提供試驗(yàn)數(shù)據(jù)調(diào)試程序設(shè)備購置提供對設(shè)備的要求—培訓(xùn)有關(guān)人員接受設(shè)備提供存儲量和內(nèi)存要求人員培訓(xùn)提供程序以培訓(xùn)人員提供培訓(xùn)設(shè)備—提供培訓(xùn)的實(shí)驗(yàn)數(shù)據(jù)數(shù)據(jù)準(zhǔn)備規(guī)定數(shù)據(jù)準(zhǔn)備的內(nèi)容和格式提供錄入設(shè)備提供錄入人員—
注意:不能把系統(tǒng)實(shí)施僅僅歸結(jié)為編程序或買機(jī)器。這些任務(wù)是相互聯(lián)系、彼此制約的。6系統(tǒng)實(shí)施階段的特點(diǎn)與系統(tǒng)分析與系統(tǒng)設(shè)計(jì)階段相比,系統(tǒng)實(shí)施階段的特點(diǎn)是工作量大,投入的人力、物力多。因此,這一階段的組織管理工作也很繁重。7自頂向下的實(shí)現(xiàn)方法系統(tǒng)實(shí)施中,就程序的編寫和數(shù)據(jù)庫實(shí)現(xiàn)而言,下層模塊執(zhí)行具體功能,上層模塊是控制性的結(jié)構(gòu)化方法主張自頂向下實(shí)現(xiàn),盡量先實(shí)現(xiàn)上層模塊,逐步向下,最后實(shí)現(xiàn)下層最基本的模塊自頂向下實(shí)現(xiàn)的過程是:首先實(shí)現(xiàn)系統(tǒng)的輪廓或框架,在此基礎(chǔ)上不斷添加新的功能,逐步完善,最后達(dá)到物理模型所要求的全部功能這一實(shí)現(xiàn)過程又叫作“版本劃分”。8自頂向下的實(shí)現(xiàn)方法(續(xù))具體而言,在實(shí)現(xiàn)上層模塊時(shí),與這些模塊有直接調(diào)用關(guān)系的下層模塊只作為“樹樁”(Stub)出現(xiàn),只保留它的名字及有關(guān)參數(shù)傳遞。這樣,雖然這些“樹樁”的內(nèi)部功能還沒有實(shí)現(xiàn),但可以測試系統(tǒng)結(jié)構(gòu)的正確性,保證接口通暢。9版本劃分示例處理領(lǐng)料業(yè)務(wù)輸入控制處理控制錄入領(lǐng)料單收集領(lǐng)料單復(fù)核領(lǐng)料單登記領(lǐng)料單查庫存數(shù)發(fā)料缺料復(fù)核部門編碼復(fù)核材料編碼修改庫存量注明已發(fā)料打印發(fā)料單打印缺貨單打印訂購單10版本的劃分需要考慮以下幾個(gè)方面總的原則是,先實(shí)現(xiàn)控制部分,后實(shí)現(xiàn)執(zhí)行部分,先上層后下層每個(gè)版本實(shí)現(xiàn)多少模塊、實(shí)現(xiàn)哪些模塊要根據(jù)開發(fā)力量、設(shè)備、培訓(xùn)等方面的情況確定復(fù)雜的模塊分散在幾個(gè)版本中逐步實(shí)現(xiàn)兼顧功能模塊和數(shù)據(jù)庫的實(shí)現(xiàn)兼顧硬件、軟件、人員培訓(xùn)方面的情況11自頂向下實(shí)現(xiàn)方法的優(yōu)點(diǎn)與傳統(tǒng)的方法相比,該方法:有效地解決了接口問題。接口解決不好,往往不得不對調(diào)試過的程序反復(fù)修改,甚至推倒重來,造成返工便于對系統(tǒng)的設(shè)計(jì)方案進(jìn)行校正,保證系統(tǒng)切實(shí)符合用戶的要求便于控制進(jìn)度,保證研制工作按時(shí)完成12系統(tǒng)實(shí)施的計(jì)劃安排
可采用甘特圖(Gantt)、關(guān)鍵路徑法(CPM)、計(jì)劃評審技術(shù)(PERT)等工具輔助制定系統(tǒng)實(shí)施計(jì)劃,制定時(shí)主要考慮以下幾點(diǎn):工作量估計(jì)實(shí)施進(jìn)度安排系統(tǒng)人員的配備和培訓(xùn)計(jì)劃系統(tǒng)實(shí)施的資金籌措和投入計(jì)劃138.2程序設(shè)計(jì)
程序設(shè)計(jì)即編程(Coding),就是為各個(gè)模塊編寫程序。編程的依據(jù)是結(jié)構(gòu)圖、判斷樹、判斷表、模塊說明書、系統(tǒng)流程圖等。14選擇程序設(shè)計(jì)語言時(shí)考慮的因素應(yīng)用領(lǐng)域:選擇語言的關(guān)鍵因素算法和計(jì)算的復(fù)雜性軟件的運(yùn)行環(huán)境各種性能的考慮數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性程序設(shè)計(jì)人員的知識水平15好程序的標(biāo)準(zhǔn)什么是好程序?
1950s,計(jì)算機(jī)內(nèi)存小、速度慢如今,一般認(rèn)為好程序具備以下素質(zhì):能夠工作(最基本的)調(diào)試代價(jià)低(衡量程序好壞和程序員水平高低的重要標(biāo)志)效率高易于維護(hù)易于修改設(shè)計(jì)不復(fù)雜可讀性(Readability),1970s邏輯上正確又易于閱讀理解16提高程序可讀性的技巧和方法?17提高程序可讀性的技巧和方法用結(jié)構(gòu)化方法進(jìn)行詳細(xì)設(shè)計(jì)程序中包含說明性材料良好的程序書寫格式良好的編程風(fēng)格18結(jié)構(gòu)化程序設(shè)計(jì)軟件發(fā)展中的三座里程碑子程序高級語言結(jié)構(gòu)化程序設(shè)計(jì)19結(jié)構(gòu)化程序設(shè)計(jì)的基本方法限制使用GOTO語句
不用GOTO語句,程序易于閱讀、易于驗(yàn)證。無限制地使用GOTO語句,將使程序結(jié)構(gòu)雜亂無章、難以閱讀、難以理解,其中容易隱含一些錯(cuò)誤逐步求精的設(shè)計(jì)方法在一個(gè)程序模塊內(nèi),先從該模塊功能描述出發(fā),一層層地逐步細(xì)化,直到最后分解、細(xì)化成語句為止自頂向下的設(shè)計(jì)、編碼和調(diào)試把逐步求精之法推廣到一個(gè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)20結(jié)構(gòu)化程序設(shè)計(jì)的基本方法(續(xù))主程序員制的組織形式成員須遵守:不使用可能干擾其他模塊的命令或函數(shù)按總體設(shè)計(jì)的要求傳遞參數(shù),不隨意修改其內(nèi)容與含義按統(tǒng)一規(guī)定的格式操作公用文件或數(shù)據(jù)庫按統(tǒng)一的原則使用標(biāo)識符按統(tǒng)一要求編寫文檔保持程序風(fēng)格一致21提高程序可讀性的技巧和方法用結(jié)構(gòu)化方法進(jìn)行詳細(xì)設(shè)計(jì)程序中包含說明性材料良好的程序書寫格式良好的編程風(fēng)格22程序的內(nèi)部文檔
程序的內(nèi)部文檔,指程序內(nèi)部帶有的說明材料。需要注意以下幾點(diǎn):程序開始部分注明程序編寫者、最后修改日期等注釋須與程序一致。修改程序時(shí),要相應(yīng)修改注釋注釋不是重復(fù)程序語句,而應(yīng)提供從程序本身難以得到的信息對程序段作注釋,而不是對每個(gè)語句作注釋如果模型的詳細(xì)設(shè)計(jì)是用PDL描述的,編程時(shí)可將PDL描述作為注釋嵌入程序中。23提高程序可讀性的技巧和方法用結(jié)構(gòu)化方法進(jìn)行詳細(xì)設(shè)計(jì)程序中包含說明性材料良好的程序書寫格式良好的編程風(fēng)格24縮進(jìn)式書寫除了加注釋之外,采用縮進(jìn)式書寫程序也有助于閱讀。doi=1ton-1;t=i;doj=i+1ton;ifa(j)<a(t)thendot=j;endifift<>1thendoh=a(t);a(t)=a(i);a(i)=h;endif;end;end;25縮進(jìn)式書寫DOi=1TOn-1 t=i; DOj=i+1TOn IFa(j)<a(t)THENDO t=j; ENDIF IFt<>1THENDO h=a(t);
a(t)=a(i);
a(i)=h; ENDIF END;END;IFA1 DOAELSE IFA2 DOB ELSEIFA3DOC ELSEIFA4DOD ELSE... . . . ENDIF
ENDIF ENDIFENDIF26提高程序可讀性的技巧和方法用結(jié)構(gòu)化方法進(jìn)行詳細(xì)設(shè)計(jì)程序中包含說明性材料良好的程序書寫格式良好的編程風(fēng)格27編程風(fēng)格(1)簡單、直接地反映意圖(2)變量名、文件名、過程名應(yīng)規(guī)范化
函數(shù)和過程的名稱最好使用動(dòng)賓詞組,第二個(gè)單詞的第一位采用大寫,駝峰顯示規(guī)范化的書寫格式:縮進(jìn)的空格數(shù)、最好一行一句(3)不要直接使用數(shù)字(4)盡量使用局部變量28編程風(fēng)格(續(xù)1)(5)表達(dá)式的書寫應(yīng)該一氣呵成
比較表達(dá)式X=A(I)+I/A(I)與: AI=A(I) X=AI+I/AI在表達(dá)式中加括號也可以減少誤解:
-A**2有可能被理解成(-A)**2,不如寫成-(A**2)29編程風(fēng)格(續(xù)2)(6)合理使用GOTO語句使用時(shí)主要注意三條原則:在一個(gè)程序中不要多用GOTO語句。一定要避免使用不必要的GOTO語句在其他結(jié)構(gòu)形式難以控制程序流向的情況下才使用GOTO語句。例如,在循環(huán)體內(nèi)遇到例外情況需要跳出時(shí)使用不要使GOTO語句相互交叉30主要內(nèi)容8.1系統(tǒng)實(shí)施概述8.2程序設(shè)計(jì)8.3信息系統(tǒng)的測試8.4信息系統(tǒng)的調(diào)試318.3信息系統(tǒng)的測試
程序編寫出來就接近尾聲了?程序能夠運(yùn)行就通過了?No
32測試的目的Myers將測試的目的歸納為:測試是指“旨在發(fā)現(xiàn)錯(cuò)誤而執(zhí)行一個(gè)程序的過程”一個(gè)好的測試用例是指這個(gè)測試用例有很高的概率可以發(fā)現(xiàn)一個(gè)尚未發(fā)現(xiàn)的錯(cuò)誤一個(gè)成功的測試是指它成功地發(fā)現(xiàn)了一個(gè)尚未發(fā)現(xiàn)的錯(cuò)誤33測試的目的(續(xù))測試的目的是為了發(fā)現(xiàn)程序中的錯(cuò)誤。因此,測試的關(guān)鍵問題是如何設(shè)計(jì)測試用例,即設(shè)計(jì)一批測試數(shù)據(jù),通過有限的測試用例,在有限的研制時(shí)間、研制經(jīng)費(fèi)的約束下,盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。發(fā)現(xiàn)錯(cuò)誤后進(jìn)行診斷并改正錯(cuò)誤的過程就是調(diào)試。34測試的概念信息系統(tǒng)測試軟件測試硬件測試網(wǎng)絡(luò)測試單元測試綜合測試35測試的原則(1)軟件測試必須有預(yù)期結(jié)果測試用例應(yīng)包括輸入數(shù)據(jù)和預(yù)期的輸出結(jié)果;測試用例的設(shè)計(jì)和選擇、預(yù)期結(jié)果的定義要利于錯(cuò)誤的檢測(2)程序員應(yīng)避免測試自己的程序;程序設(shè)計(jì)機(jī)構(gòu)不應(yīng)測試自己的程序(3)設(shè)計(jì)最小用例集(4)不僅要選用合理的輸入數(shù)據(jù)作為測試用例,而且應(yīng)選用不合理的輸入數(shù)據(jù)作為測試36測試的原則(續(xù))(5)全程測試測試用例應(yīng)長期保留,直到這個(gè)程序被廢棄。既要檢查程序是否完成了它應(yīng)做的工作,又要檢查它是否還做了它不應(yīng)做的事情。(6)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性(7)充分注意測試中的群集現(xiàn)象在測試中發(fā)現(xiàn)缺陷越多的地方,存在的未被發(fā)現(xiàn)的缺陷也就越多;“經(jīng)驗(yàn)表明:程序中尚未發(fā)現(xiàn)的錯(cuò)誤的數(shù)量與該程序段已發(fā)現(xiàn)的錯(cuò)誤數(shù)量往往成正比”37軟件錯(cuò)誤Neson將錯(cuò)誤和缺陷概括為七個(gè)方面:編程時(shí)的語法錯(cuò)誤保留字拼寫錯(cuò)誤循環(huán)體不匹配參數(shù)與變元不匹配程序員發(fā)現(xiàn)在用某些解釋性程序設(shè)計(jì)語言(如VB,VFP等)編程時(shí)檢查這類錯(cuò)誤容易而且及時(shí)
38軟件錯(cuò)誤(續(xù)1)2.程序員對語言結(jié)果誤解所造成的錯(cuò)誤。如,對循環(huán)體結(jié)構(gòu)的誤解3.算法或邏輯上的錯(cuò)誤4.近似算法會使某些輸入變量得不到精確的甚至錯(cuò)誤的結(jié)果5.由于錯(cuò)誤的輸入導(dǎo)致程序的錯(cuò)誤6.數(shù)據(jù)結(jié)構(gòu)說明不當(dāng)或?qū)崿F(xiàn)中的缺陷所造成的錯(cuò)誤7.由于系統(tǒng)(或模塊)說明書的缺陷所造成的錯(cuò)誤最為嚴(yán)重。39測試的任務(wù)預(yù)防軟件發(fā)生錯(cuò)誤發(fā)現(xiàn)并改正程序錯(cuò)誤提供錯(cuò)誤診斷信息40軟件測試的基本手段人工測試人工測試可以由編寫者本人非正式地進(jìn)行,也可以由審查小組正式地進(jìn)行。人工測試技術(shù)有:程序?qū)彶?CodeInspections)人工運(yùn)行(Walkthroughs)桌前檢查(DeskChecking)41計(jì)算機(jī)測試(1)設(shè)計(jì)測試情況計(jì)算機(jī)測試要遵循的步驟:(2)進(jìn)行模塊測試(3)進(jìn)行高級測試準(zhǔn)備一些測試程序在計(jì)算機(jī)上運(yùn)行,以此來查找程序錯(cuò)誤42軟件測試方法正確性證明方法動(dòng)態(tài)測試方法靜態(tài)測試方法43程序正確性證明程序正確性證明技術(shù)目前還處于初級階段,近期內(nèi)還不可能適用于大型系統(tǒng)。例如一個(gè)433行的ALGOL程序,其證明長達(dá)46頁。怎樣保證“證明”這46頁中沒有錯(cuò)誤?44動(dòng)態(tài)測試方法
動(dòng)態(tài)測試,即有控制地運(yùn)行程序,從多種角度觀察程序運(yùn)行時(shí)的行為,發(fā)現(xiàn)其中的錯(cuò)誤??杉?xì)分為黑盒測試與白盒測試兩種方法。
測試只能證明程序有錯(cuò)誤,而不可能證明程序沒有錯(cuò)誤。45動(dòng)態(tài)測試方法黑盒測試白盒測試46黑盒測試(功能測試)方法(Black-boxTesting)黑盒測試黑盒測試方法黑盒測試方法的原理窮舉測試黑盒測試使用的數(shù)據(jù)47黑盒測試方法工作原理把程序看成一個(gè)黑盒子黑盒程序48黑盒測試方法工作原理完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程49黑盒測試方法工作原理在接口進(jìn)行測試檢查程序功能是否按規(guī)格說明書的規(guī)定正常使用正常使用規(guī)格說明書50黑盒測試方法工作原理程序是否適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出數(shù)據(jù)保持外部信息的完整性51黑盒測試的窮盡輸入測試至少必須對所有輸入數(shù)據(jù)的各種可能值的排列組合都進(jìn)行測試?yán)?,一個(gè)程序需要三個(gè)整數(shù)型的輸入數(shù)據(jù)如果計(jì)算機(jī)字長是16位,則每個(gè)整數(shù)可能取的值有216個(gè)三個(gè)數(shù)的可能排列組合是216*216*216(3*1014種)假設(shè)每執(zhí)行一次程序需要1毫秒,則需1萬年52黑盒測試使用的數(shù)據(jù)程序有效的輸入數(shù)據(jù)程序無效的輸入數(shù)據(jù)極端的數(shù)據(jù)元素正常的數(shù)據(jù)元素特殊的數(shù)據(jù)元素53白盒測試(結(jié)構(gòu)測試)方法(White-boxTesting)白盒測試方法白盒測試白盒測試方法的原理窮盡測試54白盒測試(結(jié)構(gòu)測試或邏輯覆蓋法)方法已經(jīng)知道了產(chǎn)品內(nèi)部工作過程通過測試檢驗(yàn)來檢驗(yàn)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行55白盒測試方法工作原理白盒程序56完全了解程序的內(nèi)部結(jié)構(gòu)和處理過程白盒測試方法工作原理57按照程序內(nèi)部的邏輯測試程序白盒測試方法工作原理檢驗(yàn)程序中的每一條通路是否都能按預(yù)定的要求正常工作58白盒測試的窮盡路徑測試至少必須對所有路徑都進(jìn)行測試即使可以窮舉出所有的路徑(不可能遍歷所有),但是若程序少寫了一個(gè)路徑,則查不出錯(cuò)誤59靜態(tài)測試法程序?qū)彶闀a會審(CodeInspections)桌前檢查(DeskChecking)——靜態(tài)檢查人工運(yùn)行(Walkthroughs)60注意需要特別注意的是:測試不能表明系統(tǒng)中不存在錯(cuò)誤,它只能說明系統(tǒng)中存在錯(cuò)誤。
原因:窮舉不可行,遍歷不可行。測試的致命缺陷是:測試的不完全、不徹底性。61動(dòng)態(tài)測試方案設(shè)計(jì)黑盒測試用例設(shè)計(jì)白盒測試用例設(shè)計(jì)62白盒測試--邏輯覆蓋測試的種類語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋多重條件覆蓋實(shí)例63語句覆蓋程序的某次運(yùn)行并不一定執(zhí)行其中的所有語句。因此,如果某個(gè)含有錯(cuò)誤的語句在測試中并沒有執(zhí)行,這個(gè)錯(cuò)誤便不可能發(fā)現(xiàn)。語句覆蓋法就是要選擇測試用例,使得程序中的每個(gè)語句至少執(zhí)行一次。該方法發(fā)現(xiàn)錯(cuò)誤的能力比較弱。64用例設(shè)計(jì)例:被測試程序的流程圖PROCEDUREM(VARA,B,X:REAL) BEGIN IF(A>1)AND(B=0) THENX:=X/A IF(A=2)OR(X>1) THENX:=X+1 END;若選擇測試用例為A=2,B=0,X=3,則程序通過路徑ace,程序中每個(gè)語句都執(zhí)行了一次,達(dá)到語句覆蓋的要求。A>1ANDB=0X=X/AX=X+1A=2ORX>1NNYYacbde65判斷覆蓋判斷覆蓋是指設(shè)計(jì)測試用例使程序中的每個(gè)判斷的取“真”值和取“假”值的每一個(gè)分支至少通過一次。本例中,若取測試用例為A=2,B=0,X=3和A=3,B=1,X=1,則可以使得兩個(gè)判斷語句的4個(gè)分支都得到覆蓋。判斷覆蓋比語句覆蓋更嚴(yán)格一些。A>1ANDB=0X=X/AX=X+1A=2ORX>1NNYYacbde66條件覆蓋條件覆蓋是指執(zhí)行足夠的測試用例,使得判斷中的每個(gè)條件獲得各種可能的結(jié)果。本例中,有四個(gè)條件:
A>1,對應(yīng)A>1或A≤1
B=0,對應(yīng)B=0或B≠0
A=2,對應(yīng)A=2或A≠2
X>1,對應(yīng)X>1或X≤1A>1ANDB=0X=X/AX=X+1A=2ORX>1NNYYacbde67條件覆蓋(續(xù)1)A>1,對應(yīng)A>1或A≤1B=0,對應(yīng)B=0或B≠0A=2,對應(yīng)A=2或A≠2X>1,對應(yīng)X>1或X≤1以下2用例可以滿足要求:①A=2,B=0,X=4②A=1,B=1,X=1A>1ANDB=0X=X/AX=X+1A=2ORX>1NNYYacbde68條件覆蓋(續(xù)2)一般說來,條件覆蓋比判斷覆蓋要求嚴(yán)格,因?yàn)榕袛喔采w的對象是每個(gè)判斷結(jié)果,而條件覆蓋則要考慮每個(gè)判斷中的每個(gè)條件。但是由于條件覆蓋分別考慮每個(gè)條件而不管同一判斷中諸條件的組合情況,因此,測試用例可能滿足條件覆蓋的要求,但不滿足判斷覆蓋的要求。如①A=1,B=0,X=3②A=2,B=1,X=1A>1ANDB=0X=X/AX=X+1A=2ORX>1NNYYacbde69判定/條件覆蓋編寫足夠的測試情況,使得判定中每個(gè)條件取得“真”和“假”兩種結(jié)果。并使每個(gè)判定本身的“真”和“假”兩種結(jié)果也至少出現(xiàn)一次。同時(shí)每個(gè)入口點(diǎn)至少要進(jìn)入一次。①A=3,B=0,X=3②A=2,B=1,X=1①A=2,B=0,X=4②A=1,B=1,X=1A>1ANDB=0X=X/AX=X+1A=2ORX>1NNYYacbde70多重條件覆蓋(條件組合覆蓋)要寫出足夠的測試情況,以使判定的每條分支至少通過一次。編寫足夠的測試情況,使得每個(gè)判定中條件結(jié)果的所有可能組合至少出現(xiàn)一次,且所有的入口點(diǎn)都至少進(jìn)入一次。A>1ANDB=0X=X/AX=X+1A=2ORX>1NNYYacbde71多重條件覆蓋(條件組合覆蓋)(續(xù))有8個(gè)條件:①A>1,B=0②A>1,B≠0③A≤1,B=0④A≤1,B≠0⑤A=2,X>1⑥A=2,X≤1⑦A≠2,X>1⑧A≠2,X≤1A=2,B=0,X=4覆蓋①,⑤A=2,B=1,X=1,覆蓋②,⑥A=1,B=0,X=2覆蓋③,⑦A=1,B=1,X=1覆蓋④,⑧A>1ANDB=0X=X/AX=X+1A=2ORX>1NNYYacbde72路徑覆蓋
設(shè)計(jì)測試用例,使它覆蓋程序中所有可能的路徑。本例中有四條可能的路徑:abd,ace,abe,acd。如下測試用例可滿足路徑覆蓋要求:①A=2,B=0,X=3(ace)②A=1,B=0,X=1(abd)③A=2,B=1,X=1(abe)④A=3,B=0,X=1(acd)A>1ANDB=0X=X/AX=X+1A=2ORX>1NNYYacbde73路徑覆蓋(續(xù))路徑覆蓋的測試功能很強(qiáng)。但對于實(shí)際問題,即使一個(gè)不太復(fù)雜的程序,其路徑數(shù)也可能相當(dāng)龐大而不可能完全覆蓋。74實(shí)例假如有如下一條語句:IF(X>0)AND(Y≠0)THENS1ELSES2ENFIFX>0ANDY≠0S1YNS275滿足判定覆蓋標(biāo)準(zhǔn),但不滿足條件覆蓋標(biāo)準(zhǔn)滿足條件覆蓋標(biāo)準(zhǔn),但不滿足判定覆蓋標(biāo)準(zhǔn)滿足判定/條件覆蓋標(biāo)準(zhǔn)
滿足組合條件覆蓋標(biāo)準(zhǔn)X>0ANDY≠0S1YNS2實(shí)例76動(dòng)態(tài)測試方案設(shè)計(jì)黑盒測試用例設(shè)計(jì)白盒測試用例設(shè)計(jì)77黑盒測試的種類等價(jià)類法邊值分析法因果圖法錯(cuò)誤推測法78等價(jià)類劃分
對于某個(gè)輸入域的子集合,如果該集合中的各個(gè)輸入數(shù)據(jù)對于揭露程序中的錯(cuò)誤都是等效的,則稱這個(gè)集合為等價(jià)類。測試某等價(jià)類的代表值就等價(jià)于對這一類其他值的測試。使用這一方法設(shè)計(jì)測試用例要經(jīng)歷劃分等價(jià)類(列出等價(jià)類表)和選取測試用例兩步。79等價(jià)類劃分等價(jià)類的劃分有兩種不同的情況:有效等價(jià)類,無效等價(jià)類。在設(shè)計(jì)測試用例時(shí),要同時(shí)考慮有效等價(jià)類和無效等價(jià)類的設(shè)計(jì)。80等價(jià)類劃分原則①如果輸入條件規(guī)定了取值范圍或值的個(gè)數(shù),則可以確定一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類例如:在程序的規(guī)格說明中,對輸入條件有一句話,“一次取款不得少于50元,最多可取2000元……”則有效等價(jià)類是“50<所得額<2000”,兩個(gè)無效等價(jià)類是“所得額<50”或“所得額>2000”。81等價(jià)類劃分原則(續(xù)1)②如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時(shí)可確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類例如:在C語言中對變量標(biāo)識符規(guī)定為“以字母打頭的……串”,則所有以字母打頭的構(gòu)成有效等價(jià)類,不以字母打頭的歸于無效等價(jià)類。如果輸入條件是一個(gè)布爾量、則可以確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。82等價(jià)類劃分原則(續(xù)2)③如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對每個(gè)輸入值分別進(jìn)行處理,這時(shí)可為每一個(gè)輸入值確立一個(gè)有效等價(jià)類,此外針對這組值確立一個(gè)無效等價(jià)類,它是所有不允許的輸入值的集合例如:在教師獎(jiǎng)酬金方案中規(guī)定對教授、副教授、講師和助教的課時(shí)分別折算工作量。則四個(gè)有效等價(jià)類為教授、副教授、講師和助教,一個(gè)無效等價(jià)類,它是不符合以上身份的人員的的集合。83等價(jià)類劃分原則(續(xù)3)④如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)在確立了等價(jià)類之后,建立等價(jià)類表(P270),列出所有劃分出的等價(jià)類。最后確定測試用例。84邊值分析(邊界值測試)經(jīng)驗(yàn)證明,程序往往在處理邊緣情況時(shí)犯錯(cuò)誤,因此檢查邊緣情況的測試用例效率比較高的。使用邊界值分析方法設(shè)計(jì)測試用例,首先應(yīng)確定邊界情況。應(yīng)當(dāng)選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測試數(shù)據(jù)。85邊值分析(邊界值測試)(續(xù)1)把邊界值的概念擴(kuò)大,可以設(shè)計(jì)出種種測試用例。例如:①對新記錄在文件第一個(gè)記錄之前加一個(gè)記錄在文件最后一個(gè)記錄之后加一個(gè)記錄插入的新記錄對應(yīng)實(shí)體是實(shí)際不可能存在的86邊值分析(邊界值測試)(續(xù)2)②處理業(yè)務(wù)處理文件的第一個(gè)記錄處理文件的最后一個(gè)記錄處理中間的一個(gè)記錄處理同一程序剛建立的記錄連續(xù)處理相鄰記錄試圖處理一個(gè)不存在的記錄處理業(yè)務(wù)使某個(gè)數(shù)值超過常規(guī)(如庫存數(shù)為負(fù)或域值上溢)對某些關(guān)鍵數(shù)據(jù)輸入有錯(cuò)誤的數(shù)據(jù)同一業(yè)務(wù)處理過程中造成多重例外和出錯(cuò)87邊值分析(邊界值測試)(續(xù)3)③記錄刪除刪除文件的第一個(gè)記錄刪除文件的最后一個(gè)記錄試圖刪去不存在的記錄連續(xù)刪除多個(gè)記錄刪除一個(gè)記錄,并試圖處理這個(gè)記錄88邊值分析(邊界值測試)(續(xù)4)④試驗(yàn)邏輯檢查所有能產(chǎn)生最大值,最小值,平均值的計(jì)算除式中除數(shù)為0數(shù)據(jù)域填入最小數(shù)或最大數(shù)數(shù)據(jù)域填入允許值以外的數(shù)這種方法表面上看起來很簡單,但許多程序的邊界情況極為復(fù)雜,要找出適當(dāng)?shù)臏y試用例,需要有一定經(jīng)驗(yàn)和創(chuàng)造性。89因果圖法(case_effectgraphing)因果圖法的原理因果圖使用符號因果圖實(shí)例90因果圖法原理從用自然語言書寫的功能說明表中找出因--輸入條件--輸出結(jié)果通過因果圖將功能說明轉(zhuǎn)換成一張判斷表為每種輸出條件的組合設(shè)計(jì)測試用例91因果圖使用的符號恒等ab非abSabcd∨或abc∧與92因果圖法實(shí)例第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字。在這種情況下,修改文件。如果第一個(gè)字符不正確,則發(fā)出信息X12。如果第二列字符不是數(shù)字,則發(fā)出信息X1393因1--第1列字符是A2--第1列字符是B3--第2列字符是一個(gè)數(shù)字果70--修改文件71--發(fā)出信息X1272--發(fā)出信息X13實(shí)例分析9412311∨∧717072~~12311∨∧717072~~E實(shí)例分析95錯(cuò)誤推測法(猜錯(cuò))(errorguessing)很大程度上依靠直覺和經(jīng)驗(yàn)進(jìn)行,列舉出程序中可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,選擇測試方案。96靜態(tài)測試方法
靜態(tài)測試指人工評審軟件文檔或程序,發(fā)現(xiàn)其中的錯(cuò)誤。這種方法手續(xù)簡單,是一種行之有效的檢驗(yàn)手段。
據(jù)統(tǒng)計(jì),30%-70%的錯(cuò)誤是通過評審發(fā)現(xiàn)的,且這些錯(cuò)誤往往影響很大。97測試類型劃分模塊測試聯(lián)合測試驗(yàn)收測試系統(tǒng)測試98模塊測試模塊測試是對一個(gè)模塊進(jìn)行測試,根據(jù)模塊的功能說明,檢驗(yàn)?zāi)K是否有錯(cuò)誤。模塊測試一般由編程人員自己進(jìn)行,模塊測試有以下項(xiàng)目:①模塊界面。調(diào)用參數(shù)(流入數(shù)據(jù))數(shù)目、順序、類型②內(nèi)部數(shù)據(jù)結(jié)構(gòu)。如初始值對不對,變量名稱是否一致,共用數(shù)據(jù)是否有誤③獨(dú)立路徑。是否存在不正確的計(jì)算、不正確的循環(huán)及判斷控制④錯(cuò)誤處理。預(yù)測錯(cuò)誤的產(chǎn)生及處理,看是否和運(yùn)行一致⑤邊界條件。對數(shù)據(jù)大小界限和判斷條件的邊界進(jìn)行跟蹤運(yùn)行。99聯(lián)合測試聯(lián)合測試即通常說的聯(lián)調(diào)。聯(lián)合測試可以發(fā)現(xiàn)總體設(shè)計(jì)中的錯(cuò)誤。聯(lián)合測試方法有兩種,即根據(jù)模塊結(jié)構(gòu)圖由上到下或由下到上進(jìn)行測試。
①由上到下。設(shè)置下層模塊為樁模塊,檢查控制流,較早發(fā)現(xiàn)錯(cuò)誤,而不至于影響到下層模塊。②由下到上。先設(shè)置上層模塊為驅(qū)動(dòng)模塊,測試下層模塊執(zhí)行的正確性,然后逐步向上推廣100驗(yàn)收測試驗(yàn)收測試檢驗(yàn)系統(tǒng)說明書的各項(xiàng)功能與性能是否實(shí)現(xiàn),是否滿足要求。驗(yàn)收測試的方法一般是列出一張清單,左邊是需求的功能,右邊是發(fā)現(xiàn)的錯(cuò)誤或缺陷。常見的驗(yàn)收測試有所謂的α測試和β測試,前者由使用者在應(yīng)用系統(tǒng)開發(fā)所在地與開發(fā)者一同進(jìn)行觀察記錄,后者由用戶在使用環(huán)境中獨(dú)立進(jìn)行。101系統(tǒng)測試系統(tǒng)測試是對整個(gè)系統(tǒng)的測試,將硬件、軟件、操作人員看做一個(gè)整體,檢驗(yàn)它是否有不符合系統(tǒng)說明書的地方。這種測試可以發(fā)現(xiàn)系統(tǒng)分析和設(shè)計(jì)的錯(cuò)誤。102
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 駕駛實(shí)操模擬考試題及答案
- 在校生實(shí)習(xí)勞務(wù)協(xié)議5篇
- 2025江蘇連云港市贛榆區(qū)教育局所屬學(xué)校招聘新教師69人模擬試卷附答案詳解(突破訓(xùn)練)
- 公司信用體系建設(shè)工作承諾函(3篇)
- 場景化任務(wù)管理工具與進(jìn)度協(xié)同更新
- 鋼琴老師的考試題及答案
- 2025年幼兒健康考試試題及答案
- 達(dá)州統(tǒng)考真題數(shù)學(xué)及答案
- 菏澤教資考試試題及答案
- 2025年北京省考行測真題及答案
- 中藥涂藥技術(shù)
- . 鋼管樁施工質(zhì)量監(jiān)理細(xì)則
- 考勤表-智能考勤表
- 感染控制和抗菌藥物臨床應(yīng)用管理專家講座
- GB/T 11379-1989金屬覆蓋層工程用鉻電鍍層
- 新概念英語第二冊全冊教案
- 影子銀行與資產(chǎn)證券化課件
- 主要造巖礦物的鑒定特征概述111課件
- 艾默生軟件使用說明書
- 《中石油專業(yè)技術(shù)人員晉升職稱專業(yè)日語選讀》譯文
- 《鋼筋焊接及驗(yàn)收規(guī)程》JGJ18
評論
0/150
提交評論