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