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