章軟件編碼與測試_第1頁
章軟件編碼與測試_第2頁
章軟件編碼與測試_第3頁
章軟件編碼與測試_第4頁
章軟件編碼與測試_第5頁
已閱讀5頁,還剩48頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

軟件工程導論項目五軟件的編碼與測試本項目主要講述程序設計語言的分類、特點和選擇;程序編碼風格;軟件測試的概念、目的、原則和方法;軟件測試的步驟、軟件測試用例的設計;軟件程序調試的步驟。在本項目中,通過6個工作任務,向讀者展示程序設計語言與測試策略。目錄任務一選擇程序設計語言任務二編碼風格任務三軟件測試任務四實用綜合測試策略任務五系統測試步任務六解讀調試技術原則選擇程序設計語言準備知識選擇程序設計語言編碼設計的目的程序設計語言的分類任務實施文杰是某科技公司的軟件開發人員,在編寫某個任務項目時,他需要確定選擇程序設計語言的種類,并選擇一種程序語言編寫。選擇程序設計語言任務一:選擇程序設計語言任務分析:理解牢記!由于一個軟件產品完成開發工作以后,如果發生了問題,很難依靠原開發人員來解決。因此,在程序編寫時應考慮到,所寫的程序將被別人閱讀,一定要盡量使程序寫得容易被人讀懂。任務一:選擇程序設計語言任務實施

選擇程序設計語言一般情況下,程序設計語言的選擇常從以下幾個方面考慮。

(1)項目的應用領域每種語言都有自己適用的領域。在工程與科學計算領域,FORTRAN語言占主要優勢,此外,BASIC、PASCAL語言也常常使用。在事務處理方面,COBOL和BASIC語言是合適的選擇。在實時處理領域,Ada和匯編語言更為合適。在系統開發領域,C語言和匯編語言是優先考慮。如果軟件中含有大量的數據操作,SQL、dBase、FoxPro等語言等更為適合。而LISP和PROLOG語言則適合于人工智能與專家系統。(2)算法與計算的復雜性

FORTRAN、TrueBASIC及各種塊結構語言支持較復雜的計算與算法,COBOL與大多數數據庫語言只支持簡單的運算。

(3)數據結構的復雜性

PASCAL和C語言支持數組、記錄與帶指針的動態數據結構,適用于系統程序和數據結構復雜的應用程序。FORTRAN和BASIC只提供簡單的數據結構——數組。

(4)效率有些實時系統要求具有極快的響應速度,此時可酌情選用匯編語言或Ada語言。一個程序的執行時間,常常有一大部分是耗費在一小部分程序代碼上的。此時可將這一小部分代碼用匯編語言來編寫,其余仍用高級語言這樣既可以提高系統的響應速度,又可以減少編程、測試與維護的難度。

(5)可移植性如果目標系統將在幾臺不同的計算機上運行,或者預期的使用壽命很長,應選擇一種標準化程度高、程序可移植性好的語言,以使所開發的軟件將來能夠移植到不同的硬件環境下運行。(6)程序設計人員的水平在選擇語言的同時,還要考慮程序設計人員的知識水平,即他們對語言掌握的熟練程度及實踐經驗。“新語言有發展前途,舊語言有成功經驗”,程序員從學習一種新語言到熟練掌握它,要經過一段實踐時間,若與其他主要標準不發生矛盾,應該選用程序設計人員都熟悉,并在以前的開發項目中獲得成功的語言。(7)構造系統的模式對于以客觀對象為研究目標,著重從組成客觀對象的集合與關系的角度考慮建立系統的軟件工程項目,應采用C++這一類的面向對象語言。事實上,一個對象系統既包括了組成系統的所有對象的集合與關系的研究,也包括了對對象狀態及狀態改變規律性的過程的研究。面向對象的語言綜合了功能抽象與數據抽象的機制,因此,它既適用于對象系統,也適用于過程系統。

編碼風格規則準備知識編碼風格規則使用好程序內部的文檔數據說明原則任務實施文杰是某科技公司的軟件開發人員,接到研發某管理系統的任務。要求在編寫程序代碼時,使用簡短、易懂的程序來完成。任務二:編碼風格規則編碼風格規則任務分析:理解牢記!由于隨著軟件規模的增大和復雜性提高,在軟件開發和維護過程中,程序代碼的可讀性是程序可維護性的前提。因此,編程人員要了解編碼風格。任務二:編碼風格規則任務實施

