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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件工程導論項目五軟件的編碼與測試本項目主要講述程序設(shè)計語言的分類、特點和選擇;程序編碼風格;軟件測試的概念、目的、原則和方法;軟件測試的步驟、軟件測試用例的設(shè)計;軟件程序調(diào)試的步驟。在本項目中,通過6個工作任務(wù),向讀者展示程序設(shè)計語言與測試策略。目錄任務(wù)一選擇程序設(shè)計語言任務(wù)二編碼風格任務(wù)三軟件測試任務(wù)四實用綜合測試策略任務(wù)五系統(tǒng)測試步任務(wù)六解讀調(diào)試技術(shù)原則選擇程序設(shè)計語言準備知識選擇程序設(shè)計語言編碼設(shè)計的目的程序設(shè)計語言的分類任務(wù)實施文杰是某科技公司的軟件開發(fā)人員,在編寫某個任務(wù)項目時,他需要確定選擇程序設(shè)計語言的種類,并選擇一種程序語言編寫。選擇程序設(shè)計語言任務(wù)一:選擇程序設(shè)計語言任務(wù)分析:理解牢記!由于一個軟件產(chǎn)品完成開發(fā)工作以后,如果發(fā)生了問題,很難依靠原開發(fā)人員來解決。因此,在程序編寫時應(yīng)考慮到,所寫的程序?qū)⒈粍e人閱讀,一定要盡量使程序?qū)懙萌菀妆蝗俗x懂。任務(wù)一:選擇程序設(shè)計語言任務(wù)實施

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

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

FORTRAN、TrueBASIC及各種塊結(jié)構(gòu)語言支持較復雜的計算與算法,COBOL與大多數(shù)數(shù)據(jù)庫語言只支持簡單的運算。

(3)數(shù)據(jù)結(jié)構(gòu)的復雜性

PASCAL和C語言支持數(shù)組、記錄與帶指針的動態(tài)數(shù)據(jù)結(jié)構(gòu),適用于系統(tǒng)程序和數(shù)據(jù)結(jié)構(gòu)復雜的應(yīng)用程序。FORTRAN和BASIC只提供簡單的數(shù)據(jù)結(jié)構(gòu)——數(shù)組。

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

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

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

詳細編寫“教材購銷系統(tǒng)”部分模塊說明書1.語句結(jié)構(gòu)的規(guī)則語句結(jié)構(gòu)應(yīng)遵從如下規(guī)則:

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

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

(3)程序編寫要簡單、清楚,能直截了當?shù)卣f明程序員的用意;

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

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

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

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

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

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

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

(14)避免使用ELSEGOTO和ELSERETURN結(jié)構(gòu);

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

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

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

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

(19)不要使

GOTO語句相互交叉;

(20)對遞歸定義的數(shù)據(jù)結(jié)構(gòu)盡量使用遞歸過程。

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

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

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

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

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

(5)應(yīng)允許缺省值;

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

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

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

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

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

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

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

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

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

216×216×216=248

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(1)查錯的原則

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

2)把調(diào)試工具僅當作

溫馨提示

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

最新文檔

評論

0/150

提交評論