1. 什么是測試需求?
確切地講,所謂的測試需求就是在項目中要測試什么。我們在測試活動中,首先需要明確測試需求(What),才能決定怎么測(How),測試時間(When),需要多少人(Who),測試的環(huán)境是什么(Where),測試中需要的技能、工具以及相應的背景知識,測試中可能遇到的風險等等,以上所有的內(nèi)容結(jié)合起來就構(gòu)成了測試計劃的基本要素。而測試需求是測試計劃的基礎(chǔ)與重點。
就像軟件的需求一樣,測試需求根據(jù)不同的公司環(huán)境,不同的專業(yè)水平,不同的要求,詳細程度也是不同的。但是,對于一個全新的項目或者產(chǎn)品,測試需求力求詳細明確,以避免測試遺漏與誤解。
2. 為什么要做測試需求分析
如果要成功的做一個測試項目,首先必須了解測試規(guī)模、復雜程度與可能存在的風險,這些都需要通過詳細的測試需求來了解。所謂知己知彼,百戰(zhàn)不殆。測試需求不明確,只會造成獲取的信息不正確,無法對所測軟件有一個清晰全面的認識,測試計劃就毫無根據(jù)可言?;钤谧约菏澜缋锏娜耸强杀模粦{感覺不做詳細了解就下定論的項目是失敗的。
測試需求越詳細精準,表明對所測軟件的了解越深,對所要進行的任務(wù)內(nèi)容就越清晰,就更有把握保證測試的質(zhì)量與進度。
如果把測試活動比作軟件生命周期,測試需求就相當于軟件的需求規(guī)格,測試策略相當于軟件的架構(gòu)設(shè)計,測試用例相當于軟件的詳細設(shè)計,測試執(zhí)行相當于軟件的編碼過程。只是在測試過程中,我們把”軟件”兩個字全部替換成了”測試”。這樣,我們就明白了整個測試活動的依據(jù)來源于測試需求。
3. 測試需求的依據(jù)與收集
測試需求通常是以待測對象的軟件需求為原型進行分析而轉(zhuǎn)變過來的。但測試需求并不等同于軟件需求,它是以測試的觀點根據(jù)軟件需求整理出一個checklist,作為測試該軟件的主要工作內(nèi)容。
測試需求主要通過以下途徑來收集:
1) 與待測軟件相關(guān)的各種文檔資料。如軟件需求規(guī)格、Use case、界面設(shè)計、項目會議或與客戶溝通時有關(guān)于需求信息的會議記錄、其他技術(shù)文檔等。
2) 與客戶或系統(tǒng)分析員的溝通。
3) 業(yè)務(wù)背景資料。如待測軟件業(yè)務(wù)領(lǐng)域的知識等。
4) 正式與非正式的培訓。
5) 其他。如果以舊系統(tǒng)為原型,以全新的架構(gòu)方式來設(shè)計或完善軟件,那么舊系統(tǒng)的原有功能跟特性就成為了最有效的測試需求收集途徑。
在整個信息收集過程中,務(wù)必確保軟件的功能與特性被正確理解。因此,測試需求分析人員必須具備優(yōu)秀的溝通能力與表達能力。
4. 測試需求的分析
目前不少的書籍與網(wǎng)站資料開始重視測試需求的分析,同時也提出了一些測試需求分析的方法。這里也提出一些自己的看法。
測試需求需要考慮幾個層面的因素:
第一層:測試階段。系統(tǒng)測試階段,需求分析更注重于技術(shù)層面,即軟件是否實現(xiàn)了具備的功能。如果某一種流程或者某一角色能夠執(zhí)行一項功能,那么我們相信具備相同特征的業(yè)務(wù)或角色都能夠執(zhí)行該功能