測試需求分析相關點:
          邊聽歌曲邊敲鍵盤:
          視頻出處:http://www.tudou.com/programs/view/annAfqxLAxk/
          1、所謂的測試需求就是在項目中要測試什么。測試活動中,首先需要明確測試需求(What),才能決定怎么測(How),測試時間(When),需要多少人(Who),測試的環境是什么(Where),測試中需要的技能、工具以及相應的背景知識,測試中可能遇到的風險等等,以上所有的內容結合起來就構成了測試計劃的基本要素。而測試需求是測試計劃的基礎與重點。

          就像軟件的需求一樣,測試需求根據不同的公司環境,不同的專業水平,不同的要求,詳細程度也是不同的。但是,對于一個全新的項目或者產品,測試需求力求詳細明確,以避免測試遺漏與誤解。

          2、為什么要做測試需求分析

          如果要成功的做一個測試項目,首先必須了解測試規模、復雜程度與可能存在的風險,這些都需要通過詳細的測試需求來了解。所謂知己知彼,百戰不殆。測試需求不明確,只會造成獲取的信息不正確,無法對所測軟件有一個清晰全面的認識,測試計劃就毫無根據可言。活在自己世界里的人是可悲的,只憑感覺不做詳細了解就下定論的項目是失敗的。

          測試需求越詳細精準,表明對所測軟件的了解越深,對所要進行的任務內容就越清晰,就更有把握保證測試的質量與進度。

          如果把測試活動比作軟件生命周期,測試需求就相當于軟件的需求規格,測試策略相當于軟件的架構設計,測試用例相當于軟件的詳細設計,測試執行相當于軟件的編碼過程。只是在測試過程中,我們把”軟件”兩個字全部替換成了”測試”。這樣,我們就明白了整個測試活動的依據來源于測試需求。

          3、測試需求的依據與收集

          測試需求通常是以待測對象的軟件需求為原型進行分析而轉變過來的。但測試需求并不等同于軟件需求,它是以測試的觀點根據軟件需求整理出一個checklist,作為測試該軟件的主要工作內容。

          測試需求主要通過以下途徑來收集:

          1) 與待測軟件相關的各種文檔資料。如軟件需求規格、Use case、界面設計、項目會議或與客戶溝通時有關于需求信息的會議記錄、其他技術文檔等。

          2) 與客戶或系統分析員的溝通。

          3) 業務背景資料。如待測軟件業務領域的知識等。

          4) 正式與非正式的培訓。

          5) 其他。如果以舊系統為原型,以全新的架構方式來設計或完善軟件,那么舊系統的原有功能跟特性就成為了最有效的測試需求收集途徑。

          在整個信息收集過程中,務必確保軟件的功能與特性被正確理解。因此,測試需求分析人員必須具備優秀的溝通能力與表達能力。

          4、測試需求的分析

          目前不少的書籍與網站資料開始重視測試需求的分析,同時也提出了一些測試需求分析的方法。這里也提出一些自己的看法。

          測試需求需要考慮幾個層面的因素:

          第一層:測試階段。系統測試階段,需求分析更注重于技術層面,即軟件是否實現了具備的功能。如果某一種流程或者某一角色能夠執行一項功能,那么我們相信具備相同特征的業務或角色都能夠執行該功能。為了避免測試執行的冗余,可不再重復測試。而在驗收測試階段,更注重于不同角色在同一功能上能否走通要求的業務流程。因此需要根據不同的業務需要而測試相同的功能,以確保系統上線后不會有意外發生。但是否有必要進行這種大量的重復性質的測試,不過也是見仁見智的做法,要看測試管理者對測試策略與風險的平衡能力了。

          目前,大多數的測試都會在系統測試中完成,驗收測試只是對于系統測試的回歸。此種情況也是合理的,關鍵看測試周期與資源是否允許,以及各測試階段的任務劃分。

          第二層:待測軟件的特性。不同的軟件業務背景不同,所要求的特性也不相同,測試的側重點自然也不相同。除了需要確保要求實現的功能正確,銀行/財務軟件更強調數據的精確性,網站強調服務器所能承受的壓力,ERP強調業務流程,驅動程序強調軟硬件的兼容性。在做測試分析時需要根據軟件的特性來選取測試類型,并將其列入測試需求當中。

          第三層:測試的焦點。測試的焦點是指根據所測的功能點進行分析、分解,從而得出 的著重于某一方面的測試,如界面、業務流、模塊化、數據、輸入域等。目前關于各個焦點的測試也有不少的指南,那些已經是很好的測試需求參考了,在此僅列出業務流的測試分析方法。

          任何一套軟件都會有一定的業務流,也就是用戶用該軟件來實現自己實際業務的一個流程。簡單的來說,在做測試需求分析時需要列出以下類別:

          1) 常用的或規定的業務流程

          2) 各業務流程分支的遍歷

          3) 明確規定不可使用的業務流程

          4) 沒有明確規定但是應該不可以執行的業務流程

          5) 其他異常或不符合規定的操作

          然后根據軟件需求理出業務的常規邏輯,按照以上類別提出的思路,一項一項列出各種可能的測試場景,同時借助于軟件的需求以及其他信息,來確定該場景應該導致的結果,便形成了軟件業務流的基本測試需求。

          在做完以上步驟之后,將業務流中涉及的各種結果以及中間流程分支回顧一遍,確定是否還有其他場景可能導致這些結果,以及各中間流程之間的交互可能產生的新的流程,從而進一步補充與完善測試需求。

          5、測試需求的優先級

          優先級別的確定,利于測試工作有的放矢的展開,使測試人員清晰了解核心的功能、特性與流程有哪些,客戶最為關注的是什么,由此可確定測試的工作重點在何處,更方便處理測試進度發生問題時,實現不同優先級別的功能、模塊、系統等迭代遞交或取舍,從而緩和測試風險。

          通常,需求管理規范的客戶,會規定用戶需求/軟件需求的優先級別,測試需求的優先級可根據其直接定義。如果沒有規定項目需求的優先級,則可與客戶溝通,確定哪些功能或特性是需要尤其關注的,從而確定測試需求的優先級。

          6、測試需求的覆蓋率與覆蓋程度

          測試需求的覆蓋率通常是由與軟件需求所建立的對應關系來確定的。如果一個軟件的需求已經跟測試需求存在了一對一或一對多的對應關系,可以說測試需求已經覆蓋了該功能點,以此類推,如果確定了所有的軟件需求都建立了對應的測試需求,那么測試需求的覆蓋率便是測試需求覆蓋點/軟件需求功能點=100%,但并不意味著測試需求的覆蓋程度高。因為測試需求的覆蓋率只計算了顯性的(即被明確規定的功能與特性)因素,而隱性的(即沒有被明確規定但是有可能或不應該擁有的功能與特性)因素并未計算在內。因此根據不斷的完善或實際測試中發生的缺陷,可以對測試需求進行補充或優化,并更新進測試用例中,以此來提高測試需求的覆蓋程度。

          posted on 2009-04-21 14:19 老魚吃貓 閱讀(231) 評論(1)  編輯  收藏 所屬分類: 測試管理

          FeedBack:
          # re: 測試需求分析 2009-05-13 00:22 rosalind
          好文章,轉走了!  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 凤冈县| 柞水县| 德令哈市| 永嘉县| 台安县| 宁强县| 普安县| 陇川县| 新巴尔虎右旗| 庆安县| 十堰市| 清镇市| 裕民县| 繁峙县| 石家庄市| 阳朔县| 登封市| 佛冈县| 宜春市| 博白县| 长泰县| 濉溪县| 尼勒克县| 清镇市| 绩溪县| 渭南市| 永修县| 偏关县| 莱芜市| 迭部县| 巢湖市| 兴安县| 天镇县| 大庆市| 桂东县| 金秀| 杭锦后旗| 资兴市| 易门县| 车致| 班戈县|