詳細編寫“教材購銷系統”部分模塊說明書1.語句結構的規則語句結構應遵從如下規則:

(1)在一行內只寫一條語句,并且采用適當的縮進格式,使程序的邏輯和功能變得更加明確;

(2)程序編寫首先應當考慮清晰性,不要刻意追求技巧性,使程序編寫得過于緊湊;

(3)程序編寫要簡單、清楚,能直截了當地說明程序員的用意;

(4)除非對效率有特殊的要求,程序編寫要做到清晰第一,效率第二;

(5)首先保證程序正確,然后才要求提高速度;

(6)讓編譯程序作簡單的優化;

(7)盡可能使用庫函數;

(8)避免使用臨時變量而使可讀性下降;(9)盡量用公共過程或子程序去代替重復的功能代碼段;

(10)使用括號清晰地表達算術表達式和邏輯表達式的運算順序;(11)避免不必要的轉移;(12)用邏輯表達式代替分支嵌套;

(13)避免使用空的ELSE語句和IF…THENIF…的語句;

(14)避免使用ELSEGOTO和ELSERETURN結構;

(15)使與判定相聯系的動作盡可能地緊跟著判定;

(16)避免采用過于復雜的條件測試;

(17)盡量減少使用“否定”條件的條件語句;

(18)避免過多使用循環嵌套和條件嵌套;

(19)不要使

GOTO語句相互交叉;

(20)對遞歸定義的數據結構盡量使用遞歸過程。

2.輸入/輸出規則輸入/輸出的實現方法,決定了用戶對系統性質的可接受程度。輸入/輸出的方式和格式應當盡可能方便用戶的使用,一定要避免因設計不當給用戶帶來的麻煩。輸入/輸出的風格隨著人工干預程度的不同而有所不同。不管軟件的性質是批處理,還是交互式的,在設計和程序編碼時都應考慮下列原則:

(1)對所有的輸入數據進行檢驗,從而識別錯誤的輸入,以保證每個數據的有效性;

(2)檢查輸入項的各種重要組合的合理性,必要時報告輸入狀態信息;

(3)使得輸入的步驟和操作盡可能簡單,并保持簡單的輸入報告;

(4)輸入數據時,允許使用自由格式輸入;

(5)應允許缺省值;

(6)輸入一批數據時,最好使用輸入結束標志,而不要由用戶指定的輸入數據數目;

(7)在以交叉式輸入/輸出方式進行輸入時,要在屏幕上使用提示符,明確提示交互輸入的請求,指明可使用選擇項的種類和取值范圍;

(8)當程序設計語言對輸入/輸出格式有嚴格要求時,應保持輸入格式與輸入語句要求的一致性;

(9)給所有的輸出加注釋,并設計輸出報表格式。

3.高效率的原則運行效率主要指程序系統運行占用的處理機時間和存儲時間。下面從3個方面進一步討論效率問題。(1)提高程序運行效率提高運行效率遵循的原則是:簡化算術/邏輯表達式;盡量減少循環嵌套層數;少使用多維數組;少使用指針和鏈表;同一表達式中不要使用混合數據類型的運算;盡量使用整數運算和布爾表達式;利用編譯系統優化程序;使用執行時間縮短的算術運算。(2)提高存儲器效率提高存儲器效率主要是需要存儲量大,占用存儲單元小,要求存取的時間短。

(3)提高輸入/輸出效率從編程的角度看,要提高輸入/輸出效率遵循的原則是:所有I/O操作應該采用緩沖方式,以減少用于通信的額外開銷;對于磁盤/磁帶設備應該考慮最簡單的訪問方式;與外存相關的操作應該采用塊傳遞方式;與低速終端或者打印機相聯系的操作應該考慮設備的特性。

