摘要:國內(nèi)軟件項目過程不規(guī)范,導(dǎo)致重視編碼和輕視測試的現(xiàn)象,對于軟件測試的重要性、測試方法和流程等還存在很多認識誤區(qū),軟件測試所起的作用還沒有人們期望那樣顯著,因此,就需要繼續(xù)加大投入對軟件測試的關(guān)注程度,對軟件測試過程進行持續(xù)的改進。
關(guān)鍵詞:軟件測試;軟件工程;認識誤區(qū);持續(xù)改進
中圖分類號:TP311文獻標(biāo)識碼:A文章編號:1009-3044(34)-1997-02
1 引言
隨著市場對軟件質(zhì)量的不斷提高和國內(nèi)軟件測試行業(yè)的逐漸發(fā)展,軟件測試不斷受到重視,有越來越多的軟件企業(yè)更加重視軟件測試,并已經(jīng)形成了一套基本的軟件測試流程。然而,認識誤區(qū)的存在需要我們進一步改進軟件測試過程。
2 軟件測試概述
軟件測試就是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明書和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。一般按四個步驟進行,即單元測試、集成測試、確認測試和系統(tǒng)測試及發(fā)版測試。隨著軟件危機的頻頻出現(xiàn),人們已經(jīng)開始認識到測試開始的時間越早,測試執(zhí)行的越頻繁,所帶來的整個軟件開發(fā)成本的下降就會越多。所以,軟件測試在軟件項目實施過程中的重要性日益突出。
3 軟件測試過程中的認識誤區(qū)
3.1 軟件開發(fā)完成后進行軟件測試
人們一般認為,軟件項目要經(jīng)過以下幾個階段:需求分析,概要設(shè)計,詳細設(shè)計,軟件編碼,軟件測試,軟件發(fā)布。據(jù)此,認為軟件測試只是軟件編碼后的一個過程,這是不了解軟件測試周期的錯誤認識。軟件測試是一個系列過程活動,包括軟件測試需求分析,測試計劃設(shè)計,測試用例設(shè)計,執(zhí)行測試。因此,軟件測試貫穿于軟件項目的整個生命過程。在軟件項目的每一個階段都要進行不同目的和內(nèi)容的測試活動,以保證各個階段的正確性。軟件開發(fā)與軟件測試應(yīng)該是交互進行的,否則,測試的時間將會很短,測試的覆蓋面將很不全面,測試的效果也將大打折扣。
3.2 測試過程不夠完善
在軟件開發(fā)領(lǐng)域,確實存在一些東西看起來要比另外一些東西難測試一些,但是遠非無法測試。只不過這種不可測試性不是由于被測試的軟件內(nèi)部的過緊耦合造成的,而是和外部某些很難測試的部分耦合過緊,從而表現(xiàn)出被測試的軟件本身很難測試。這些很難測試的部分比較常見的有:圖形界面、硬件、數(shù)據(jù)庫等。
3.3 強調(diào)測試用例設(shè)計得越詳細越好
在確定測試用例設(shè)計目標(biāo)時,一些項目管理人員強調(diào)測試用例“越詳細越好”。這種做法和觀點最大的危害就是耗費了很多的測試用例設(shè)計時間和資源,可能等到測試用例設(shè)計、評審?fù)瓿珊螅艚o實際執(zhí)行測試的時間所剩無幾了。因為當(dāng)前軟件公司的項目團隊在規(guī)劃測試階段,分配給測試的時間和人力資源是有限的,而軟件項目的成功要堅持“質(zhì)量、時間、成本”的最佳平衡,沒有足夠多的測試執(zhí)行時間,就無法發(fā)現(xiàn)更多的軟件缺陷,測試質(zhì)量更無從談起了。
3.4 追求測試用例設(shè)計“一步到位”
現(xiàn)在軟件公司都意識到了測試用例設(shè)計的重要性了,但是一些人認為設(shè)計測試用例是一次性投入,測試用例設(shè)計一次就“萬事大吉”了,片面追求測試設(shè)計的“一步到位”。這種認識造成的危害性使設(shè)計出的測試用例缺乏實用性,或者誤導(dǎo)測試用例執(zhí)行人員,誤報很多不是軟件缺陷的“Bug”,這樣的測試用例在測試執(zhí)行過程中“形同虛設(shè)”,難免淪為“垃圾文檔”的地步。
4 軟件測試過程的持續(xù)改進
4.1 計劃與風(fēng)險
項目計劃對項目過程的實施有著直接的指導(dǎo)作用,它的重要性是不言而喻的。對于軟件測試來說,測試計劃也是指導(dǎo)后續(xù)測試工作的基礎(chǔ),只有對過程中各任務(wù)進行更詳細的計劃,才有利于在測試過程中對項目進度的把握有一個明確的目標(biāo);同時,風(fēng)險策略的制定,也有利于對及早對測試過程中可能遇到的問題做出分析,以便在問題出現(xiàn)時能夠盡可能的減少規(guī)避風(fēng)險的成本。
4.2 評審
在測試過程中的每個階段結(jié)束前,都會輸出一些資源,文檔、用例等等,這些資源往往是下一個測試階段或軟件開發(fā)的下一個環(huán)節(jié)執(zhí)行的依據(jù)。評和審是結(jié)合在一起的,每個角色根據(jù)自己對項目的了解,從各自角度來審核測試報告的充分性,對質(zhì)量風(fēng)險發(fā)表各種見解。最終,對報告的規(guī)范性也要進行考察。另外,也最好根據(jù)實際情況組織會議評審來對一定規(guī)模的問題統(tǒng)一評審。
4.3 文檔
文檔的編寫對于測試人員來說是一個十分重要的任務(wù),深入的、充分的投入測試的測試人員能寫出高質(zhì)量的測試文檔。所以,測試文檔的質(zhì)量,往往反映了測試人員執(zhí)行測試的廣度和深度。而在文檔的編寫方面,首先必須形成統(tǒng)一規(guī)范;另外,針對不同項目的測試,可以適當(dāng)對文檔標(biāo)題、內(nèi)容進行簡化。總之,文檔模板一旦形成,必須嚴格遵守。
4.4 方法與策略
測試方法和測試策略,測試的重中之重。測試的策略一般要求從全局方面對測試的階段、每個階段的測試類型進行考慮、定義。而測試的方法更多是體現(xiàn)在一個具體的測試中,采取怎樣的測試思路。另外,在測試過程中,對資源的協(xié)調(diào)也非常關(guān)鍵,需要能保證測試資源充分利用,每個測試人員都有適度并且相當(dāng)?shù)墓ぷ髁俊?/p>
4.5 總結(jié)測試經(jīng)驗
在測試的過程中,測試人員應(yīng)該及時總結(jié)發(fā)現(xiàn)的錯誤并歸類,標(biāo)明經(jīng)常容易出錯的地方,將意見提交項目經(jīng)理,審核后,制定出一份統(tǒng)一標(biāo)準并提供給開發(fā)人員,這樣就可以提前避免錯誤、避免重復(fù)錯誤和重復(fù)測試,提高測試效率。不僅如此,項目結(jié)束后的各項總結(jié)報告將是項目的后期維護或二次開發(fā)的寶貴參考資料。
4.6 缺陷分析、度量
對測試活動過程中發(fā)現(xiàn)的缺陷進行分析、度量,尋找軟件開發(fā)過程中存在的問題,并持續(xù)改進開發(fā)過程,提高質(zhì)量。缺陷的分析、度量從時間上分為兩個方面,首先是在軟件開發(fā)過程中發(fā)現(xiàn)的缺陷進行分析、度量;然后就是,對軟件產(chǎn)品發(fā)布后,對用戶提出缺陷進行統(tǒng)計、分析。
5 結(jié)論
測試是用來保證軟件開發(fā)過程的高效性,以及保證開發(fā)出來的軟件產(chǎn)品的高質(zhì)量和可用性的。軟件開發(fā)本身就是一件非常困難的事情,這也決定了有效的測試是非常重要的環(huán)節(jié),我們要加強對軟件測試的關(guān)注,使大家對于測試首先有一個正確的認識,避免誤區(qū)的存在,并積極探索測試方法的持續(xù)改進問題,真正使軟件測試真正起到它應(yīng)有的作用。
參考文獻:
[1] 鄭人杰.計算機軟件測試技術(shù)[M].北京:清華大學(xué)出版社,1992.
[2] Fewster M,Graham D.軟件測試自動化技術(shù)[M].北京:電子工業(yè)出版,2000.
[3] 林銳,王慧文,董軍.CMM13級軟件過程改進方法與規(guī)范[M].北京:電子工業(yè)出版社,2002.
[4] Press R S.軟件工程一實踐者的研究方法[M].北京:機械工業(yè)出版社,2000.