|
1.前言
1.1 什么是測試需求? 確切地講,所謂的測試需求就是在項(xiàng)目中要測試什么。我們在測試活動(dòng)中,首先需要明確測試需求(What),才能決定怎么測(How),測試時(shí)間(When),需要多少人(Who),測試的環(huán)境是什么(Where),測試中需要的技能、工具以及相應(yīng)的背景知識(shí),測試中可能遇到的風(fēng)險(xiǎn)等等,以上所有的內(nèi)容結(jié)合起來就構(gòu)成了測試計(jì)劃的基本要素。而測試需求是測試計(jì)劃的基礎(chǔ)與重點(diǎn)。 就像軟件的需求一樣,測試需求根據(jù)不同的公司環(huán)境,不同的專業(yè)水平,不同的要求,詳細(xì)程度也是不同的。但是,對(duì)于一個(gè)全新的項(xiàng)目或者產(chǎn)品,測試需求力求詳細(xì)明確,以避免測試遺漏與誤解。 1.2 為什么要做測試需求? 如果要成功的做一個(gè)測試項(xiàng)目,首先必須了解測試規(guī)模、復(fù)雜程度與可能存在的風(fēng)險(xiǎn),這些都需要通過詳細(xì)的測試需求來了解。所謂知己知彼,百戰(zhàn)不殆。測試需求不明確,只會(huì)造成獲取的信息不正確,無法對(duì)所測軟件有一個(gè)清晰全面的認(rèn)識(shí),測試計(jì)劃就毫無根據(jù)可言?;钤谧约菏澜缋锏娜耸强杀?,只憑感覺不做詳細(xì)了解就下定論的項(xiàng)目是失敗的。 測試需求越詳細(xì)精準(zhǔn),表明對(duì)所測軟件的了解越深,對(duì)所要進(jìn)行的任務(wù)內(nèi)容就越清晰,就更有把握保證測試的質(zhì)量與進(jìn)度。 如果把測試活動(dòng)比作軟件生命周期,測試需求就相當(dāng)于軟件的需求規(guī)格,測試策略相當(dāng)于軟件的架構(gòu)設(shè)計(jì),測試用例相當(dāng)于軟件的詳細(xì)設(shè)計(jì),測試執(zhí)行相當(dāng)于軟件的編碼過程。只是在測試過程中,我們把“軟件”兩個(gè)字全部替換成了“測試”。這樣,我們就明白了整個(gè)測試活動(dòng)的依據(jù)來源于測試需求。 2.測試需求分析方法 2.1 測試需求分析依據(jù) 通常是以被測產(chǎn)品的需求為原型進(jìn)行分析轉(zhuǎn)變而來,測試需求主要通過以下途徑來進(jìn)行收集: 與待測軟件相關(guān)的各種文檔資料。如軟件需求規(guī)格、Use case、界面設(shè)計(jì)、項(xiàng)目會(huì)議或與客戶溝通時(shí)有關(guān)于需求信息的會(huì)議記錄、其他技術(shù)文檔等?!?BR> 與客戶或系統(tǒng)分析員的溝通。 業(yè)務(wù)背景資料。如待測軟件業(yè)務(wù)領(lǐng)域的知識(shí)等。 正式與非正式的培訓(xùn)。 其他。如果以舊系統(tǒng)為原型,以全新的架構(gòu)方式來設(shè)計(jì)或完善軟件,那么舊系統(tǒng)的原有功能跟特性就成為了最有效的測試需求收集途徑。 2.2 測試需求架構(gòu)劃分 測試需求分析應(yīng)首先進(jìn)行測試需求架構(gòu)劃分并先進(jìn)行評(píng)審,通過后才進(jìn)行后續(xù)的測試需求展開分析,從產(chǎn)品整體上考慮有哪些功能、測試類型需要進(jìn)行分析,列出測試特性列表,也方便下一步展開具體分析。 首先,這里需要對(duì)功能進(jìn)行一下定義以達(dá)成共識(shí),功能是指能獨(dú)立實(shí)現(xiàn)一個(gè)基本業(yè)務(wù)處理要求,為了降低測試需求設(shè)計(jì)的復(fù)雜性及依賴性,測試需求架構(gòu)羅列的功能是指最小功能點(diǎn),即不可再繼續(xù)分解。 (1)應(yīng)用程序: A.一般是最底層的菜單項(xiàng)為最小功能點(diǎn),若最底層的菜單項(xiàng)不能體現(xiàn)一個(gè)獨(dú)立的業(yè)務(wù)流程時(shí),可采用上一層 的菜單項(xiàng)為最小功能點(diǎn)。 B. 還有某些比較特殊沒有體現(xiàn)在菜單項(xiàng)的功能也需要作為最小功能點(diǎn)考慮,如POS應(yīng)用程序中交易的沖正功能 等。 (2)驅(qū)動(dòng):一般是以一個(gè)API為最小功能點(diǎn)。 然后,再考慮產(chǎn)品實(shí)際用戶使用的場合及用戶特點(diǎn)考慮哪些測試類型,如故障及恢復(fù)、功能集成、性能要求、安裝測試、軟硬件兼容性等,此處需要從產(chǎn)品層面考慮,而不是從功能點(diǎn)層面考慮。 2.3 測試需求分析過程 2.3.1 測試需求收集 測試需求的收集主要通過對(duì)測試依據(jù)進(jìn)行分析整理,最后生成一個(gè)以測試的觀點(diǎn)出發(fā)的checklist(檢查表),用來作為測試該軟件的主要工作內(nèi)容。檢查表的檢查要點(diǎn)包括需求的正確性、必要性、優(yōu)先級(jí)、明確性、可測性、完整性、一致性、可修改性: 在整個(gè)信息收集過程中,務(wù)必確保軟件的功能與特性被正確理解。因此,測試需求分析人員必須具備優(yōu)秀的溝通能力與表達(dá)能力。 2.3.1.1 測試類型劃分 根據(jù)測試需求收集獲得的checklist(檢查表),對(duì)每一條測試需求,從GB/T16260.1定義的軟件質(zhì)量子特性角度出發(fā),確定所對(duì)應(yīng)的質(zhì)量子特性。即,從適用性、準(zhǔn)確性、互操作性、保密安全性、成熟性、容錯(cuò)性、易恢復(fù)性、易理解性、易學(xué)性、以操作性、吸引性、時(shí)間特性、資源利用性、易分析性、易改變性、穩(wěn)定性、易測試性、適應(yīng)性、易安裝性、共存性、易替換性和依從性方面的定義出發(fā),確定每一條測試需求所對(duì)應(yīng)的質(zhì)量子特性。從而對(duì)這些質(zhì)量子特性進(jìn)行測試類型劃分,如:功能測試、易用性測試(安裝測試、功能易用性測試、用戶界面測試、輔助系統(tǒng)測試)、兼容性測試、可靠性測試、文檔測試、性能測試,強(qiáng)度測試等。 2.3.1.2 測試類型細(xì)化 對(duì)劃分的每個(gè)測試類型進(jìn)行細(xì)化。軟件測試需求是開發(fā)測試用例的依據(jù),測試需求分解得越詳細(xì)精準(zhǔn),表明對(duì)軟件的了解越深,對(duì)所有要進(jìn)行的任務(wù)就越清晰,對(duì)測試用例的設(shè)計(jì)質(zhì)量的幫助也越大,詳細(xì)的測試需求還是衡量測試覆蓋度的重要指標(biāo),測試需求是計(jì)算測試覆蓋的分母,沒有詳細(xì)的測試需求就無法有效的進(jìn)行軟件測試覆蓋計(jì)算。最好達(dá)到細(xì)化的結(jié)果是分支的最末端(測試項(xiàng))針對(duì)的測試目的是單一的最小的功能點(diǎn)的測試,即每個(gè)測試項(xiàng)為一個(gè)測試功能點(diǎn)。 2.3.1.3 生成測試需求樹 已細(xì)化的測試需求中,由于在提取時(shí),可能存在著重復(fù)或冗余,需要進(jìn)行刪除和合并需求。刪除測試需求中存在的重復(fù)的、冗余的含有關(guān)系的測試項(xiàng)。如果有類似的測試項(xiàng),則需要對(duì)其進(jìn)行合并。最終生成測試需求樹。 2.3.2 測試風(fēng)險(xiǎn)分析 由于軟件的輸入、輸出、處理存在一定的限制和約束,另一方面由于測試樹中進(jìn)行了必要的刪除和合并,這導(dǎo)致測試需求不可能是全面的覆蓋,從而形成了一定的測試風(fēng)險(xiǎn)。測試需求中必須對(duì)不分析或不測試部分給出相應(yīng)的風(fēng)險(xiǎn)分析說明。 3.總結(jié) 以上主要描述了測試需求相關(guān)理論和獲得測試需求樹的一般過程。為具體項(xiàng)目實(shí)施測試中提供了一套獲取測試需求樹的參考方案。實(shí)際的測試類型劃分和測試需求樹生成的形式或粒度,因項(xiàng)目而不同,需靈活應(yīng)用。 |
|
|