摘要:討論了軟件測試過程中編寫測試計劃這一環(huán)節(jié),指出了測試計劃的任務和作用,并通過圖書管理系統(tǒng)這一項目,說明了測試計劃包含的內容,并總結出測試計劃制定時的關注點。
關鍵詞:測試計劃;軟件測試;計劃制定
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)14-3719-02
Discusses the Software Testing Plan Shallowly the Formulation
XIA Xue-Gang
(Electrical and Mechanical Engineering, Shaanxi Railway Institute, Weinan 714000, China)
Abstract: Discusses the software testing process of the preparation of this aspect of the test plan, pointing out that the test plan and the role of the task, and through library management system, describes the testing plan content, and summed up at the time of the test plan concerns.
Key words: test plan; software testing; plan formulation
1 引言
在國內,很多中小型軟件公司,軟件測試過程不規(guī)范,很多軟件測試人員沒意識到測試計劃的重要性,對軟件測試工作缺乏整體的規(guī)劃安排,有很多軟件測試項目在沒有制定充分的測試計劃或者沒有制定測試計劃情況下,就匆忙展開測試工作,這樣導致了測試工作大打折扣,甚至使測試計劃成為一紙空文,不能指導測試過程。幾乎可以肯定的是,沒有計劃地消耗測試所需的資源,必然會導致資源的浪費,并且無法對安裝前進行的修正狀態(tài)進行評估,甚至造成很多軟件不能投入使用。
2 測試計劃的任務和作用
2.1 測試計劃的任務
軟件測試是有計劃、有組織和有系統(tǒng)的軟件質量保證活動,而不是隨意地、松散地、雜亂地實施過程。測試計劃是軟件測試中最重要的步驟之一,測試計劃的任務是為了盡早明確測試工作的內容范圍、測試工作的方法以及測試工作所需要的各種資源, 并把這些信息發(fā)布給所有涉及到測試工作的測試人員, 盡快將下一步測試工作需要考慮的問題和準備的條件落實下來。也就是說測試計劃工作的重點在于對測試工作任務的準備和規(guī)劃以及信息的交流。在對軟件進行測試之前,必須認真制定測試計劃。
2.2 測試計劃的作用
測試計劃的作用主要體現(xiàn)在下面三個方面:
1) 領導能夠根據(jù)測試計劃做宏觀調控,進行相應資源配置等。
2) 測試人員能夠了解整個項目測試情況以及項目測試不同階段所要進行的工作等。
3) 便于其他人員了解測試人員的工作內容,進行有關配合工作。
4) 對開發(fā)人員的開發(fā)工作,整個項目的規(guī)劃,項目經(jīng)理的審查都有輔助性作用。
3 測試計劃的定義和內容
3.1 測試計劃的定義
《IEEE軟件測試文檔標準829-1998》將測試計劃定義為:“一個敘述了預定的測試活動的范圍、途徑、資源及進度安排的文檔。它確認了測試項、被測特征、測試任務、人員時間安排以及與計劃相關的風險?!盵1]。
軟件測試計劃是指導測試過程的綱領性文件,其中必不可少的三個要素是時間、資源、范圍。時間就是什么時候做以及要花多久做;資源就是你要調用的人力、機器等資源;范圍是你要測試的東西以及測試重點。除以上提到的3項外,還有比較重要的部分有策略(具體就是怎么測)、風險控制(一旦有問題采取什么應急措施)等部分。
3.2 測試計劃的內容
下面結合圖書管理系統(tǒng)的測試計劃的制定,來討論測試計劃一般應該包括的內容:
1) 測試概要:摘要說明所需測試的軟件(系統(tǒng)基本功能和特征等)、測試背景、名詞解釋、以及列出所參考的相關文檔。如圖書管理系統(tǒng)的功能簡介,特征是基于B/S的Web軟件等;相關的參考文檔有:圖書管理系統(tǒng)的需求說明書、總體設計說明書、數(shù)據(jù)庫設計說明書、詳細設計說明書等。
2) 測試目標:對測試目標進行簡要的描述。制定被測軟件的產(chǎn)品質量目標和軟件測試目標。如圖書館管理系統(tǒng)測試目標是各項功能可靠實現(xiàn),在系統(tǒng)的安全性方面和性能方面滿足用戶需求等。
3) 測試范圍和優(yōu)先級:指出需要測試的范圍,哪些需要重點測試、哪些無需測試、無法測試或推遲測試。測試的范圍包括文檔和軟件系統(tǒng),如文檔有圖書管理系統(tǒng)需求說明書、總體設計說明書、數(shù)據(jù)庫設計說明書、詳細設計說明書;軟件各功能模塊,重點需要測試的是系統(tǒng)需求說明書、圖書管理模塊、讀者管理模塊、借還書模塊。
4) 重點事項:列出需要被測軟件的所有主要功能和測試重點。如圖書管理系統(tǒng)的主要功能是:管理員能夠對圖書信息、讀者信息進行添加(單項數(shù)據(jù)和批量數(shù)據(jù)進行添加)、刪除、修改,可以實現(xiàn)借還書的操作,添加管理員和設置管理員權限、密碼等;對于讀者來說可以通過校園網(wǎng)內任意一臺客戶機查詢圖書信息和個人借書情況。對圖書信息、讀者信息進行添加(單項數(shù)據(jù)和批量數(shù)據(jù)添加)、刪除、修改,可以實現(xiàn)借還書的操作是測試的重點。
5) 資源需求:指測試所需要的軟硬件、測試工具、必要的技術資源、培訓和文檔等。
6) 人員組織:需要多少人進行測試,各自的角色和責任,他們是否需要進行相關的學習和培訓,什么時候他們需要開始,并將持續(xù)多長時間。
7) 測試策略:制定測試整體策略、所使用的測試技術和方法。本系統(tǒng)采用的策略是:黑盒法--白盒法--黑盒法的循環(huán)過程。對邏輯結構復雜的模塊采用白盒法;對于以輸入、輸出為主的模塊,采用黑盒法測試以提高測試效率。鑒于本系統(tǒng)測試為基于web的系統(tǒng)測試,所以需額外測試系統(tǒng)在不同Windows操作系統(tǒng)下的瀏覽器端的顯示是否正常以及進行安全性和可用性測試。因此在功能測試中需添加Cookies測試;性能測試中添加瀏覽速度測試以及安全性測試。
8) 測試開始/完成/延遲/繼續(xù)的標準:測試計劃中每個階段要明確表明測試開始、完成的標準,并且測試的輸入、輸出條件要清楚;某些時候,測試計劃會因某種原因(如過多阻塞性的Bug)而導致延遲,需指出問題解決后測試繼續(xù)測試的標準。
9) 測試進度、任務和人員安排:制定詳細的測試進度,并將測試工作合理分配給不同的測試人員,并注意先后順序。對于長期大型的測試計劃,可以使用里程碑表示進度的變化。
10) 風險分析:需要考慮測試計劃中可能的風險和解決方法。如由于系統(tǒng)壓力測試和性能測試中只能模擬幾百臺計算機訪問系統(tǒng),對于上千人同時訪問系統(tǒng)的情況不可知,只能在系統(tǒng)投入使用后,發(fā)現(xiàn)問題時進行完善。
11) 發(fā)布提交:在按照測試計劃進行測試后,提交需要交付的軟件產(chǎn)品、測試案例、測試數(shù)據(jù)及相關文檔等。圖書管理系統(tǒng)測試完成后,需要提交軟件測試報告、軟件測試計劃、測試案例、測試數(shù)據(jù)等相關文檔和相應的圖書館管理系統(tǒng)軟件。
測試計劃的內容會因不同的項目以及項目的大小而有所不同,可以在上面的內容中進行相應的取舍。
4 測試計劃制定的關注點
制定一份切實可行的軟件測試計劃,需要關注以下幾個方面:
4.1 計劃盡早開始和測試階段劃分
就通常軟件項目而言,基本上采用“瀑布型”開發(fā)方式,這種開發(fā)方式下,各個項目主要活動比較清晰,易于操作。整個軟件生命周期為“需求-設計-編碼-測試-發(fā)布-實施-維護”。然而,將制定測試計劃和測試工作全部放入生命周期的“測試階段”,這樣造成的問題是浪費了開發(fā)階段可以并行的項目日程。合理的測試階段應遵循下面劃分方法:在項目的需求分析階段就開始制定測試計劃,并在設計和編碼階段不斷完善測試計劃,而測試設計也可以結合在開發(fā)過程中實現(xiàn)并行,執(zhí)行測試的活動貫穿整個開發(fā)過程中。
4.2 堅持“5W+H”規(guī)則[6],明確內容與過程
“5W”規(guī)則指的是“What(測試哪些方面,不同階段的工作內容)”、“Why(為什么要進行這些測試)”、“When(測試不同階段的起止時間)”、“Where(相應文檔,缺陷的存放位置,測試環(huán)境等)”、“who(項目有關人員組成,安排哪些測試人員進行哪些測試)”、“How(如何去做,使用哪些測試工具以及測試方法進行測試)”。利用“5W+H”規(guī)則創(chuàng)建軟件測試計劃,明確測試的目標,在需要測試的內容里并突出關鍵部分,可以列出關鍵及風險內容、屬性、場景或者測試技術。對測試過程的階段劃分、文檔管理、缺陷管理、進度管理給出切實可行的方法。
4.3 明確標準
測試計劃是指導測試人員進行測試的,而且測試工作往往是多人參與,因此必須指明各種標準,這些標準主要包括:
1) 接受測試標準:指開發(fā)組完成相應的文檔和程序后,送測試組測試時,測試組接受的標準,如果不滿足此標準則拒絕測試。
2) 測試開始/停止的標準:在制定測試策略時,對每一個測試項目要明確指出該項測試的開始和停止標準。
3) 命名標準:測試文檔的命名標準,如測試用例文件名命名標準,測試用例編碼標準等,如測試用例中的編號規(guī)則可以使用:功能名_界面名(每個字第一個漢語拼音大寫)_編號。例如:借還書信息第一個用例,JH_TS_0001。
4.4 分別創(chuàng)建測試計劃與測試詳細規(guī)格、測試用例
編寫軟件測試計劃要避免一種不良傾向是測試計劃的“大而全”,無所不包,篇幅冗長,長篇大論,重點不突出,既浪費寫作時間,也浪費測試人員的閱讀時間?!按蠖钡囊粋€常見表現(xiàn)就是測試計劃文檔包含詳細的測試技術指標、測試步驟和測試用例。最好的方法是把詳細的測試技術指標包含到獨立創(chuàng)建的測試詳細規(guī)格文檔中,把用于指導測試小組執(zhí)行測試過程的測試用例放到獨立創(chuàng)建的測試用例文檔或測試用例管理數(shù)據(jù)庫中。測試計劃和測試詳細規(guī)格、測試用例之間是戰(zhàn)略和戰(zhàn)術的關系,測試計劃主要從宏觀上規(guī)劃測試活動的范圍、方法和資源配置,而測試詳細規(guī)格、測試用例是完成測試任務的具體戰(zhàn)術。
4.5 采用評審和更新機制,保證測試計劃滿足實際需求
測試計劃包含多方面的內容,編寫人員可能受自身測試經(jīng)驗和對軟件需求的理解所限,而且軟件開發(fā)是一個漸進的過程,所以最初創(chuàng)建的測試計劃可能是不完善的、需要更新的。需要采取相應的評審機制對測試計劃的完整性、正確性、可行性進行評估。例如,在創(chuàng)建完測試計劃后,提交到由項目經(jīng)理、開發(fā)經(jīng)理、測試經(jīng)理、市場經(jīng)理等組成的評審委員會審閱,根據(jù)審閱意見和建議進行修正和更新。
5 結束語
好的測試計劃是成功的一半,另一半是對測試計劃的執(zhí)行。對小項目而言,一份更易于操作的測試計劃更為實用,對中型乃至大型項目來看,測試經(jīng)理的測試管理能力就顯得格外重要,要確保計劃不折不扣的執(zhí)行下去,測試經(jīng)理的人際諧調能力,項目測試的操作經(jīng)驗、公司的質量現(xiàn)狀都能夠對項目測試產(chǎn)生影響。另外,計劃也是“動態(tài)的”,是緊追項目的變化,實時進行思考和貫徹,根據(jù)現(xiàn)實修改,一份切實可行的測試計劃再加上成功實施,才能實現(xiàn)測試計劃的最終目標--保證軟件項目最終產(chǎn)品的質量。
參考文獻:
[1] Patton R.軟件測試[M].張小松,譯.北京:機械工業(yè)出版社,2007:177-186.
[2] 軟件測試網(wǎng).做好測試計劃和測試用例的工作的關鍵是什么?[EB/OL].http://www.51testing.com/?action_viewnews_itemid_84567.html.
[3] 夏雪剛,盧順利,支高英.圖書管理系統(tǒng)相關文檔[D].陜西:寶雞文理學院,2003.
[4] 張靖,賁可榮,羅云鋒.軟件測試研究綜述[J].武漢:計算機與數(shù)字工程,2008(10).
[5] Perry W E.軟件測試的有效方法[M].高猛,譯.北京:清華大學出版社,2008:151-207.
[6] 測試時代網(wǎng).如何編寫軟件測試計劃[EB/OL].http://www.testage.net/html/71/n-156071-2.html.
[7] 陳霖,張瑞.軟件測試的風險管理[J].湖北武漢:計算機與數(shù)字工程,2008(6).
[8] 測試時代網(wǎng).軟件測試的計劃與管[EB/OL].http://www.testage.net/TestTech/TM/200601/52.htm.