軟件測試準備知識軟件測試軟件測試目標軟件測試的原則任務實施文杰是某科技公司的軟件開發人員,接到研發某管理系統的任務。他在完成初步設計之后,需要進行軟件測試,檢驗程序開發。任務三:軟件測試軟件測試任務分析:理解牢記!由于在軟件開發過程中,如果沒有發現并糾正軟件中的大部分錯誤,會造成很惡劣的后果。因此,文杰需要進行軟件測試。任務三:軟件測試任務實施

軟件測試1.軟件測試的方法軟件測試的種類大致可以分為人工測試和基于計算機的測試。基于計算機的測試有兩種方法。

(1)黑盒測試黑盒測試方法是把程序看成一個黑盒子,完全不考慮其內部結構和處理過程,只檢查程序的功能是否符合它的需求規格說明。可見,黑盒測試是在軟件的接口處進行的,一方面看其是否能對合法的數據得出正確的結果,另一方面看它是否能對非法的數據進行正確的處理。顯然要列舉出所有合法的或非法的數據是不可能的。例如,一個程序需要3個整型輸入數據,如果計算機的字長為16位,則每個整數的可能取值有216個,3個輸入數據的各種可能值的排列組合共有:

216×216×216=248

也就是說需要把這個程序執行248,假定執行一次程序需要1ms,則大約需要1萬年。若將無效的和錯誤的輸入數據也算在內,則程序執行時間還要長,而且輸出數據更是多得讓人無法分析。因此,墨盒測試法不能測試所有可能情況。拓展提高:黑盒測試是一種宏觀功能上的測試,該方法適合測試部門的測試人員或用戶。隨著軟件生產的組裝技術的發展,黑盒測試方法會越來越普及。

(2)白盒測試白盒測試方法是把程序看成一個打開的盒子,測試人員對程序所有邏輯路徑進行測試,在不同檢查點輸出結果,與預期的結果比較,確定程序是否有錯。使用白盒測試法時,為了做到窮盡測試,程序中每條可能的通路至少都應該執行一次。即使測試很小的程序,通常也不能做到這一點。例如,一段程序對嵌套的IF語句循環執行20次,如下圖所示,在這段程序中共有520條可能的執行通路,顯然,即使每條通路只執行一次也是不可能的。白盒測試是一種程序級的微觀上的測試,不適合于大單元、大系統的測試,只適合于很小單元的測試,以及從事軟件底層工作、生產構件的測試人員進行的測試。2.軟件測試的過程軟件測試的過程如下圖所示。測試過程需要三類輸入:(1)軟件配置。包括軟件需求規格說明、軟件設計規格說明、源程序代碼等;(2)測試配置。包括測試計劃、測試用例等。(3)測試工具。為了提高軟件測試效率,減少測試過程中的手工勞動,可使用一些專門的測試工具,如測試數據自動生成測試結果分析程序、驅動測試的測試數據庫等。測試后進行結果分析,即將實測結果與預期的結果比較,如發現錯誤就需要排錯。排錯也就是調試,即對發現的錯誤進行錯誤定位,確定出錯性質,改正這些錯誤,并修正相關的文檔。修正的文檔一般要經過再次測試,直到通過測試為止。知識點鏈接通過收集和分析測試結果中出錯率數據可建立可靠性模型,進行可靠性預報。如果經常出現修改設計的嚴重錯誤,那么軟件質量和可靠性就不能保證,應對軟件進一步測試。如果經過測試,軟件功能完善,錯誤率數據很少,并易于修改,那么則有兩種可能:要么是軟件的質量和可靠性可以接受,要么是所做的測試不充分。3.軟件測試與開發各階段的關系軟件開發過程是一個自頂向下、逐步細化的過程,首先在軟件計劃階段定義了軟件的作用域,然后進行軟件需求分析,建立軟件的數據域、功能和性能需求、約束和一些有效性準則;接著進行軟件設計;最后根據軟件設計說明書進行編碼。而軟件測試過程則是按相反的順序自底向上、逐步集成的過程(如下圖所示)。從上圖可以看到,首先對每一個程序模塊進行單元測試,消除程序模塊內部在邏輯上和功能上的錯誤和缺陷。再對照軟件設計進行集成測試,檢測和排除子系統(或系統)結構上的錯誤。接著再對照需求進行驗收測試。最后從系統全體出發運行系統,看是否滿足要求。另外,在測試過程中,一般要對一些軟件文檔加以修改。例如,單元測試主要是基于詳細設計說明書對源程序代碼進行測試,總發現問題就要對它們加以更正。上圖虛框中的內容表示了與測試各階段相關的文檔。

