




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第5章,結(jié)構(gòu)化實(shí)現(xiàn),通常將編碼和測試稱為實(shí)現(xiàn)。編碼是一種程序,它將軟件設(shè)計(jì)翻譯成計(jì)算機(jī)可以理解的形式,并用某種編程語言編寫。作為軟件工程的一個(gè)階段,編碼是設(shè)計(jì)的自然結(jié)果,所以程序的質(zhì)量主要取決于軟件設(shè)計(jì)的質(zhì)量。然而,所選編程語言的特性和編碼風(fēng)格也將對程序的可靠性、可讀性、可測試性和可維護(hù)性產(chǎn)生深遠(yuǎn)的影響。5.1編碼5.2軟件測試基礎(chǔ)5.3邏輯覆蓋5.4控制結(jié)構(gòu)測試5.5黑盒測試技術(shù)5.6測試策略5.7調(diào)試5.8軟件可靠性5.9總結(jié)5.1編碼5.1選擇一般編程語言。高級語言明顯優(yōu)于匯編語言,因此,除了在非常特殊的應(yīng)用領(lǐng)域(例如,對使用的執(zhí)行時(shí)間和空間有嚴(yán)格的限制;必須生成任意甚至非法的指令序列;
2、具有特殊結(jié)構(gòu)的微處理器使得在這樣的機(jī)器上不可能實(shí)現(xiàn)高級語言編譯器),或者在大型系統(tǒng)中執(zhí)行時(shí)間很關(guān)鍵(或者直接依賴于硬件)的一小部分代碼需要用匯編語言編寫,其他程序應(yīng)該總是用高級語言編寫。為了使程序易于測試和維護(hù),降低生命周期的總成本,所選擇的高級語言應(yīng)該具有理想的模塊化機(jī)制和可讀的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);為了便于調(diào)試和提高軟件可靠性,語言特性應(yīng)該使編譯器能夠盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。為了降低軟件開發(fā)和維護(hù)的成本,所選擇的語言應(yīng)該具有良好的獨(dú)立編譯機(jī)制。這些要求是語言選擇的理想標(biāo)準(zhǔn),但在實(shí)際的語言選擇中,我們不僅要考慮理論標(biāo)準(zhǔn),還要考慮各種實(shí)際限制。5.1.2編碼風(fēng)格源代碼的邏輯簡潔明了,易于閱讀
3、和理解,這是一個(gè)好程序的重要標(biāo)準(zhǔn)。為了實(shí)現(xiàn)這一點(diǎn),應(yīng)遵循以下規(guī)則。1.程序中的文檔包括適當(dāng)?shù)臉?biāo)識符、適當(dāng)?shù)淖⑨?、程序的可視化組織等等。2.數(shù)據(jù)描述雖然數(shù)據(jù)結(jié)構(gòu)的組織和復(fù)雜性已經(jīng)在設(shè)計(jì)過程中確定,但是數(shù)據(jù)描述的風(fēng)格是在編寫程序時(shí)確定的。為了使數(shù)據(jù)更容易理解和維護(hù),有一些簡單的原則可以遵循。3.構(gòu)建構(gòu)造語句時(shí)應(yīng)該遵循的原則是,每個(gè)語句都應(yīng)該簡單直接,并且為了提高效率,程序不應(yīng)該變得太復(fù)雜。在設(shè)計(jì)和編寫程序時(shí),應(yīng)考慮以下關(guān)于輸入/輸出風(fēng)格的規(guī)則:檢查所有輸入數(shù)據(jù);檢查輸入項(xiàng)重要組合的合法性;保持輸入格式簡單;使用數(shù)據(jù)結(jié)束標(biāo)記,不要要求用戶指定數(shù)據(jù)的數(shù)量;清楚地提示交互輸入的請求,并指定可用的選擇或邊
4、界值;當(dāng)編程語言對格式有嚴(yán)格要求時(shí),輸入格式應(yīng)該一致;設(shè)計(jì)良好的輸出報(bào)告;標(biāo)記所有輸出數(shù)據(jù)。效率效率主要指處理器時(shí)間和內(nèi)存容量。雖然提出提高效率的要求是值得的,但是在進(jìn)一步討論這個(gè)問題之前,應(yīng)該記住三個(gè)原則:第一,效率是性能要求,所以效率的要求應(yīng)該在需求分析階段確定。軟件應(yīng)該像要求的那樣有效,而不是像人類那樣有效。其次,良好的設(shè)計(jì)可以提高效率。第三,程序的效率與程序的簡單性是一致的。不要為了不必要地提高效率而犧牲程序的清晰度和可讀性。5.2軟件測試的基礎(chǔ),5.2.1測試目標(biāo)邁爾斯給出了一些關(guān)于測試的規(guī)則,也可以看作是測試的目標(biāo)或定義:測試是執(zhí)行程序以發(fā)現(xiàn)程序中錯(cuò)誤的過程;一個(gè)好的測試方案是一個(gè)
5、很有可能發(fā)現(xiàn)到目前為止還沒有發(fā)現(xiàn)的錯(cuò)誤的測試方案;一個(gè)成功的測試是發(fā)現(xiàn)到目前為止還沒有發(fā)現(xiàn)的錯(cuò)誤的測試。因?yàn)闇y試的目的是暴露程序中的錯(cuò)誤,從心理學(xué)的角度來看,程序作者測試自己是不合適的。因此,在綜合測試階段,其他人通常會(huì)組成一個(gè)測試團(tuán)隊(duì)來完成測試工作。5.2.2黑盒測試和白盒測試對于軟件測試,黑盒測試方法將程序視為黑盒,根本不考慮程序的內(nèi)部結(jié)構(gòu)和處理。也就是說,黑盒測試是在程序接口上進(jìn)行的測試,它只檢查程序功能是否能夠按照規(guī)范正常使用,程序是否能夠正確接收輸入數(shù)據(jù)以生成正確的輸出信息,并保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試也被稱為功能測試。與黑盒測試方法相反,白盒測試方法的前提是可
6、以將程序視為封裝在一個(gè)透明的白盒中,即可以充分理解程序的結(jié)構(gòu)和處理過程。根據(jù)程序中的邏輯測試程序,該方法檢查程序中的每個(gè)通道是否能夠按照預(yù)定的要求正確工作。白盒測試也被稱為結(jié)構(gòu)測試。5.2.3測試標(biāo)準(zhǔn)為了設(shè)計(jì)有效的測試方案,軟件工程師必須充分理解并正確應(yīng)用指導(dǎo)軟件測試的基本標(biāo)準(zhǔn)。主要測試標(biāo)準(zhǔn)如下。所有測試都應(yīng)該可以追溯到用戶需求。測試計(jì)劃應(yīng)該在測試開始前很久就制定出來。帕累托原理在軟件測試中的應(yīng)用。帕累托原理告訴我們,測試中發(fā)現(xiàn)的80%的錯(cuò)誤可能是由程序中20%的模塊造成的。試驗(yàn)應(yīng)從“小規(guī)?!遍_始,逐步進(jìn)行“大規(guī)?!痹囼?yàn)。徹底的測試是不可能的。為了達(dá)到最好的測試結(jié)果,應(yīng)該有一個(gè)獨(dú)立的第三方從事
7、測試工作。5.2.4流程圖設(shè)計(jì)測試方案時(shí),通常需要仔細(xì)分析程序的控制流程。為了突出程序的控制流,可以使用流程圖(也稱為程序圖)。流程圖只描述了程序的控制流程,根本沒有顯示數(shù)據(jù)的具體操作和分支或循環(huán)的具體情況。在流程圖中,節(jié)點(diǎn)用圓圈表示,一個(gè)圓圈代表一個(gè)或多個(gè)語句。程序流程圖中的一系列處理塊和菱形決策塊可以映射到流程圖中的一個(gè)節(jié)點(diǎn)。流程圖中的箭頭線稱為邊,它類似于程序流程圖中的箭頭線,代表控制流程。在流程圖中,一條邊必須在一個(gè)節(jié)點(diǎn)處結(jié)束,即使該節(jié)點(diǎn)不代表任何語句(實(shí)際上相當(dāng)于一個(gè)空語句)。被邊和節(jié)點(diǎn)包圍的區(qū)域稱為區(qū)域。計(jì)算區(qū)域數(shù)量時(shí),應(yīng)包括圖外未被包圍的區(qū)域。圖5.1說明了將程序流程圖映射到流程
8、圖的方法。圖5.1將程序流程圖映射到流程圖(a)程序流程圖;(b)流程圖,PDL程序:分類1:在記錄保持讀取記錄時(shí)執(zhí)行;2:如果記錄字段1=0 3:則處理記錄;存儲在緩沖區(qū)中;增量計(jì)數(shù)器;4:elseifrecardfield2=0 5:然后重置計(jì)數(shù)器;6:否則過程記錄;存儲在文件中;7a: end if endif 7b: enddo 8: end,圖5.2是PDL翻譯的流程圖,圖5.3是PDL繪制的包含復(fù)合條件的流程圖,圖5.3是邏輯覆蓋,這是一種設(shè)計(jì)白盒測試方案的技術(shù)。設(shè)計(jì)測試方案是測試階段的關(guān)鍵技術(shù)問題。所謂的測試方案包括特定的測試目的(例如,要測試的特定功能)、要輸入的測試數(shù)據(jù)和預(yù)期
9、的輸出結(jié)果。測試數(shù)據(jù)和預(yù)期的輸出結(jié)果通常被稱為測試用例。不同的測試數(shù)據(jù)有不同的發(fā)現(xiàn)程序錯(cuò)誤的能力。為了提高測試效率和降低測試成本,需要選擇高效的測試數(shù)據(jù)。因?yàn)椴豢赡苓M(jìn)行詳盡的測試,所以選擇少量“最有效”的測試數(shù)據(jù)并盡可能地完成測試就更重要了。選擇性地執(zhí)行程序中一些最有代表性的路徑是徹底測試的唯一可行的替代方案。所謂的邏輯覆蓋是一系列測試過程的總稱,這些測試過程逐步進(jìn)行越來越完整的路徑測試。測試數(shù)據(jù)可以分成不同的級別來執(zhí)行(或覆蓋)程序邏輯。從覆蓋源程序語句的詳細(xì)分析來看,大致有以下不同的覆蓋標(biāo)準(zhǔn)。1.語句覆蓋為了暴露程序中的錯(cuò)誤,每個(gè)語句應(yīng)該至少執(zhí)行一次。語句覆蓋的含義是選擇足夠的測試數(shù)據(jù),以
10、便被測試程序中的每個(gè)語句至少執(zhí)行一次。圖5.4被測模塊的流程圖,2。決策覆蓋,也稱為分支覆蓋,意味著不僅每個(gè)語句必須至少執(zhí)行一次,而且每個(gè)決策的每個(gè)可能結(jié)果都應(yīng)該至少執(zhí)行一次,即每個(gè)決策的每個(gè)分支都應(yīng)該至少執(zhí)行一次。3.條件覆蓋的含義是,不僅每個(gè)語句至少執(zhí)行一次,而且判斷表達(dá)式中的每個(gè)條件都可以得到各種可能的結(jié)果。4。決策/條件覆蓋由于決策覆蓋不一定包括條件覆蓋,而條件覆蓋也不一定包括決策覆蓋,因此自然要提出一個(gè)同時(shí)滿足這兩個(gè)覆蓋標(biāo)準(zhǔn)的邏輯覆蓋,即決策/條件覆蓋。其含義是選擇足夠的測試數(shù)據(jù),以便判斷表達(dá)式中的每個(gè)條件都能得到各種可能的值,并且每個(gè)判斷表達(dá)式也能得到各種可能的結(jié)果。5.條件組合覆
11、蓋條件組合覆蓋是一種更強(qiáng)的邏輯覆蓋標(biāo)準(zhǔn),它要求選擇足夠的測試數(shù)據(jù),使所有可能的條件組合在每個(gè)判斷表達(dá)式中至少出現(xiàn)一次?;韭窂綔y試基本路徑測試是湯姆麥凱布提出的白盒測試技術(shù)。當(dāng)使用這種技術(shù)設(shè)計(jì)測試用例時(shí),我們首先計(jì)算過程設(shè)計(jì)結(jié)果的邏輯復(fù)雜度,并以此復(fù)雜度為指導(dǎo)定義基本的執(zhí)行路徑集。從這個(gè)基本集合中導(dǎo)出的測試用例可以保證程序中的每個(gè)語句至少被執(zhí)行一次,并且在執(zhí)行時(shí)每個(gè)條件將分別取真和假的值。使用基本路徑測試技術(shù)設(shè)計(jì)測試用例的步驟如下。圖5.5平均過程的流程圖,1。根據(jù)工藝設(shè)計(jì)結(jié)果繪制相應(yīng)的流程圖;/*此過程計(jì)算指定值范圍內(nèi)不超過100個(gè)有效數(shù)字的平均值;同時(shí),計(jì)算有效數(shù)字的總和和數(shù)量。*/INT
12、ERVAL RETURNS average,totalinput,totalvalid接口接受值,最小值,最大值;類型值1.100是標(biāo)量陣列;類型平均、總計(jì)、輸入、總計(jì)有效;最小、最大和是標(biāo)量;類型I為整數(shù);1:i1;總計(jì),inputtotalvalid0sum02:執(zhí)行同時(shí)值i-999 3:與總計(jì)輸出100 4:將總計(jì)輸出增加1;5:如果值最小值為6:且值最大值為7:則總有效增量為1;sumsum valuei8:ENDIF增量1;9:ENDDO 10:IF total valid 0 11:THEN average sum/total valid;12:ELSE平均值-999;13: en
13、dif結(jié)束平均值,2。計(jì)算流程圖的循環(huán)復(fù)雜度,定量度量程序的邏輯復(fù)雜度。在獲得描述程序控制流程的流程圖后,可以使用以下三種方法之一來計(jì)算環(huán)復(fù)雜度。流程圖中的區(qū)域數(shù)等于環(huán)的復(fù)雜度。流圖G的環(huán)復(fù)雜度為V(G)E-N 2,其中E是流圖中的邊數(shù),N是流圖中的節(jié)點(diǎn)數(shù)。流圖G的環(huán)復(fù)雜度V(G)P 1,其中P是流圖中決策節(jié)點(diǎn)的數(shù)目。使用上述任何一種方法,圖55所示流程圖的循環(huán)復(fù)雜度可以計(jì)算為6。3.確定線性獨(dú)立路徑的基本集合所謂獨(dú)立路徑是指至少引入一組新的處理語句或程序的一個(gè)新條件的路徑,用流程圖來描述。獨(dú)立路徑至少包含一條在定義路徑之前從未使用過的邊。當(dāng)使用基本路徑測試方法設(shè)計(jì)測試用例時(shí),程序的循環(huán)復(fù)雜度
14、決定了程序中獨(dú)立路徑的數(shù)量,這個(gè)數(shù)量是確保程序中所有語句至少執(zhí)行一次所需的測試數(shù)量的上限。對于圖5.5中描述的平均過程,有6條獨(dú)立的路徑,因?yàn)榄h(huán)的復(fù)雜度是6。例如,下面列出了六條獨(dú)立的路徑:路徑1: 1-2-10-11-13路徑2: 1-2-10-12-13路徑3: 1-2-3-10-11-13路徑4: 1-2-3-4-5-8-9通常,在導(dǎo)出測試用例時(shí)有必要確定決策節(jié)點(diǎn)。在本例中,節(jié)點(diǎn)2、3、5、6和10是決策節(jié)點(diǎn)。4、設(shè)計(jì)能夠執(zhí)行基本集合中每條路徑的測試用例。應(yīng)該選擇數(shù)據(jù),以便在測試每條路徑時(shí)正確設(shè)置每個(gè)決策節(jié)點(diǎn)的條件??梢詼y試上述基本集合的測試用例如下:路徑1的測試用例:valuek的有效
15、輸入值,其中ki(i定義如下)valuei-999,其中2i100預(yù)期結(jié)果:基于k的正確平均值和總數(shù),注意路徑1不能獨(dú)立測試,必須作為路徑4、5和6的一部分進(jìn)行測試。路徑2的測試用例:值1-999期望結(jié)果:平均值-999,其他保留初始值,路徑5的測試用例:值I的有效輸入值,其中i100值最大,其中ki期望結(jié)果:路徑6的k個(gè)測試用例的正確平均值和總數(shù):值i=有效輸入值,其中i100期望結(jié)果:正確的平均值和總數(shù),5.4.2條件測試雖然基本的路徑測試技術(shù)簡單有效,但還不夠,還需要進(jìn)一步改進(jìn)其他的控制結(jié)構(gòu)測試技術(shù)通過條件測試技術(shù)設(shè)計(jì)的測試用例可以檢查程序模塊中包含的邏輯條件。簡單條件是布爾變量或關(guān)系表達(dá)式,其前面可以有一個(gè)非()運(yùn)算符。關(guān)系表達(dá)式的形式如下:E1關(guān)系運(yùn)算符E2,其中E1和E2是算術(shù)表達(dá)式,關(guān)系運(yùn)算符是下列運(yùn)算符之一:“”、“”、“”、“”、“或”。復(fù)合條件由兩個(gè)或多個(gè)簡單條件、布爾運(yùn)算符和括號組成。布爾運(yùn)算符包括或()、與()和非( )。不包含關(guān)系表達(dá)式的條件稱為布爾表達(dá)式。在上述條件測試技術(shù)的基礎(chǔ)上,戴克勤提出了一種條件測試策略分支相關(guān)操作測試。如果所有布爾變量和關(guān)系運(yùn)算符在條件中只出現(xiàn)一次,并且沒有公共變量,BRO測試可以保證找到條件中的分支錯(cuò)誤和關(guān)系運(yùn)算符錯(cuò)誤。BRO測試使用條件C的約束來設(shè)計(jì)測試用例。具有n個(gè)簡單條件的條件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨床試驗(yàn)結(jié)果分析原則考核試卷
- 農(nóng)機(jī)租賃市場定位與租賃服務(wù)網(wǎng)絡(luò)布局分析考核試卷
- 講座教育的評價(jià)體系考核試卷
- 交通規(guī)劃與災(zāi)害恢復(fù)重建規(guī)劃協(xié)調(diào)考核試卷
- 產(chǎn)科病房護(hù)士工作總結(jié)10篇
- 會(huì)計(jì)專業(yè)考試初級會(huì)計(jì)實(shí)務(wù)試卷與參考答案(2025年)
- 湖南省名校聯(lián)考聯(lián)合體2024-2025學(xué)年高一下學(xué)期第二次聯(lián)考物理試卷(A)(含解析)
- 歌曲活動(dòng)策劃方案
- 植樹節(jié)汽車養(yǎng)護(hù)活動(dòng)方案
- 民政服務(wù)活動(dòng)方案
- 前列腺癌個(gè)案護(hù)理查房
- 農(nóng)村土地使用權(quán)轉(zhuǎn)讓協(xié)議書
- (新版)金屬非金屬礦山尾礦作業(yè)取證考試題庫(含答案)
- 隋唐史學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 血糖監(jiān)測課件小講課
- 汽車車身密封條設(shè)計(jì)指南
- 光伏工程勞務(wù)承包合同協(xié)議書
- DBJT13-24-2017 福建省建筑幕墻工程質(zhì)量驗(yàn)收規(guī)程
- 學(xué)校會(huì)議審批管理制度
- 課內(nèi)文言文翻譯句句落實(shí)-2024-2025學(xué)年統(tǒng)編版語文九年級上冊
- 【中美家庭教育差異比較探究(英文)(論文)】
評論
0/150
提交評論