版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章軟件工程根底6.1軟件工程概述6.2軟件詳細(xì)設(shè)計(jì)6.3結(jié)構(gòu)化分析與設(shè)計(jì)方法6.4測(cè)試與調(diào)試根本技術(shù)16.1軟件工程概述6.1.1軟件工程的概念6.1.2軟件生命周期6.1.3軟件支援環(huán)境2軟件工程出現(xiàn)的原因軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題?,F(xiàn)象一:軟件開發(fā)本錢和進(jìn)度的估計(jì)不準(zhǔn)確,交付時(shí)間一再拖延,造成開發(fā)本錢超出預(yù)算。案例:1995年,新丹佛國際化機(jī)場(chǎng)自動(dòng)化行李系統(tǒng)的軟件出現(xiàn)故障,導(dǎo)致機(jī)場(chǎng)延期16個(gè)月才正式啟用,并且大局部行李采用人工分揀,系統(tǒng)本錢超出預(yù)算32億美元。原因:軟件復(fù)雜程度高,開發(fā)周期長,并且各種變化不斷,因此軟件工程按期完成交付的很少。3現(xiàn)象二:“已完成”的軟件不滿足用戶的需求案例:1984年,經(jīng)過18個(gè)月的開發(fā),一個(gè)耗資2億美元的系統(tǒng)支付給了美國威斯康星州的一家健康保險(xiǎn)公司。但該系統(tǒng)不能滿足用戶的正常工作需求,只好追加了6千萬美金,又花了3年時(shí)間才解決了問題。原因:軟件開發(fā)人員不是用戶業(yè)務(wù)的專家,用戶不懂計(jì)算機(jī)軟件技術(shù),因此,軟件人員按照自己的理解開發(fā)出得軟件往往不能滿足用戶的業(yè)務(wù)需求。4現(xiàn)象三:軟件產(chǎn)品的質(zhì)量沒有保證案例:1996年6月4日,Ariane5火箭首次發(fā)射,在升空大約40秒且高度不到4千米處,火箭突然發(fā)生爆炸,該事件造成了50億美元的損失。事故原因是在Ariane5中使用了Ariane4火箭的程序代碼,在將64位浮點(diǎn)數(shù)轉(zhuǎn)換為16位帶符號(hào)整數(shù)的程序中,更快的運(yùn)算引擎導(dǎo)致了Ariane5中的64位數(shù)據(jù)要比Ariane4中更長,直接誘發(fā)了溢出條件,最終導(dǎo)致了航天計(jì)算機(jī)的崩潰。原因:軟件質(zhì)量和可靠性的評(píng)估非常困難。這些投資巨大、技術(shù)一流、管理標(biāo)準(zhǔn)、測(cè)試充分的軟件也難保不出現(xiàn)質(zhì)量問題。5現(xiàn)象四:軟件通常沒有適當(dāng)?shù)奈臋n資料或文檔與最終交付的軟件產(chǎn)品不符。原因:軟件幾乎不可能一版保證成功,而是經(jīng)歷反復(fù)修改,其中的文檔很難與每次的修改保持一致,錯(cuò)誤的文檔就像錯(cuò)誤的地圖一樣危險(xiǎn)。現(xiàn)象五:軟件的可維護(hù)程度低。原因:軟件開發(fā)過程中,起著重要作用的是開發(fā)者的邏輯思維過程。如果假設(shè)干年后,由其他人來修改,必須要理解開發(fā)者當(dāng)時(shí)的思維過程,因此說讀懂別人的程序比重新編寫的難度更大。6軟件危機(jī)出現(xiàn)的原因主要有兩個(gè)方面:其一是軟件本領(lǐng)的特點(diǎn);其二是軟件開發(fā)過程不成熟。軟件開發(fā)過程不成熟的主要表現(xiàn)為:無視軟件開發(fā)前期的調(diào)研與分析工作,沒有統(tǒng)一、標(biāo)準(zhǔn)的方法論指導(dǎo),輕視文檔管理和質(zhì)量保證工作,缺乏相關(guān)人員之間的溝通。7簡(jiǎn)陋的小屋—太簡(jiǎn)單!不要設(shè)計(jì)8新農(nóng)村別墅造型圖—復(fù)雜!需要設(shè)計(jì)了9別墅的設(shè)計(jì)—設(shè)計(jì)圖紙、施工圖紙10設(shè)計(jì)和施工說明11典型helloworld程序—太簡(jiǎn)單!不要設(shè)計(jì)#include<stdio.h>
intmain()
{
printf(“helloworld!”);//輸出helloworld!
return0;
}12圖書館圖書信息管理軟件—復(fù)雜!需要設(shè)計(jì)136.1.1軟件工程的概念軟件工程學(xué)是研究軟件開發(fā)和維護(hù)的普遍原理與技術(shù)的一門工程學(xué)科。所謂軟件工程是指,采用工程的概念、原理、技術(shù)和方法指導(dǎo)軟件的開發(fā)與維護(hù)。把經(jīng)過實(shí)踐考驗(yàn)而證明正確的管理方法和先進(jìn)的軟件開發(fā)技術(shù)結(jié)合起來,運(yùn)用到軟件開發(fā)和維護(hù)過程中,來解決軟件危機(jī)。14軟件定義期:包括問題定義、可行性研究和需求分析三個(gè)階段;軟件開發(fā)期:包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試四個(gè)階段;軟件維護(hù)期:即運(yùn)行維護(hù)階段。6.1.2軟件生命周期151.軟件定義期(1)問題定義確定問題的性質(zhì)、工程目標(biāo)以及規(guī)模。分析員應(yīng)提交書面報(bào)告給用戶與使用部門負(fù)責(zé)人進(jìn)行審查。(2)可行性研究進(jìn)一步研究上一階段所定義的問題是否可解。最后還要提交必要的文檔。16(3)需求分析①確定對(duì)系統(tǒng)的綜合要求,即功能要求、性能要求、運(yùn)行要求以及將來可能會(huì)提出的一些要求。②對(duì)系統(tǒng)的數(shù)據(jù)要求進(jìn)行分析。主要包括數(shù)據(jù)元素的分類和標(biāo)準(zhǔn)化,描繪實(shí)體之間的關(guān)系圖,進(jìn)行事務(wù)分析與數(shù)據(jù)庫模型的建立。③在前面分析的根底上,推導(dǎo)出系統(tǒng)的詳細(xì)模型系統(tǒng)。④修正開發(fā)方案,并建立模型系統(tǒng)。文檔內(nèi)容:①系統(tǒng)的功能說明②系統(tǒng)對(duì)數(shù)據(jù)的要求③用戶系統(tǒng)描述172.軟件開發(fā)期(1)系統(tǒng)設(shè)計(jì)①提出可選擇方案;②選擇合理方案;③推薦最正確方案;④功能分解;⑤設(shè)計(jì)軟件結(jié)構(gòu);⑥制定測(cè)試方案;⑦提交文檔。18(2)詳細(xì)設(shè)計(jì)(3)編碼①選擇適當(dāng)?shù)某绦蛟O(shè)計(jì)語言;②使程序內(nèi)部有良好的文檔資料、標(biāo)準(zhǔn)的數(shù)據(jù)格式說明、簡(jiǎn)單清晰的語句結(jié)構(gòu)和合理的輸入輸出格式,這些都可以大大提高程序的可讀性,而且也可以改進(jìn)程序的可維護(hù)性;③充分利用已有的軟件工具來幫助編碼,以提高編碼的效率和減少程序中的錯(cuò)誤。(4)測(cè)試193.軟件維護(hù)期①為糾正使用中出現(xiàn)的錯(cuò)誤而進(jìn)行的改正性維護(hù);②為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);③為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);④為將來的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。206.1.3軟件支援環(huán)境一個(gè)完備的軟件支援環(huán)境應(yīng)有功能:(1)能夠支援軟件生命的全周期。(2)能夠支援大型軟件工程工程。(3)能夠支援軟件配置管理。一般的軟件支援環(huán)境由以下幾局部組成。(1)環(huán)境數(shù)據(jù)庫(2)接口軟件(3)工具組216.2軟件詳細(xì)設(shè)計(jì)6.2.1程序流程圖6.2.2NS圖6.2.3問題分析圖PAD6.2.4判定表6.2.5過程設(shè)計(jì)語言PDL22詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)也叫過程設(shè)計(jì),應(yīng)該在軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)之后進(jìn)行。主要是設(shè)計(jì)模塊內(nèi)的算法實(shí)現(xiàn)細(xì)節(jié)。詳細(xì)設(shè)計(jì)的任務(wù)不是編寫代碼,而是要為編寫程序代碼設(shè)計(jì)“圖紙”,有程序員按“圖紙”用某種高級(jí)程序設(shè)計(jì)語言編寫程序代碼。詳細(xì)設(shè)計(jì)的目的不僅僅是保證所涉及的模塊功能正確,更重要的是保證所設(shè)計(jì)的處理過程易于理解,具有良好的可靠性和可維護(hù)性。236.2.1程序流程圖程序流程圖中常用的圖形符號(hào)24結(jié)構(gòu)化程序設(shè)計(jì)限制五種根本控制結(jié)構(gòu)(1)順序結(jié)構(gòu)反映了假設(shè)干個(gè)模塊之間連續(xù)執(zhí)行的順序。(2)在選擇結(jié)構(gòu)中,由某個(gè)條件P的取值來決定執(zhí)行兩個(gè)模塊之間的哪一個(gè)。(3)在當(dāng)型循環(huán)結(jié)構(gòu)中,只有當(dāng)某個(gè)條件成立時(shí)才重復(fù)執(zhí)行特定的模塊(稱為循環(huán)體)。(4)在直到型循環(huán)結(jié)構(gòu)中,重復(fù)執(zhí)行一個(gè)特定的模塊,直到某個(gè)條件成立時(shí)才退出該模塊的重復(fù)執(zhí)行。(5)在多情況選擇結(jié)構(gòu)中,根據(jù)某控制變量的取值來決定選擇多個(gè)模塊中的哪一個(gè)。2526程序流程圖的主要缺點(diǎn):(1)程序流程圖本質(zhì)上不是逐步求精的好工具,它會(huì)使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。(2)程序流程圖不易表示層次結(jié)構(gòu)。(3)程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)和模塊調(diào)用關(guān)系等重要信息。(4)程序流程圖中用箭頭代表控制流,因此,程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的思想,隨意進(jìn)行轉(zhuǎn)移控制。276.2.2NS圖NS圖根本特點(diǎn):(1)功能域比較明確,可以從框圖中直接反映出來。(2)不可能任意轉(zhuǎn)移控制,符合結(jié)構(gòu)化原那么。(3)很容易確定局部和全程數(shù)據(jù)的作用域。(4)很容易表示嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。281.順序結(jié)構(gòu)292.選擇結(jié)構(gòu)(1)兩路分支結(jié)構(gòu)30(2)多路分支結(jié)構(gòu)313.循環(huán)結(jié)構(gòu)(1)當(dāng)型循環(huán)結(jié)構(gòu)32(2)直到型循環(huán)結(jié)構(gòu)336.2.3問題分析圖PAD〔ProblemAnalysisDiagram〕
PAD圖的五種根本控制結(jié)構(gòu)346.2.4判定表一張判定表由以下四局部組成:左上部列出所有條件;左下部是所有可能的動(dòng)作;右上部是表示各種條件組合的一個(gè)矩陣;右下部是和每種條件組合相對(duì)應(yīng)的動(dòng)作。判定表右半部的每一列實(shí)際上就是一個(gè)規(guī)那么,規(guī)定了與特定的條件組合相對(duì)應(yīng)的動(dòng)作。35假設(shè)某大學(xué)要從學(xué)生中挑選男子籃球隊(duì)隊(duì)員,根本條件是各門課程的平均分在70分以上,身高超過1.80米,體重超過75公斤。需要從學(xué)生登記表中挑選出符合上述條件的男同學(xué),并列出他們的姓名和住址,以便進(jìn)一步選拔。36376.2.5過程設(shè)計(jì)語言PDLPDL特點(diǎn):(1)關(guān)鍵字的固定語法,提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模塊化的特點(diǎn)。(2)用自然語言的自由語法來描述處理局部。(3)具有數(shù)據(jù)說明的手段。(4)具有模塊定義和調(diào)用的機(jī)制,提供各種接口描述模式。38PDL優(yōu)點(diǎn):(1)可以作為注釋直接插在源程序中間。這樣做的好處是,能促使維護(hù)人員在修改源程序代碼的同時(shí)也修改PDL注釋,有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量。(2)可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書寫和編輯工作。(3)利用已有的自動(dòng)處理程序,可以自動(dòng)由PDL生成程序代碼。396.3結(jié)構(gòu)化分析與設(shè)計(jì)方法6.3.1應(yīng)用軟件開發(fā)的原那么和方法6.3.2結(jié)構(gòu)化分析方法6.3.3結(jié)構(gòu)化設(shè)計(jì)方法406.3.1應(yīng)用軟件開發(fā)的原那么和方法1.應(yīng)用軟件開發(fā)的根本原那么(1)自頂向下的系統(tǒng)結(jié)構(gòu)開發(fā)原那么(2)模塊化結(jié)構(gòu)開發(fā)原那么412.應(yīng)用軟件的開發(fā)方法(1)非自動(dòng)形式的開發(fā)方法①系統(tǒng)流程圖法(systemflowchart)②結(jié)構(gòu)化分析方法〔SA方法〕③結(jié)構(gòu)化設(shè)計(jì)方法〔SD方法〕④數(shù)據(jù)結(jié)構(gòu)法〔Jackson法〕⑤層次輸入-處理-輸出方法〔HIPO方法〕42(2)半自動(dòng)形式的開發(fā)方法①SREM方法②PSL/PSA方法PSL是一種問題說明語言〔ProblemStatementLanguage〕PSA是一種問題說明分析器〔ProblemStatementAnalyzer〕MICRO_PSL/PSA系統(tǒng)(3)自動(dòng)形式的系統(tǒng)開發(fā)方法主要以HOS〔HigherOrderSoftware公司〕方法為代表。436.3.2結(jié)構(gòu)化分析方法SA〔StructualAnalysis〕1.SA方法的特點(diǎn)(1)分解和抽象4445(2)文檔的標(biāo)準(zhǔn)化①一套分層的數(shù)據(jù)流程圖,用于描述系統(tǒng)的邏輯關(guān)系。②一本數(shù)據(jù)字典,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件。③一組小說明,描述各個(gè)加工處理應(yīng)完成的工作。④其他補(bǔ)充材料,描述尚未說明或需要進(jìn)一步交代的問題。(3)面向用戶(4)系統(tǒng)的邏輯設(shè)計(jì)和物理設(shè)計(jì)分開進(jìn)行462.數(shù)據(jù)流程圖(1)數(shù)據(jù)流程圖的概念①用數(shù)據(jù)流程圖描述系統(tǒng)中信息的變換和傳遞過程,并輔以其他形式的說明,如數(shù)據(jù)字典、判定表和判定樹等。②將數(shù)據(jù)流程圖轉(zhuǎn)換成相應(yīng)的軟件結(jié)構(gòu)。
數(shù)據(jù)流程圖簡(jiǎn)稱DFD〔DataFlowDiagram〕47研究生業(yè)務(wù)活動(dòng)數(shù)據(jù)流程圖48(2)數(shù)據(jù)流程圖的組成符號(hào)49(3)畫數(shù)據(jù)流程圖的方法①自頂向下逐層分解②由外向里逐漸深化503.數(shù)據(jù)字典在數(shù)據(jù)字典中,通常有四種類型的條目。(1)根本數(shù)據(jù)項(xiàng)條目例如,學(xué)生“年齡”這個(gè)數(shù)據(jù)項(xiàng)的定義如下:數(shù)據(jù)項(xiàng)名稱:學(xué)生年齡數(shù)據(jù)類型:整型數(shù)據(jù)長度:一個(gè)字節(jié)取值范圍:16~3051(2)數(shù)據(jù)流條目課程目錄=課程名+學(xué)時(shí)+學(xué)分+教員+課表其中“教員”又可以列為一個(gè)子目錄,表示為教員=姓名+年齡+職稱“課表”也可以列為一個(gè)子目錄,表示成課表=星期幾+第幾節(jié)+教室
52數(shù)據(jù)流條目的各數(shù)據(jù)項(xiàng)可以分為以下三種:①必有項(xiàng),即數(shù)據(jù)流條目中必定包含的數(shù)據(jù)項(xiàng);②必選項(xiàng),即在某幾項(xiàng)中必定出現(xiàn)其中一項(xiàng)或幾項(xiàng);③任選項(xiàng),即可選可不選的數(shù)據(jù)項(xiàng)。在表示數(shù)據(jù)流條目時(shí),一般要用到以下一些符號(hào):=含義是“定義為”或“等價(jià)為”+含義是連接,表示幾個(gè)數(shù)據(jù)項(xiàng)的合成[]表示必選項(xiàng)()表示任選項(xiàng){}表示重復(fù)〔有時(shí)用上下標(biāo)表示重復(fù)次數(shù)〕例如,考試成績(jī)={學(xué)號(hào)+姓名}1100+[平均分+方差]53(3)文件條目(4)加工條目〔即數(shù)據(jù)處理?xiàng)l目〕546.3.3結(jié)構(gòu)化設(shè)計(jì)方法1.結(jié)構(gòu)化設(shè)計(jì)方法的特點(diǎn)結(jié)構(gòu)化設(shè)計(jì)方法簡(jiǎn)稱SD〔StructuredDesign〕(1)如何將系統(tǒng)劃分為一個(gè)個(gè)模塊;(2)模塊之間傳遞什么數(shù)據(jù);(3)模塊之間如何進(jìn)行調(diào)用;(4)如何評(píng)價(jià)模塊結(jié)構(gòu)的質(zhì)量。552.結(jié)構(gòu)圖結(jié)構(gòu)圖簡(jiǎn)稱SC〔StructuredChart〕圖56計(jì)算工資的結(jié)構(gòu)圖57(1)模塊(2)調(diào)用(3)模塊間信息傳遞(4)輔助符號(hào)583.由數(shù)據(jù)流程圖導(dǎo)出結(jié)構(gòu)圖(1)變換型從變換型DFD導(dǎo)出結(jié)構(gòu)圖59(a)數(shù)據(jù)流程圖60(b)結(jié)構(gòu)圖61(2)事務(wù)型從事務(wù)型DFD導(dǎo)出結(jié)構(gòu)圖示意圖62(a)數(shù)據(jù)流程圖模型63(b)結(jié)構(gòu)圖644.模塊獨(dú)立性評(píng)價(jià)(1)耦合模塊之間的耦合反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。為了使系統(tǒng)各模塊之間相互影響盡可能地少,使系統(tǒng)簡(jiǎn)單而易理解,應(yīng)減少模塊之間的耦合程度。①數(shù)據(jù)耦合②同構(gòu)耦合③控制耦合④公用耦合⑤內(nèi)容耦合6566(2)內(nèi)聚內(nèi)聚是對(duì)一個(gè)模塊內(nèi)部元素之間功能上相互聯(lián)系強(qiáng)度的測(cè)量。模塊內(nèi)聚度又稱為模塊強(qiáng)度。一個(gè)模塊的內(nèi)聚度越高,與其他模塊之間的耦合程度也就越弱。①功能內(nèi)聚②序列內(nèi)聚③通信內(nèi)聚④過程內(nèi)聚⑤時(shí)間內(nèi)聚⑥邏輯內(nèi)聚⑦偶然內(nèi)聚67邏輯內(nèi)聚模塊的分解6869決定內(nèi)聚程度的判定樹706.4測(cè)試與調(diào)試根本技術(shù)6.4.1測(cè)試6.4.2調(diào)試71據(jù)新華社洛杉磯2002年6月報(bào)道,美國一家研究所公布的調(diào)查結(jié)果說明,軟件錯(cuò)誤使美國每年損失高達(dá)595億美元。同時(shí)指出,如能做好檢測(cè)工作,即在軟件開發(fā)的早期發(fā)現(xiàn)漏洞并進(jìn)行彌補(bǔ)每年能給美國企業(yè)節(jié)省本錢222億美元。然而,目前軟件中一半以上的錯(cuò)誤是在開發(fā)的后期或者售后使用中才被發(fā)現(xiàn)的。72測(cè)試的工作量一般性軟件其測(cè)試工作量大約占整個(gè)開發(fā)工作量的40%系統(tǒng)軟件或關(guān)系到人的生命財(cái)產(chǎn)平安的重要軟件,其測(cè)試工作量通常可能到達(dá)整個(gè)開發(fā)工作量的3—5倍736.4.1測(cè)試1.測(cè)試的根本概念測(cè)試具有以下三個(gè)重要特征。(1)測(cè)試的挑剔性測(cè)試不是為了證明程序是正確的,而是在設(shè)想程序有錯(cuò)誤的前提下進(jìn)行的,其目的是設(shè)法暴露程序中的錯(cuò)誤和缺陷。①測(cè)試是程序執(zhí)行的過程,目的在于發(fā)現(xiàn)錯(cuò)誤;②一個(gè)好的測(cè)試在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;③一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤。74(2)完全測(cè)試的不可能性
測(cè)試只能說明程序有錯(cuò),而不能證明程序無錯(cuò),希望通過有限次的測(cè)試就能發(fā)現(xiàn)程序中的所有錯(cuò)誤是不可能的,即完全測(cè)試是不可能的。由于測(cè)試的這一特征,程序也不可能具有百分之百的可靠性。75(3)測(cè)試的經(jīng)濟(jì)性①?zèng)]有語法錯(cuò)誤;②運(yùn)行有結(jié)果;③對(duì)典型數(shù)據(jù)能得到正確的結(jié)果;④對(duì)典型的有效數(shù)據(jù)能得到正確的結(jié)果,對(duì)無效數(shù)據(jù)有防范措施;⑤對(duì)一切能出現(xiàn)的數(shù)據(jù)不出錯(cuò)。762.測(cè)試的過程(1)程序的靜態(tài)分析(2)程序的動(dòng)態(tài)分析(3)自動(dòng)測(cè)試工具77靜態(tài)測(cè)試:主要通過代碼審查和靜態(tài)分析,檢查源代碼中存在的問題。過程:代碼審查由有經(jīng)驗(yàn)的程序設(shè)計(jì)人員根據(jù)軟件詳細(xì)設(shè)計(jì)說明書,閱讀程序來發(fā)現(xiàn)源程序中類型、引用、參數(shù)傳遞、表達(dá)式等不必運(yùn)行程序就能夠發(fā)現(xiàn)的錯(cuò)誤。特點(diǎn):這種方法不需要專門的測(cè)試工具和設(shè)備,一旦發(fā)現(xiàn)錯(cuò)誤就能定位,但是此方法具有一定的局限性。靜態(tài)分析主要對(duì)程序進(jìn)行控制流分析、數(shù)據(jù)流分析、接口分析和表達(dá)式分析等
78動(dòng)態(tài)測(cè)試:在指定的環(huán)境上運(yùn)行被測(cè)程序,輸入測(cè)試數(shù)據(jù),獲得測(cè)試結(jié)果,將獲得的測(cè)試結(jié)果與預(yù)期的結(jié)果進(jìn)行比較,發(fā)現(xiàn)程序的錯(cuò)誤。過程:設(shè)計(jì)測(cè)試用例,運(yùn)行被測(cè)程序。特點(diǎn):需要有程序的運(yùn)行環(huán)境,必要時(shí)要編寫測(cè)試驅(qū)動(dòng)程序和樁程序。793.測(cè)試的層次(1)模塊測(cè)試①模塊接口②局部數(shù)據(jù)結(jié)構(gòu)③重要路徑④錯(cuò)誤處理的能力⑤I/O錯(cuò)80模塊測(cè)試的結(jié)構(gòu)81(2)整體測(cè)試整體測(cè)試可分為漸增式與非漸增式兩種。非漸增式的整體測(cè)試是將經(jīng)過單獨(dú)測(cè)試的所有模塊連接到一起進(jìn)行測(cè)試。漸增式的整體測(cè)試往往是與模塊測(cè)試同步進(jìn)行的,即在對(duì)模塊逐步裝配的過程中同時(shí)進(jìn)行的。這種測(cè)試方式可以減少模塊測(cè)試時(shí)要設(shè)計(jì)的驅(qū)動(dòng)模塊或承接模塊,又可以及時(shí)、準(zhǔn)確地發(fā)現(xiàn)結(jié)構(gòu)錯(cuò)誤的位置。漸增式的整體測(cè)試一般可以分為“自頂向下”和“自底向上”兩種。①“自頂向下”漸增式測(cè)試②“自底向上”漸增式測(cè)試82(3)高級(jí)測(cè)試①功能測(cè)試功能測(cè)試又稱有效性測(cè)試,主要是用黑箱法測(cè)試軟件功能是否與用戶一致。②系統(tǒng)測(cè)試把軟件元素與硬件元素結(jié)合在一起進(jìn)行測(cè)試。③驗(yàn)收測(cè)試主要檢查程序的操作與原設(shè)計(jì)要求以及用戶要求是否一致。這類測(cè)試常以用戶為主體進(jìn)行。④安裝測(cè)試主要檢查軟件在安裝時(shí)產(chǎn)生的問題。834.測(cè)試的方法設(shè)計(jì)和使用測(cè)試用例根本原那么:①設(shè)計(jì)測(cè)試用例時(shí),應(yīng)同時(shí)確定程序運(yùn)行的預(yù)期結(jié)果。②測(cè)試用例不僅要選用合理的輸入數(shù)據(jù),也要選用不合理的輸入數(shù)據(jù)。③除了需要檢查程序是否做了應(yīng)該做的事,還要檢查程序是否做了不應(yīng)該做的事。④千萬不要夢(mèng)想程序是正確的。⑤要保存有用的測(cè)試用例,以便再測(cè)試時(shí)使用。⑥測(cè)試用例要系統(tǒng)地進(jìn)行設(shè)計(jì),不可隨意湊合。84(1)白箱法白箱測(cè)試用例的設(shè)計(jì)準(zhǔn)那么有:語句覆蓋,分支覆蓋,條件覆蓋和組合條件覆蓋。①語句覆蓋語句覆蓋準(zhǔn)那么是企圖用足夠多的測(cè)試用例,使程序中的每個(gè)語句都執(zhí)行一遍,以便盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。這是一個(gè)非常弱的測(cè)試方法。因?yàn)槊織l語句都執(zhí)行一次,仍然會(huì)有許多錯(cuò)誤測(cè)試不出來。85某程序段如下:…IF(a>1andb=0)THENx=x/aIF(a=2orx>1)THENx=x+1…86每條語句都執(zhí)行一次,程序中第二個(gè)判定OR寫成AND仍然不能被發(fā)現(xiàn)錯(cuò)誤87②分支覆蓋分支覆蓋準(zhǔn)那么也稱為判定覆蓋準(zhǔn)那么。它要求通過足夠多的測(cè)試用例,使程序中的每個(gè)分支至少通過一次。8889③條件覆蓋條件覆蓋準(zhǔn)那么是通過執(zhí)行足夠多的測(cè)試用例,使每個(gè)判定中的每個(gè)條件都能取到兩種不同的結(jié)果〔“真”與“假”〕。用以下兩個(gè)測(cè)試用例便可以使每個(gè)條件都能取到“真”值和“假”值:a=2,b=1,x=1〔“a>1”為真,“b=0”為假,“a=2”為真,“x>1”為假〕a=1,b=0,x=3〔“a>1”為假,“b=0”為真,“a=2”為假,“x>1”為真〕90④組合條件覆蓋組合條件覆蓋準(zhǔn)那么要求通過足夠多的測(cè)試用例,使每個(gè)判定中各條件的各種可能組合至少出現(xiàn)一次。例如,第一個(gè)判定框中的兩個(gè)條件有以下四種組合:條件組合1a>1,b=0;條件組合2a>1,b≠0;條件組合3a≤1,b=0;條件組合4a≤1,b≠0。第二個(gè)判定框中的兩個(gè)條件也有以下四種組合條件組合5a=2,x>1;條件組合6a=2,x≤1;條件組合7a≠2,x>1;條件組合8a≠2,x≤1.91下面的四個(gè)測(cè)試用例就可以覆蓋上述八種可能的條件組合:a=2,b=0,x=3〔覆蓋條件組合1和5〕a=2,b=1,x=1〔覆蓋條件組合2和6〕a=1,b=0,x=3〔覆蓋條件組合3和7〕a=1,b=1,x=1〔覆蓋條件組合4和8〕9293(2)黑箱法常用的黑箱測(cè)試有等價(jià)分類法、邊值分析法、因果圖法和錯(cuò)誤推測(cè)法。①等價(jià)分類法等價(jià)分類法是把所有可能的輸入數(shù)據(jù)〔有效的和無效的〕劃分成假設(shè)干等價(jià)類,使每一類中的一個(gè)典型數(shù)據(jù)在測(cè)試中的作用與這一類中所有其他數(shù)據(jù)的作用相同。在實(shí)際進(jìn)行測(cè)試時(shí),可以從每個(gè)等價(jià)類中只取一組數(shù)據(jù)作為測(cè)試用例。等價(jià)分類法分為兩步:一是劃分等價(jià)類〔包括有效等價(jià)類和無效等價(jià)類〕;二是從每個(gè)等價(jià)類中選取測(cè)試用例。劃分等價(jià)類的根本方法:根據(jù)程序的功能說明,找出所有的輸入條件,然后為每一個(gè)輸入條件劃分等價(jià)類。9495·如果輸入條件規(guī)定了值的范圍,那么可以確定一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類;·如果輸入條件規(guī)定了值的個(gè)數(shù),那么可以確定一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類;·如果輸入條件規(guī)定了一個(gè)輸入值的有窮集,且確信程序?qū)γ總€(gè)輸入值單獨(dú)處理,那么可以對(duì)集合中的每一個(gè)輸入值確定一個(gè)有效等價(jià)類,同時(shí)可以確定一個(gè)無效等價(jià)類;·如果輸入條件規(guī)定了“必須如何”的條件,那么可以確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類;·如果確信某一等價(jià)類中的各元素在程序中的處理方式是有區(qū)別的,那么應(yīng)把這個(gè)等價(jià)類分成更小的等價(jià)類。96②邊值分析法·如果輸入條件規(guī)定了值的范圍,那么要對(duì)這個(gè)范圍的邊界情況以及稍超出范圍的無效情況進(jìn)行測(cè)試;例如,輸入范圍是1到10的整數(shù),那么測(cè)試用例的取值:0,1,10,11·如果輸入條件規(guī)定了值的個(gè)數(shù),那么要分別對(duì)值的最大個(gè)數(shù)、最小個(gè)數(shù)、稍多于最大個(gè)數(shù)和稍少于最小個(gè)數(shù)的情況進(jìn)行測(cè)試;例如,要求的記錄個(gè)數(shù)是1到255,那么設(shè)計(jì)的記錄個(gè)數(shù)分別為:0,1,255,256·對(duì)于輸出條件使用上述兩條;·如果輸入和輸出是有序集,那么應(yīng)把注意力集中在第一和最后一個(gè)元素上。97③因果圖法④錯(cuò)誤推測(cè)法例如,要測(cè)試一個(gè)排序程序,特別需要檢查的情況有:·輸入表為空;·輸入表只含有一個(gè)元素;·輸入表中所有元素相同;·輸入表實(shí)際有序。98(3)綜合策略①如果程序功能說明中包含有輸入條件的組合,便應(yīng)從因果圖開始,以減少組合情況。②在任何情況下都要用邊值分析法,通過分析輸入和輸出條件的邊界值,補(bǔ)充一些測(cè)試用例。③判別輸入/輸出的有效和無效等價(jià)類,進(jìn)一步補(bǔ)充測(cè)試用例。④利用錯(cuò)誤推測(cè)法補(bǔ)充一些測(cè)試用例。⑤查看上述測(cè)試用例的覆蓋程度,對(duì)未滿足的覆蓋標(biāo)準(zhǔn),增加一些測(cè)試用例。996.4.2調(diào)試調(diào)試也稱排錯(cuò)調(diào)試與測(cè)試的關(guān)系:(1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年銀川房產(chǎn)市場(chǎng)存量房買賣合同簽訂與履行規(guī)范6篇
- 小學(xué)四年級(jí)數(shù)學(xué)幾百幾十?dāng)?shù)乘以一位數(shù)能力練習(xí)題大全附答案
- 2024年度社區(qū)環(huán)境治理業(yè)主與物業(yè)合作協(xié)議范本2篇
- 2025年度奶茶店環(huán)保設(shè)施安裝與維護(hù)服務(wù)合同
- 幼兒園招生代理合同
- 2024年船舶用內(nèi)燃機(jī)訂購協(xié)議
- 2024年網(wǎng)絡(luò)云服務(wù)提供商之間的獨(dú)家合作協(xié)議
- 2024年銷售代表聘用協(xié)議
- 2025年油罐計(jì)量系統(tǒng)合作協(xié)議書
- 2024年版房屋建筑工程施工協(xié)議細(xì)則版B版
- 《合規(guī)培訓(xùn)》課件
- DD 2019-11 地-井瞬變電磁法技術(shù)規(guī)程
- 黑龍江省哈爾濱市香坊區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 老人及兒童合理用藥課件
- 《格林童話》課外閱讀試題及答案
- 重型再生障礙性貧血造血干細(xì)胞移植治療課件
- 私立民辦高中學(xué)校項(xiàng)目投資計(jì)劃書
- 《電機(jī)與電氣控制技術(shù)》教學(xué)設(shè)計(jì)及授課計(jì)劃表
- “銷售技巧課件-讓你掌握銷售技巧”
- 2019北師大版高中英語選修一UNIT 2 單詞短語句子復(fù)習(xí)默寫單
- 房地產(chǎn)項(xiàng)目保密協(xié)議
評(píng)論
0/150
提交評(píng)論