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