實用綜合測試策略準備知識實用綜合測試策略邏輯覆蓋等價分類法

邊界值分析法錯誤猜測法任務實施李佳佳負責教材購銷系統的建設與維護,接到項目主管任務,在編完成系統總設計之后,還需要對部分模塊做詳細的功能設計說明。任務四:實用綜合測試策略實用綜合測試策略任務分析:理解牢記!由于任務四:實用綜合測試策略任務實施

實用綜合測試策略白盒測試和黑盒測試是軟件測試的兩類不同方法,這兩種方法各有所長,相互補充,在測試過程中應該聯合使用這兩類方法。通常,在測試過程的早期階段主要使用白盒測試方法,而在測試的后期主要使用黑盒測試方法。于是,提出以下的實用綜合測試策略:

(1)在任何情況下都必須使用邊界值分析方法。經驗表明,用這種方法設計出的測試用例發現程序的能力最強;

(2)必要時用等價類劃分方法補充一些測試用例;

(3)用錯誤猜測法再追加一些測試用例;

(4)對照程序邏輯,檢查已設計出的測試用例的邏輯覆蓋程度,如果沒有達到要求的覆蓋標準,應當再補充足夠的測試用例;

(5)如果程序的功能說明中含有輸入條件的組合情況,則一開始就可選用因果圖法。因果圖法請參考其他書籍。系統測試準備知識系統測試單元測試2.集成測試3.驗收測試任務實施文杰是某科技公司的軟件開發人員,接到研發某管理系統的任務。在完成系統研發之后,還需要進行測試步驟。任務五:系統測試系統測試任務分析:理解牢記!與開發過程類似,測試過程也必須分步驟進行,后一個步驟在邏輯上是前一個步驟的繼續。任務五:系統測試任務實施

系統測試系統測試是將通過驗收測試的軟件,作為基于計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、數據和人員等其他系統元素結合在一起進行的綜合測試。一般包括以下幾個方面。

(1)恢復測試:通過系統的修復能力,檢測重新初始化、數據恢復、重新啟動、檢驗點設置是否正確,以及人工干預的平均恢復時間是否在允許范圍內。

(2)安全測試:設計測試用例,安全保密措施,檢驗系統是否有安全保密的漏洞。

(3)強度測試:設計測試用例,檢驗系統的能力最高能達到什么實際限度,讓系統處于資源的異常數量、異常頻率、異常批量的條件下運行測試系統的承受能力。一般取比平常限度高5~10倍的限度做測試用例。(4)性能測試:設計測試用例測試并記錄軟件運行性能,與性能要求相比較,檢查是否達到性能要求規格。這項測試常常與強度測試相結合進行。

解讀調試技術原則準備知識解讀調試技術原則調試過程調試技術任務實施文杰是某科技公司的軟件開發人員,接到研發某管理系統的任務。在完成系統研發之后,還需要進行調試技術。任務六:解讀調試技術原則解讀調試技術原則任務分析:理解牢記!軟件調試是在測試發現錯誤之后診斷并排除錯誤的過程。測試是為了盡可能地發現錯誤,但這并不是最終目的,軟件工程的根本目標是開發出高質量的完全符合用戶需要的軟件產品。因此,在進行成功的測試后必須進行軟件調試。調試的主要任務有兩項:一是確定程序中錯誤的確切性質和位置,二是對程序進行修改、排除錯誤。任務六:解讀調試技術原則任務實施

解讀調試技術原則在調試過程中,心理因素的影響常常高于技術手段而占主導地位,許多調試原則主要是基于心理學方面的問題。由于調試工作有查錯和排錯兩項任務,所以調試原則也分成相應的兩組。

(1)查錯的原則

1)注重頭腦的分析思考,不要過分依賴計算機最有效的調試方法是用頭腦分析與錯誤征兆有關的信息。一個能干的程序調試員能做到不使用計算機就能夠確定大部分錯誤的性質和位置。

2)把調試工具僅當作

溫馨提示

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

評論

0/150

提交評論