![軟件工程05.ppt_第1頁](http://file1.renrendoc.com/fileroot2/2020-1/10/188c2eda-4ebd-44cf-8f09-984d7f08c840/188c2eda-4ebd-44cf-8f09-984d7f08c8401.gif)
![軟件工程05.ppt_第2頁](http://file1.renrendoc.com/fileroot2/2020-1/10/188c2eda-4ebd-44cf-8f09-984d7f08c840/188c2eda-4ebd-44cf-8f09-984d7f08c8402.gif)
![軟件工程05.ppt_第3頁](http://file1.renrendoc.com/fileroot2/2020-1/10/188c2eda-4ebd-44cf-8f09-984d7f08c840/188c2eda-4ebd-44cf-8f09-984d7f08c8403.gif)
![軟件工程05.ppt_第4頁](http://file1.renrendoc.com/fileroot2/2020-1/10/188c2eda-4ebd-44cf-8f09-984d7f08c840/188c2eda-4ebd-44cf-8f09-984d7f08c8404.gif)
![軟件工程05.ppt_第5頁](http://file1.renrendoc.com/fileroot2/2020-1/10/188c2eda-4ebd-44cf-8f09-984d7f08c840/188c2eda-4ebd-44cf-8f09-984d7f08c8405.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第5章,結構化實現,通常將編碼和測試稱為實現。編碼是一種程序,它將軟件設計翻譯成計算機可以理解的形式,并用某種編程語言編寫。作為軟件工程的一個階段,編碼是設計的自然結果,所以程序的質量主要取決于軟件設計的質量。然而,所選編程語言的特性和編碼風格也將對程序的可靠性、可讀性、可測試性和可維護性產生深遠的影響。5.1編碼5.2軟件測試基礎5.3邏輯覆蓋5.4控制結構測試5.5黑盒測試技術5.6測試策略5.7調試5.8軟件可靠性5.9總結5.1編碼5.1選擇一般編程語言。高級語言明顯優(yōu)于匯編語言,因此,除了在非常特殊的應用領域(例如,對使用的執(zhí)行時間和空間有嚴格的限制;必須生成任意甚至非法的指令序列;
2、具有特殊結構的微處理器使得在這樣的機器上不可能實現高級語言編譯器),或者在大型系統(tǒng)中執(zhí)行時間很關鍵(或者直接依賴于硬件)的一小部分代碼需要用匯編語言編寫,其他程序應該總是用高級語言編寫。為了使程序易于測試和維護,降低生命周期的總成本,所選擇的高級語言應該具有理想的模塊化機制和可讀的控制結構和數據結構;為了便于調試和提高軟件可靠性,語言特性應該使編譯器能夠盡可能多地發(fā)現程序中的錯誤。為了降低軟件開發(fā)和維護的成本,所選擇的語言應該具有良好的獨立編譯機制。這些要求是語言選擇的理想標準,但在實際的語言選擇中,我們不僅要考慮理論標準,還要考慮各種實際限制。5.1.2編碼風格源代碼的邏輯簡潔明了,易于閱讀
3、和理解,這是一個好程序的重要標準。為了實現這一點,應遵循以下規(guī)則。1.程序中的文檔包括適當的標識符、適當的注釋、程序的可視化組織等等。2.數據描述雖然數據結構的組織和復雜性已經在設計過程中確定,但是數據描述的風格是在編寫程序時確定的。為了使數據更容易理解和維護,有一些簡單的原則可以遵循。3.構建構造語句時應該遵循的原則是,每個語句都應該簡單直接,并且為了提高效率,程序不應該變得太復雜。在設計和編寫程序時,應考慮以下關于輸入/輸出風格的規(guī)則:檢查所有輸入數據;檢查輸入項重要組合的合法性;保持輸入格式簡單;使用數據結束標記,不要要求用戶指定數據的數量;清楚地提示交互輸入的請求,并指定可用的選擇或邊
4、界值;當編程語言對格式有嚴格要求時,輸入格式應該一致;設計良好的輸出報告;標記所有輸出數據。效率效率主要指處理器時間和內存容量。雖然提出提高效率的要求是值得的,但是在進一步討論這個問題之前,應該記住三個原則:第一,效率是性能要求,所以效率的要求應該在需求分析階段確定。軟件應該像要求的那樣有效,而不是像人類那樣有效。其次,良好的設計可以提高效率。第三,程序的效率與程序的簡單性是一致的。不要為了不必要地提高效率而犧牲程序的清晰度和可讀性。5.2軟件測試的基礎,5.2.1測試目標邁爾斯給出了一些關于測試的規(guī)則,也可以看作是測試的目標或定義:測試是執(zhí)行程序以發(fā)現程序中錯誤的過程;一個好的測試方案是一個
5、很有可能發(fā)現到目前為止還沒有發(fā)現的錯誤的測試方案;一個成功的測試是發(fā)現到目前為止還沒有發(fā)現的錯誤的測試。因為測試的目的是暴露程序中的錯誤,從心理學的角度來看,程序作者測試自己是不合適的。因此,在綜合測試階段,其他人通常會組成一個測試團隊來完成測試工作。5.2.2黑盒測試和白盒測試對于軟件測試,黑盒測試方法將程序視為黑盒,根本不考慮程序的內部結構和處理。也就是說,黑盒測試是在程序接口上進行的測試,它只檢查程序功能是否能夠按照規(guī)范正常使用,程序是否能夠正確接收輸入數據以生成正確的輸出信息,并保持外部信息(如數據庫或文件)的完整性。黑盒測試也被稱為功能測試。與黑盒測試方法相反,白盒測試方法的前提是可
6、以將程序視為封裝在一個透明的白盒中,即可以充分理解程序的結構和處理過程。根據程序中的邏輯測試程序,該方法檢查程序中的每個通道是否能夠按照預定的要求正確工作。白盒測試也被稱為結構測試。5.2.3測試標準為了設計有效的測試方案,軟件工程師必須充分理解并正確應用指導軟件測試的基本標準。主要測試標準如下。所有測試都應該可以追溯到用戶需求。測試計劃應該在測試開始前很久就制定出來。帕累托原理在軟件測試中的應用。帕累托原理告訴我們,測試中發(fā)現的80%的錯誤可能是由程序中20%的模塊造成的。試驗應從“小規(guī)模”開始,逐步進行“大規(guī)模”試驗。徹底的測試是不可能的。為了達到最好的測試結果,應該有一個獨立的第三方從事
7、測試工作。5.2.4流程圖設計測試方案時,通常需要仔細分析程序的控制流程。為了突出程序的控制流,可以使用流程圖(也稱為程序圖)。流程圖只描述了程序的控制流程,根本沒有顯示數據的具體操作和分支或循環(huán)的具體情況。在流程圖中,節(jié)點用圓圈表示,一個圓圈代表一個或多個語句。程序流程圖中的一系列處理塊和菱形決策塊可以映射到流程圖中的一個節(jié)點。流程圖中的箭頭線稱為邊,它類似于程序流程圖中的箭頭線,代表控制流程。在流程圖中,一條邊必須在一個節(jié)點處結束,即使該節(jié)點不代表任何語句(實際上相當于一個空語句)。被邊和節(jié)點包圍的區(qū)域稱為區(qū)域。計算區(qū)域數量時,應包括圖外未被包圍的區(qū)域。圖5.1說明了將程序流程圖映射到流程
8、圖的方法。圖5.1將程序流程圖映射到流程圖(a)程序流程圖;(b)流程圖,PDL程序:分類1:在記錄保持讀取記錄時執(zhí)行;2:如果記錄字段1=0 3:則處理記錄;存儲在緩沖區(qū)中;增量計數器;4:elseifrecardfield2=0 5:然后重置計數器;6:否則過程記錄;存儲在文件中;7a: end if endif 7b: enddo 8: end,圖5.2是PDL翻譯的流程圖,圖5.3是PDL繪制的包含復合條件的流程圖,圖5.3是邏輯覆蓋,這是一種設計白盒測試方案的技術。設計測試方案是測試階段的關鍵技術問題。所謂的測試方案包括特定的測試目的(例如,要測試的特定功能)、要輸入的測試數據和預期
9、的輸出結果。測試數據和預期的輸出結果通常被稱為測試用例。不同的測試數據有不同的發(fā)現程序錯誤的能力。為了提高測試效率和降低測試成本,需要選擇高效的測試數據。因為不可能進行詳盡的測試,所以選擇少量“最有效”的測試數據并盡可能地完成測試就更重要了。選擇性地執(zhí)行程序中一些最有代表性的路徑是徹底測試的唯一可行的替代方案。所謂的邏輯覆蓋是一系列測試過程的總稱,這些測試過程逐步進行越來越完整的路徑測試。測試數據可以分成不同的級別來執(zhí)行(或覆蓋)程序邏輯。從覆蓋源程序語句的詳細分析來看,大致有以下不同的覆蓋標準。1.語句覆蓋為了暴露程序中的錯誤,每個語句應該至少執(zhí)行一次。語句覆蓋的含義是選擇足夠的測試數據,以
10、便被測試程序中的每個語句至少執(zhí)行一次。圖5.4被測模塊的流程圖,2。決策覆蓋,也稱為分支覆蓋,意味著不僅每個語句必須至少執(zhí)行一次,而且每個決策的每個可能結果都應該至少執(zhí)行一次,即每個決策的每個分支都應該至少執(zhí)行一次。3.條件覆蓋的含義是,不僅每個語句至少執(zhí)行一次,而且判斷表達式中的每個條件都可以得到各種可能的結果。4。決策/條件覆蓋由于決策覆蓋不一定包括條件覆蓋,而條件覆蓋也不一定包括決策覆蓋,因此自然要提出一個同時滿足這兩個覆蓋標準的邏輯覆蓋,即決策/條件覆蓋。其含義是選擇足夠的測試數據,以便判斷表達式中的每個條件都能得到各種可能的值,并且每個判斷表達式也能得到各種可能的結果。5.條件組合覆
11、蓋條件組合覆蓋是一種更強的邏輯覆蓋標準,它要求選擇足夠的測試數據,使所有可能的條件組合在每個判斷表達式中至少出現一次?;韭窂綔y試基本路徑測試是湯姆麥凱布提出的白盒測試技術。當使用這種技術設計測試用例時,我們首先計算過程設計結果的邏輯復雜度,并以此復雜度為指導定義基本的執(zhí)行路徑集。從這個基本集合中導出的測試用例可以保證程序中的每個語句至少被執(zhí)行一次,并且在執(zhí)行時每個條件將分別取真和假的值。使用基本路徑測試技術設計測試用例的步驟如下。圖5.5平均過程的流程圖,1。根據工藝設計結果繪制相應的流程圖;/*此過程計算指定值范圍內不超過100個有效數字的平均值;同時,計算有效數字的總和和數量。*/INT
12、ERVAL RETURNS average,totalinput,totalvalid接口接受值,最小值,最大值;類型值1.100是標量陣列;類型平均、總計、輸入、總計有效;最小、最大和是標量;類型I為整數;1:i1;總計,inputtotalvalid0sum02:執(zhí)行同時值i-999 3:與總計輸出100 4:將總計輸出增加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結束平均值,2。計算流程圖的循環(huán)復雜度,定量度量程序的邏輯復雜度。在獲得描述程序控制流程的流程圖后,可以使用以下三種方法之一來計算環(huán)復雜度。流程圖中的區(qū)域數等于環(huán)的復雜度。流圖G的環(huán)復雜度為V(G)E-N 2,其中E是流圖中的邊數,N是流圖中的節(jié)點數。流圖G的環(huán)復雜度V(G)P 1,其中P是流圖中決策節(jié)點的數目。使用上述任何一種方法,圖55所示流程圖的循環(huán)復雜度可以計算為6。3.確定線性獨立路徑的基本集合所謂獨立路徑是指至少引入一組新的處理語句或程序的一個新條件的路徑,用流程圖來描述。獨立路徑至少包含一條在定義路徑之前從未使用過的邊。當使用基本路徑測試方法設計測試用例時,程序的循環(huán)復雜度
14、決定了程序中獨立路徑的數量,這個數量是確保程序中所有語句至少執(zhí)行一次所需的測試數量的上限。對于圖5.5中描述的平均過程,有6條獨立的路徑,因為環(huán)的復雜度是6。例如,下面列出了六條獨立的路徑:路徑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通常,在導出測試用例時有必要確定決策節(jié)點。在本例中,節(jié)點2、3、5、6和10是決策節(jié)點。4、設計能夠執(zhí)行基本集合中每條路徑的測試用例。應該選擇數據,以便在測試每條路徑時正確設置每個決策節(jié)點的條件。可以測試上述基本集合的測試用例如下:路徑1的測試用例:valuek的有效
15、輸入值,其中ki(i定義如下)valuei-999,其中2i100預期結果:基于k的正確平均值和總數,注意路徑1不能獨立測試,必須作為路徑4、5和6的一部分進行測試。路徑2的測試用例:值1-999期望結果:平均值-999,其他保留初始值,路徑5的測試用例:值I的有效輸入值,其中i100值最大,其中ki期望結果:路徑6的k個測試用例的正確平均值和總數:值i=有效輸入值,其中i100期望結果:正確的平均值和總數,5.4.2條件測試雖然基本的路徑測試技術簡單有效,但還不夠,還需要進一步改進其他的控制結構測試技術通過條件測試技術設計的測試用例可以檢查程序模塊中包含的邏輯條件。簡單條件是布爾變量或關系表達式,其前面可以有一個非()運算符。關系表達式的形式如下:E1關系運算符E2,其中E1和E2是算術表達式,關系運算符是下列運算符之一:“”、“”、“”、“”、“或”。復合條件由兩個或多個簡單條件、布爾運算符和括號組成。布爾運算符包括或()、與()和非( )。不包含關系表達式的條件稱為布爾表達式。在上述條件測試技術的基礎上,戴克勤提出了一種條件測試策略分支相關操作測試。如果所有布爾變量和關系運算符在條件中只出現一次,并且沒有公共變量,BRO測試可以保證找到條件中的分支錯誤和關系運算符錯誤。BRO測試使用條件C的約束來設計測試用例。具有n個簡單條件的條件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘師大版道德與法治九年級下冊3.1《多民族的大家庭》聽課評課記錄
- 教科版道德與法治八年級上冊6.2《公民的責任》聽課評課記錄
- 魯教版數學六年級上冊2.1《0科學計數法》聽評課記錄
- 岳麓版歷史七年級上冊第18課《漢代的科技與文化》聽課評課記錄
- 蘇科版數學九年級下冊5.1《二次函數》講聽評課記錄
- 五年級數學聽評課記錄表
- 人教版九年級數學上冊第二十二章二次函數《22.2二次函數與一元二次方程》第1課時聽評課記錄
- 【2022年新課標】部編版七年級上冊道德與法治第六課 交友的智慧 2課時聽課評課記錄
- 韓式餐廳承包經營合同范本
- 個人入股分紅協議書范本
- 2025年電力鐵塔市場分析現狀
- 中國服裝零售行業(yè)發(fā)展環(huán)境、市場運行格局及前景研究報告-智研咨詢(2025版)
- 臨床提高膿毒性休克患者1h集束化措施落實率PDCA品管圈
- GB/T 3478.1-1995圓柱直齒漸開線花鍵模數基本齒廓公差
- GB/T 1346-2001水泥標準稠度用水量、凝結時間、安定性檢驗方法
- FZ/T 25001-2012工業(yè)用毛氈
- 瑞幸咖啡SWOT分析
- DL∕T 1867-2018 電力需求響應信息交換規(guī)范
- 小學生品德發(fā)展水平指標評價體系(小學)
- 水利工程地震應急預案
- 日歷表空白每月打印計劃表
評論
0/150
提交評論