摘要:軟件測試是軟件項目管理中一個非常重要的部分,本文對軟件測試的概念、軟件測試的流程以及軟件測試的方法進行了分析和探討,希望給我們的工作起到一定指導(dǎo)作用。
關(guān)鍵詞:計算機;軟件測試
中圖分類號:TP311 文獻標識碼:A 文章編號:1007-9599 (2012) 18-0000-02
1 計算機軟件測試的概念
所謂軟件測試,主要是以發(fā)現(xiàn)程序錯誤為目的而執(zhí)行程序的過程,是結(jié)合軟件開發(fā)過程中每一個階段的規(guī)格及軟件內(nèi)部的結(jié)構(gòu)進行認真設(shè)計的測試用例。因此,我們可以說,軟件測試就是在精心搭建的環(huán)境下對程序進行執(zhí)行,以更好的發(fā)現(xiàn)軟件中的錯誤,對其可靠性給出鑒定。
2 軟件測試的流程
2.1 設(shè)計測試方案。設(shè)計測試方案是在軟件測試初始階段進行的,在這個工作中,首先要調(diào)研所需要應(yīng)對的系統(tǒng)框架和業(yè)務(wù)模型,對測試需求進行收集。其次,根據(jù)測試需求制訂一個合理的測試計劃。具體來說,我們的測試團隊要對被測試項目有著提前的了解,而且開發(fā)部門也要配合測試部門的工作,提供各種系統(tǒng)規(guī)格書、系統(tǒng)總體介紹、網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖、用戶使用手冊、系統(tǒng)配置說明、應(yīng)用部署與配置以及關(guān)鍵服務(wù)器及等文檔。經(jīng)過與業(yè)務(wù)部門協(xié)商之后,就可以確定下來這次測試的目標,然后對這一目標進行細化,制定出各個階段的目標,并制定相應(yīng)的指標要求。
2.2 開發(fā)測試場景。這主要是指開發(fā)測試腳本,是針對被測系統(tǒng)業(yè)務(wù)進行模擬、錄制、編程、參數(shù)化、腳本定制以及調(diào)試測的工作,通過測試場景的開發(fā),可以使測試腳本實現(xiàn)對現(xiàn)實場景的真是模擬,而且我們還可以通過改變參數(shù)來控制并發(fā)數(shù)以及思考時間等屬性。
2.3 執(zhí)行測試。這主要是按照預(yù)先制訂的測試方案,在完成測試環(huán)境以及測試場景之后進行的工作。
2.4 測試報告及分析。這一工作主要是在執(zhí)行完測試之后進行的,主要的任務(wù)是對測試過程中所暴露的問題進行收集及分析。而測試報告則主要是對測試過程中監(jiān)控報告以及報表的匯總,然后對其進行一定整理之后所得到的結(jié)論性文檔。
2.5 回歸測試。開發(fā)部門在分析了測試報告之后,會對軟件的缺陷進行了修復(fù)或者優(yōu)化,使其具有更高的性能,而對于這種修復(fù)之后軟件的測試就是回歸測試。
3 計算機軟件測試的基本方法
3.1 按照階段進行劃分。如果按照階段對計算機軟件測試方法進行劃分的話,則可以分為單元測試、集成測試、系統(tǒng)測試、驗收測試、回歸測試、Alpha測試以及Beta測試。
(1)單元測試。這主要是指對軟件的基本組成單位進行測試,比如一個模塊。單元測試是動態(tài)測試中最基本,也是最重要的部分,它主要的目的是對軟件基本單元的正確性進行驗證。在單元測試中,由于需要我們了解程序的設(shè)計及編碼的細節(jié),所以這一工作主要是由程序員進行。另外,單元測試還需要開發(fā)測試驅(qū)動模塊以及樁模塊進行輔助。在單元測試中,主要的方法包括控制流測試、排錯測試、數(shù)據(jù)流測試以及分域測試等。
(2)集成測試。集成測試主要進行于軟件系統(tǒng)集成過程中,它的作用是對單位之間接口的正確性進行檢查。一般來說,根據(jù)計劃,我們將在模塊集成為較大系統(tǒng)的過程中運行該系統(tǒng),查看各個組成部分是否合拍。在這個過程中,使用的策略有自底向上以及自頂向下這兩種。
(3)系統(tǒng)測試。這主要是針對已經(jīng)集成好的系統(tǒng)進行測試,進而對系統(tǒng)的性能及正確性進行檢查。由于這一測試的整體難度比較大,我們要制定合理的計劃,并嚴格按照計劃執(zhí)行測試工作。在系統(tǒng)測試工作中,主要的方法有隨機測試、性能測試以及功能測試。
(4)驗收測試。這種測試的目的是主要是對軟件的購買者展示軟件的性能,確保其符合購買者的需求。在這個過程中,測試數(shù)據(jù)主要來自于系統(tǒng)測試中使用的數(shù)據(jù)。這是軟件在應(yīng)用之前最后的測試。
(5)回歸測試。上文中已經(jīng)對其概念進行了簡要的分析,這里將進一步對其進行分析?;貧w測試的主要目的是檢測所進行的修改是否合理。在這個問題上,修改有著以下內(nèi)涵:首先是修改達到了預(yù)期的目的,其次是修改不能夠?qū)浖渌δ艿恼_性產(chǎn)生影響。
(6)Alpha測試。這是在軟件開發(fā)即將完成的時候所進行的測試,在測試之后,一般仍然會有一些設(shè)計上的變更,在這一測試工作中,測試人員主要是最終用戶而不是程序員或者測試員。
(7)Beta測試。這是指在開發(fā)及測試在根本完成之后進行的測試,這種測試的工作一般由其他人員或者最終用戶來完成,不可以由測試員完成。
3.2 按照按測試方法進行劃分。按照測試方法進行劃分則可以分為白盒測試以及黑盒測試這兩種。
(1)白盒測試。這也被我們稱之為邏輯驅(qū)動測試或者結(jié)構(gòu)測試,是基于覆蓋所有代碼、路徑、分支以及條件的測試。在白盒測試中,我們是清楚程序內(nèi)部工作過程的,主要的目的是檢測其內(nèi)部動作是否符合規(guī)格說明書的要求,至于軟件的功能是否符合要求則不屬于這一測試的范疇。常見的白盒測試方法有邏輯驅(qū)動以及基路測試等。
在使用白盒測試方法的時候,測試者必須對程序的內(nèi)部結(jié)構(gòu)進行檢查,并通過對其邏輯的檢查得到測試數(shù)據(jù)。在這種測試方法中,存在著以下不足:首先,對于程序是否符合設(shè)計規(guī)范,或者說程序本身就是錯誤程序的情況,我們是沒有辦法檢查的。其次,對于程序中因路徑遺漏而導(dǎo)致的錯誤,我們無法檢查。最后,某些和數(shù)據(jù)相關(guān)的錯誤我們沒有辦法檢查。在這一具體的工作中,常使用的工具有Junit Framework,Jtest等。
(2)黑盒測試。顧名思義,黑盒測試和白盒測試是相反的。在黑盒測試中,我們的測試目的不是為了檢查內(nèi)部設(shè)計及代碼是否正確,而是檢查程序能否符合功能性方面的需求,因此,這種測試也被我們稱之為數(shù)據(jù)驅(qū)動測試或者功能測試。
在測試的過程中,我們將完全不考慮其內(nèi)部特性,只是將程序作為一個黑盒子看待,然后在其接口進行測試,具體的工作就是檢查程序在接收到輸入數(shù)據(jù)之后能否產(chǎn)生正確的數(shù)據(jù)輸出信息。在黑盒測試方法中,常見的方法等價類劃分、因—果圖、邊值分析以及錯誤推測等。
由于黑盒測試方法屬于窮舉輸入測試,我們只有將所有的輸入都當(dāng)成測試情況使用之后才能夠檢查出程序中所有的錯誤,而實際的測試情況有無窮多個,因此,我們除了要有合法的輸入之外,還要有不合法卻可能的輸入。一般常用的工具有WinRunner,Rational Robot,QuickTestPro等。
4 結(jié)語
由上文我們可以看出,軟件測試中的環(huán)節(jié)比較多,而且方法也有很大的差別。因此,做好計算機軟件測試工作并不是一件很輕松的事情,需要我們對各種軟件測試方法了如指掌。所以,我們還要不斷的學(xué)習(xí),并加強探索,以一個嚴謹科學(xué)的態(tài)度去面對軟件測試工作,只有這樣才能真正的使軟件發(fā)揮其應(yīng)有的作用,進而提升企業(yè)的競爭力。
參考文獻:
[1]何強.通信軟件自動化測試系統(tǒng)的研究與實現(xiàn)[D].中南大學(xué),2009.
[2]易濤.基于通訊代理的考務(wù)信息系統(tǒng)的設(shè)計與實現(xiàn)[D].華中科技大學(xué),2009.
[3]單錦輝,姜瑛,孫萍.軟件測試研究進展[J].北京大學(xué)學(xué)報(自然科學(xué)版),2010,1.