<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            軟件測試模型之前置測試模型

            發(fā)表于:2009-03-17來(lái)源:作者:點(diǎn)擊數: 標簽:軟件測試模型
            前置測試模型是由RobinFGoldsmith等人提出的,是一個(gè)將測試和 開(kāi)發(fā) 緊密結合的模型,該模型提供了輕松的方式,可以使你的項目加快速度。 前置測試模型可參考下面的圖示: 前置測試模型體現了以下的要點(diǎn): (一)開(kāi)發(fā)和測試相結合 前置測試模型將開(kāi)發(fā)和測試的
            前置測試模型是由Robin FGoldsmith等人提出的,是一個(gè)將測試和開(kāi)發(fā)緊密結合的模型,該模型提供了輕松的方式,可以使你的項目加快速度。 
            前置測試模型可參考下面的圖示:
                  
            前置測試模型體現了以下的要點(diǎn):


             
            (一)開(kāi)發(fā)和測試相結合
                前置測試模型將開(kāi)發(fā)和測試的生命周期整合在一起,標識了項目生命周期從開(kāi)始到結束之間的關(guān)鍵行為。并且表示了這些行為在項目周期中的價(jià)值所在。如果其中有些行為沒(méi)有得到很好的執行,那么項目成功的可能性就會(huì )因此而有所降低。如果有業(yè)務(wù)需求,則系統開(kāi)發(fā)過(guò)程將更有效率。在沒(méi)有業(yè)務(wù)需求的情況下進(jìn)行開(kāi)發(fā)和測試是不可能的。而且,業(yè)務(wù)需求最好在設計和開(kāi)發(fā)之前就被正確定義。
             
            (二)對每一個(gè)交付內容進(jìn)行測試
                每一個(gè)交付的開(kāi)發(fā)結果都必須通過(guò)一定的方式進(jìn)行測試。源程序代碼并不是唯一需要測試的內容。在圖中的綠色框表示了其它一些要測試的對象,包括可行性報告、業(yè)務(wù)需求說(shuō)明,以及系統設計文檔等。這同V模型中開(kāi)發(fā)和測試的對應關(guān)系是相一致的,并且在其基礎上有所擴展,變得更為明確。
             
                前置測試模型包括2項測試計劃技術(shù):
                其中的第一項技術(shù)是開(kāi)發(fā)基于需求的測試用例。這并不僅僅是為以后提交上來(lái)的程序的測試做好初始化準備,也是為了驗證需求是否是可測試的。這些測試可以交由用戶(hù)來(lái)進(jìn)行驗收測試,或者由開(kāi)發(fā)部門(mén)做某些技術(shù)測試。很多測試團體都認為,需求的可測試性即使不是需求首要的屬性,也應是其最基本的屬性之一。因此,在必要的時(shí)候可以為每一個(gè)需求編寫(xiě)測試用例。不過(guò),基于需求的測試最多也只是和需求本身一樣重要。一項需求可能本身是錯誤的,但它仍是可測試的。而且,你無(wú)法為一些被忽略的需求來(lái)編寫(xiě)測試用例。
                第二項技術(shù)是定義驗收標準。在接受交付的系統之前,用戶(hù)需要用驗收標準來(lái)進(jìn)行驗證。驗收標準并不僅僅是定義需求,還應在前置測試之前進(jìn)行定義,這將幫助揭示某些需求是否正確,以及某些需求是否被忽略了。
             
                同樣的,系統設計在投入編碼實(shí)現之前也必須經(jīng)過(guò)測試,以確保其正確性和完整性。很多組織趨向于對設計進(jìn)行測試,而不是對需求進(jìn)行測試。Goldsmith 曾提供過(guò)15項以上的測試方法來(lái)對設計進(jìn)行測試,這些組織也只使用了其中很小的一部分。在對設計進(jìn)行的測試中有一項非常有用的技術(shù),即制訂計劃以確定應如何針對提交的系統進(jìn)行測試,這在處于設計階段并即將進(jìn)入編碼階段時(shí)十分有用。
             
            (三)在設計階段進(jìn)行計劃和測試設計
                設計階段是做測試計劃和測試設計的最好時(shí)機。很多組織要么根本不做測試計劃和測試設計,要么在即將開(kāi)始執行測試之間才飛快地完成測試計劃和設計。在這種情況下,測試只是驗證了程序的正確性,而不是驗證整個(gè)系統本該實(shí)現的東西。
             
                測試有2種主要的類(lèi)型,這2種類(lèi)型都需要測試計劃。在V模型中,驗收測試最早被定義好,并在最后執行,以驗證所交付的系統是否真正符合用戶(hù)業(yè)務(wù)的需求。與V模型不同的是,前置測試模型認識到驗收測試中所包含的3種成份,其中的2種都與業(yè)務(wù)需求定義相聯(lián)系:即定義基于需求的測試,以及定義驗收標準。但是,第三種則需要等到系統設計完成,因為驗收測試計劃是由針對按設計實(shí)現的系統來(lái)進(jìn)行的一些明確操作定義所組成,這些定義包括:如何判斷驗收標準已經(jīng)達到,以及基于需求的測試已算成功完成。 
                 
                技術(shù)測試主要是針對開(kāi)發(fā)代碼的測試,例如V模型中所定義的動(dòng)態(tài)的單元測試,集成測試和系統測試。另外,前置測試還提示我們應增加靜態(tài)審查,以及獨立的QA測試。QA測試通常跟隨在系統測試之后,從技術(shù)部門(mén)的意見(jiàn)和用戶(hù)的預期方面出發(fā),進(jìn)行最后的檢查.同樣的還有特別測試。我們取名特別測試,并把該名稱(chēng)作為很多測試的一個(gè)統稱(chēng),這些測試包括負載測試、安全性測試、可用性測試等等,這些測試不是由業(yè)務(wù)邏輯和應用來(lái)驅動(dòng)的。
             
                對技術(shù)測試最基本的要求是驗證代碼的編寫(xiě)和設計的要求是否相一致。一致的意思是系統確實(shí)提供了要求提供的,并且系統并沒(méi)有提供不要求提供的。技術(shù)測試在設計階段進(jìn)行計劃和設計,并在開(kāi)發(fā)階段由技術(shù)部門(mén)來(lái)執行。
             
            (四)測試和開(kāi)發(fā)結合在一起
                前置測試將測試執行和開(kāi)發(fā)結合在一起,并在開(kāi)發(fā)階段以編碼-測試-編碼-測試的方式來(lái)體現。也就是說(shuō),程序片段一旦編寫(xiě)完成,就會(huì )立即進(jìn)行測試。普通情況下,先進(jìn)行的測試是單元測試,因為開(kāi)發(fā)人員認為通過(guò)測試來(lái)發(fā)現錯誤是最經(jīng)濟的方式。但也可參考X模型,即一個(gè)程序片段也需要相關(guān)的集成測試,甚至有時(shí)還需要一些特殊測試。對于一個(gè)特定的程序片段,其測試的順序可以按照V模型的規定,但其中還會(huì )交織一些程序片段的開(kāi)發(fā),而不是按階段完全地隔離。
             
                在技術(shù)測試計劃中必須定義好這樣的結合。測試的主體方法和結構應在設計階段定義完成,并在開(kāi)發(fā)階段進(jìn)行補充和升版。這尤其會(huì )對基于代碼的測試產(chǎn)生影響,這種測試主要包括針對單元的測試和集成測試。不管在哪種情況下,如果在執行測試之前做一點(diǎn)計劃和設計,都會(huì )提高測試效率,改善測試結果,而且對測試重用也更加有利。
             
            (五)讓驗收測試和技術(shù)測試保持相互獨立
                驗收測試應該獨立于技術(shù)測試,這樣可以提供雙重的保險,以保證設計及程序編碼能夠符合最終用戶(hù)的需求。驗收測試既可以在實(shí)施階段的第一步來(lái)執行,也可以在開(kāi)發(fā)階段的最后一步執行。

                前置測試模型提倡驗收測試和技術(shù)測試沿循2條不同的路線(xiàn)來(lái)進(jìn)行,每條路線(xiàn)分別地驗證系統是否能夠如預期的設想進(jìn)行正常工作。這樣,當單獨設計好的驗收測試完成了系統的驗證, 我們即可確信這是一個(gè)正確的系統。  (六)反復交替的開(kāi)發(fā)和測試
                在項目中從很多方面可以看到變更的發(fā)生,例如需要重新訪(fǎng)問(wèn)前一階段的內容,或者地跟蹤并糾正以前提交的內容,修復錯誤,排除多余的成分,以及增加新發(fā)現的功能,等等。開(kāi)發(fā)和測試需要一起反復交替地執行。模型并沒(méi)有明確指出參與的系統部分的大小。這一點(diǎn)和V模型中所提供的內容相似。不同的是,前置測試模型對反復和交替進(jìn)行了非常明確的描述。
             
            (七)發(fā)現內在的價(jià)值
                前置測試能給需要使用測試技術(shù)的開(kāi)發(fā)人員、測試人員、項目經(jīng)理和用戶(hù)等帶來(lái)很多不同于傳統方法的內在的價(jià)值。與以前的方法中很少劃分優(yōu)先級所不同的是,前置測試用較低的成本來(lái)及早發(fā)現錯誤,并且充分強調了測試對確保系統的高質(zhì)量的重要意義。前置測試代表了整個(gè)對測試的新的不同的觀(guān)念。在整個(gè)開(kāi)發(fā)過(guò)程中,反復使用了各種測試技術(shù)以使開(kāi)發(fā)人員、經(jīng)理和用戶(hù)節省其時(shí)間,簡(jiǎn)化其工作。 
              
                通常情況下,開(kāi)發(fā)人員會(huì )將測試工作視為阻礙其按期完成開(kāi)發(fā)進(jìn)度的額外的負擔。然而,當我們提前定義好該如何對程序進(jìn)行測試以后,我們會(huì )發(fā)現開(kāi)發(fā)人員將節省至少20%的時(shí)間。雖然開(kāi)發(fā)人員很少意識到他們的時(shí)間是如何分配的,也許他們只是感覺(jué)到有一大塊時(shí)間從重新修改中節省下來(lái)可用來(lái)進(jìn)行其它的開(kāi)發(fā)。保守地說(shuō),在編碼之前對設計進(jìn)行測試可以節省總共將近一半的時(shí)間,這可以從以下方面體現出來(lái):
              針對設計的測試編寫(xiě)是檢驗設計的一個(gè)非常好的方法,由此可以及時(shí)避免因為設計不正確而造成的重復開(kāi)發(fā)及代碼修改。通常情況下,這樣的測試可以使設計中的邏輯缺陷凸顯出來(lái)。另一方面,編寫(xiě)測試用例還能揭示設計中比較模糊的地方??偟膩?lái)說(shuō),如果你不能勾畫(huà)出如何對程序進(jìn)行測試,那么程序員很可能也很難確定他們所開(kāi)發(fā)的程序怎樣才算是正確的。 

                測試工作先于程序開(kāi)發(fā)而進(jìn)行,這樣可以明顯地看到程序應該如何工作,否則,如果要等到程序開(kāi)發(fā)完成后才開(kāi)始測試,那么測試只是查驗開(kāi)發(fā)人員的代碼是如何運行的。而提前的測試可以幫助開(kāi)發(fā)人員立刻得到正確的錯誤定位。 
              在測試先于編碼的情況下,開(kāi)發(fā)人員可以在一完成編碼時(shí)就立刻進(jìn)行測試。而且,她會(huì )更有效率,在同一時(shí)間內能夠執行更多的現成的測試,她的思路也不會(huì )因為去搜集測試數據而被打斷。 
                
                即使是最好的程序員,從他們各自的觀(guān)念出發(fā),也常常會(huì )對一些看似非常明確的設計說(shuō)明產(chǎn)生不同的理解。如果他們能參考到測試的輸入數據及輸出結果要求,就可以幫助他們及時(shí)糾正理解上的誤區,使其在一開(kāi)始就編寫(xiě)出正確的代碼。 
              前置測試定義了如何在編碼之前對程序進(jìn)行測試設計,開(kāi)發(fā)人員一旦體會(huì )到其中的價(jià)值,就會(huì )對其表現出特別的欣賞。前置方法不僅能節省時(shí)間,而且可以減少那些令他們十分厭惡的重復工作。

            原文轉自:http://kjueaiud.com

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>