乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      軟件測試系列

       huowufenghuang 2018-08-16

      一、集成測試(Integration Testing)的概念

      集成測試(Integration Testing)是在單元測試的基礎上,將所有模塊按照概要設計要求組裝成為一個子系統(tǒng)或者系統(tǒng),進行集成測試。

      二、集成測試關注的重點

      一些模塊雖然能夠單獨工作,但并不能保證連接起來也能正常的工作,程序在某些局部反映不出來的問題,在全局上很可能暴漏出來,影響功能的實現(xiàn),因此集成測試應當考慮兩大(5個)問題:

      1、模塊間的接口(接口的覆蓋率)

      (1)在把各個模塊連接起來的時候,穿越模塊接口的數(shù)據(jù)是否會丟失。
      
      (2)全局數(shù)據(jù)結構是否有問題,會不會被異常修改。

      2、集成后的功能(參數(shù)的傳遞)

      (1)各個子功能組合起來,能否達到預期要求的父功能。
      
      (2)一個模塊的功能是否會對另一個模塊的功能產生不利的影響。
      
      (3)單個模塊的誤差積累起來,是否會放大,從而達到不可接受的程度。

      三、集成測試的三個級別

      由于集成的力度不同,一般可以把集成測試劃分為三個級別:

      1、模塊內集成測試。

      2、子系統(tǒng)內集成測試。

      3、子系統(tǒng)間集成測試。

      四、集成測試策略

      集成測試策略最主要的有三種:

      1、大爆炸集成(Big Bang Integration)。
      
      2、自頂向下集成(Top-Down Integration)。
      
      3、自底向上集成(Bottom-up Integration)。

      基于以上三種測試策略,又提出了以下五種集成測試策略,它們都是在上面的三種主要測試策略的基礎上進行綜合,改進而成的。

      1、三明治集成(Sandwich Integration)。
      
      2、基干集成(Backbone Integration)。
      
      3、分層集成(Layers Integration)。
      
      4、基于功能的集成(Function-Based Integration)。
      
      5、基于進度的集成(Schedule-Based Integration)   

      下面我們詳細的介紹一下這幾種集成測試策略。

      1、大爆炸集成(Big Bang Integration)

      (1)概念:大爆炸集成(Big Bang Integration)是屬于非增值式集成(Non-Incremental Integration)的一種方法,也叫一次性組裝貨整體拼裝。該集成把所有組件一次性集合到被測系統(tǒng)中,不考慮組件之間的相互依賴性或者可能存在的風險。
      
      (2)目的:在最短的時間內把系統(tǒng)組裝起來,并且通過最少的測試來驗證整個系統(tǒng)。
      
      (3)策略:在大爆炸這種集成方法中,首先需要對每個模塊進行單元測試,然后把所有單元組裝到一起進行測試,最終得到要求的軟件系統(tǒng)。
      
      (4)優(yōu)點:
          *在有利的情況下,大爆炸集成可以迅速完成集成測試,并且只要極少數(shù)的驅動單元和樁單元(如果需要的話)。
          *需要的測試用例最少。     
          *方法比較簡單。        
          *可以并行開展,對人力、物力的資源利用率較高。
      
      (5)缺點:
          *這種在單元測試的基礎上,將所有組件一次性進行組裝,不考慮組件之間的依賴性,雖然簡單,但是由于程序中不可避免的存在模塊間接口、全局數(shù)據(jù)結構等方面的問題,所以一次試運行成功的可能性并不大。
          *在發(fā)現(xiàn)錯誤的時候,問題定位和修改都比較困難。
          *即使被測系統(tǒng)能夠被一次性集成,但還是會有很多接口問題可以躲過集成測試而進入到系統(tǒng)測試。
      
      (6)適用范圍:
          *一個維護性項目(或者功能增強型項目),以前的產品已經很穩(wěn)定,并且新增的項目只有少數(shù)幾個組件被增加或者修改。
          *被測系統(tǒng)比較小,并且它的每個組件都進行了充分的單元測試。

      2、自頂向下集成(Top-Down Integration)

      (1)概念:自頂向下集成(Top-Down Integration)采用了和設計一樣的順序進行測試,它在第一時間內對系統(tǒng)的控制接口進行驗證,其中頂層的組件具有控制的責任,首先測試頂層的組件,然后逐步測試處于底層的組件,這種集成方式可以采用深度優(yōu)先策略和廣度優(yōu)先策略。
      
      (2)目的:從頂層開始控制,采用和設計一樣的思路對系統(tǒng)進行測試,以驗證系統(tǒng)的接口穩(wěn)定性。
      
      (3)策略:
          *以主模塊為所測模塊兼驅動模塊,所有直屬于主模塊下的下屬模塊全部用樁單元代替,對主模塊進行測試。
          *采用深度優(yōu)先(Depth-First)或者廣度優(yōu)先(Breath-First)的策略,用實際模塊替換相應樁模塊,再用樁模塊代替它們的直接下屬模塊,與已經測試的模塊組成新的子系統(tǒng)或者系統(tǒng)。
      
      (4)優(yōu)點:
          *自頂向下這種集成方式,在測試過程中較早的驗證了主要的控制和判斷點,如果主要控制有問題,盡早發(fā)現(xiàn)它能夠減少以后的返工,所以這是十分必要的。
          *如果采用深度優(yōu)先的策略,就可以首先實現(xiàn)和驗證一個完整的軟件功能,可以先對邏輯輸入的分支進行組裝和測試,檢查和客服潛藏的錯誤和缺陷,驗證功能的正確性,為之后對主要加工分支的組裝和測試提供了保證。       
          *功能的可行性較早得到了證實。     
          *最多只需要一個驅動模塊,減少了驅動模塊的費用開支,也減輕了后期對驅動模塊的維護。
          *由于該方法和設計的思路是一樣的,所以可以和設計并行開展,如果目標環(huán)境或者設計需要改變,這種方式也可以靈活的適應。
          *支持故障隔離。例如:A模塊測試正常,但是假如B模塊之后,出現(xiàn)問題,那么可以確定,要么就是B模塊有問題,要么就是A模塊和B模塊之間的接口有問題。
      
      (5)缺點:
          *樁在每個測試中都必須提供,所以樁的開發(fā)和維護是該策略的最大成本。
          *底層組件中的一個無法預計的需要可能會導致許多頂層組件的修改,這破壞了部分先前構造的測試包。
          *底層組件行為的驗證被推遲了。
          *隨著底層模塊的不斷增加,系統(tǒng)越來越復雜,導致底層模塊的測試肯那個不夠充分,尤其是那些被重用的模塊。
      
      (6)適用范圍:
          *產品控制結構比較清晰和穩(wěn)定。
          *產品的高層借口比較穩(wěn)定,底層變化比較頻繁。
          *產品的控制模塊可能存在技術風險,需要較早被驗證。
          *希望盡早能夠看到產品的系統(tǒng)功能行為。

      3、自底向上集成(Bottom-up Integration)

      (1)概念:自底向上集成(Bottom-up Integration)方式是從程序模塊結構的最底層的模塊開始組裝和測試,因為模塊是自底向上進行測試的,對于一個給定層次的模塊,它的子模塊已經組裝并測試完成,所以不再需要樁模塊。需要從子模塊中得到的信息可以直接運行子模塊得到。
      
      (2)目的:從具有最小依賴性的底層組件開始按照依賴關系樹的結構,逐層向上集成,以驗證整個系統(tǒng)的穩(wěn)定性。
      
      (3)策略:
          *起始于系統(tǒng)的最底層模塊,也可以把多個子模塊合并到一起進行測試。
          *使用驅動模塊對選定的模塊進行測試。
          *用實際模塊代替驅動模塊,與它已經測試過的子模塊組裝成為一個更大的模塊組進行測試。
          *重復上面的步驟,直到系統(tǒng)最頂層模塊加入到已測系統(tǒng)中。
      
      (4)優(yōu)點:
          *允許對底層模塊行為的早期驗證。
          *在工作的最初可以采用并行進行集成,比自頂向下的測試效率高。      
          *由于驅動模塊是額外編寫的,而不是實際的模塊,所以對實際被測模塊的可測試性要求比自頂向下的測試策略要小。        
          *減少了樁模塊的工作量。
          *故障隔離。
      
      (5)缺點:
          *驅動模塊的開發(fā)工作量比較大。
          *對高層的驗證被推遲到最后,設計上的錯誤不能盡早的被發(fā)現(xiàn),尤其對于那些控制機構在整個體系中比較關鍵的產品。
          *隨著集成到了頂層,整個系統(tǒng)將變得越來越復雜,并且對于底層的一些異常很難覆蓋。
      
      (6)適用范圍:
          *采用契約式開發(fā)(Design by Contract)的產品。
          *底層接口比較穩(wěn)定的產品。
          *高層接口變化比較頻繁的產品。
          *底層模塊較早被完成的產品。

      4、三明治集成(Sandwich Integration)

      由于自頂向下集成策略和自底向上集成策略都有各自的缺點,所以就出現(xiàn)了一種結合這兩種測試策略的集成方式,即:三明治集成。

      (1)概念:三明治集成(Sandwich Integration)有時也被稱為混合式集成,三明治集成就是把系統(tǒng)劃分為三層,中間一層為目標層,測試的時候,對目標層上面的一層使用自頂向下的集成策略,對目標層下面的一層使用自底向上的集成策略,最后測試在目標層會合。
      
      (2)目的:綜合自頂向下的集成測試策略和自底向上的集成測試策略的優(yōu)點。
      
      (3)策略:
          *首先對目標層上面的一層采用自頂向下的測試策略,對主模塊A進行測試,對A調用的子模塊(目標層)用樁單元代替。
          *其次對目標層下面的一層采用自底向上的測試策略。
          *最后將三層集成在一起。
      
      (4)優(yōu)點:集合了自頂向下和自底向上的兩種集成策略的優(yōu)點。
      
      (5)缺點:中間層在被集成前測試不充分。
      
      (6)適用范圍:大部分軟件開發(fā)項目都可以使用這種集成策略。

      5、基干集成(Backbone Integration)

      (1)概念:在很多系統(tǒng)中,尤其在嵌入式系統(tǒng)中,一般可以劃分成兩個部分:內核部分(基干部分)和外圍應用部分,這兩部分經常會被不同的項目組并發(fā)開發(fā)。
      
      (2)目的:結合自頂向下,自底向上和大爆炸集成的元素,以驗證緊密耦合的子系統(tǒng)間的互操作性。
      
      (3)策略:
          *對基干中的每個模塊進行單獨的充分的測試,必要時使用驅動和樁。
          *對基干中所有的模塊進行大爆炸集成,形成基干子系統(tǒng),并使用一個驅動模塊檢查經過大爆炸的基干。
          *對應用的控制子系統(tǒng)進行自頂向下的集成。
          *把基干和控制子系統(tǒng)進行集成,重新構造控制子系統(tǒng)。
          *對個應用子系統(tǒng)采用自底向上的集成策略。
          *集成基干子系統(tǒng),控制子系統(tǒng)和各應用子系統(tǒng)形成整個系統(tǒng)。
          
      (4)優(yōu)點:具有三明治集成的優(yōu)點,更適合于大型復雜項目的集成。
      
      (5)缺點:
          *必須對系統(tǒng)的結構和相互依存性進行仔細的分析。
          *必須開發(fā)樁和驅動模塊,并且由于被測系統(tǒng)的復雜性導致這些模塊開發(fā)工作量的加大,可以通過復用技術在一定程度上降低成本。
          *由于局部采用了大爆炸的策略,所以有些接口可能測試不完整。
      
      (6)適用范圍:適合大型復雜的項目
          *具有多層協(xié)議的嵌入式系統(tǒng)。
          *操作系統(tǒng)產品

      6、分層集成(Layers Integration)

      (1)概念:分層模型在通訊系統(tǒng)中很常見,分層集成就是針對這個特點使用的一種集成。
      
      (2)目的:通過增量式集成的方法驗證一個具有層次性體系結構的應用系統(tǒng)的穩(wěn)定性和互操作性。
      
      (3)策略:
          *劃分系統(tǒng)的層次。
          *確定每個層次內部的集成策略,該策略可以使用大爆炸集成,自頂向下集成,自底向上集成和三明治集成中的任何一種策略,一般對于頂層可能還有第二層的內部采用自頂向下的集成策略;對于中間采用自底向上的集成策略,對于底層主要采用進行單獨測試。
          *確定層次間的集成策略,該策略可以使用大爆炸集成,自頂向下集成,自底向上集成和三明治集成中的任何一種策略。
      
      (4)優(yōu)缺點:因為每個層次間和層次內部采用的策略不同,所以優(yōu)缺點也就是和它采用的測試策略相對應。
      
      (5)適用范圍:有明顯線性層次關系的產品系統(tǒng)。

      7、基于功能的集成(Function-Based Integration)

      (1)概念:在開發(fā)過程中,盡早的看到系統(tǒng)主要功能的實現(xiàn),對于談對來說也是很有必要的,基于功能的集成是從功能角度出發(fā),按照功能的關鍵程度對模塊的集成順序進行組織。
      
      (2)目的:采用增值的方法,盡早的驗證系統(tǒng)關鍵功能。
      
      (3)策略:
      
          *確定功能的優(yōu)先級別。
          *分析優(yōu)先級別最高的功能路徑,把該路徑上的所有模塊集成到一起,必要時使用樁模塊和單元模塊。
          *增加一個關鍵功能,繼續(xù)上面一個步驟,直到所有模塊都被集成到被測系統(tǒng)中。
          
      (4)優(yōu)點:
      
          *采用該方法,可以盡快的看到關鍵功能的實現(xiàn),并驗證關鍵功能的正確性。
          *由于該方法在驗證某個功能的時候,可能會加入多個模塊,因此在進度上,比自頂向下和自底向上還有三明治的集成策略要快一點。
          *接口的覆蓋使用的測試用例比較少。
          *可以減少驅動模塊的開發(fā)
      
      (5)缺點:
      
          *對于復雜的系統(tǒng),功能之間的相互關聯(lián)性可能是錯綜復雜并難以分析的。
          *對有些接口的測試不充分,會丟失許多接口錯誤。
          *一些初始的集成需要使用樁模塊。
          *可能會有比較大的冗余測試。
      
      (6)適用范圍:
      
          *關鍵功能具有較大風險的產品。
          *技術探索性的項目,其功能的實現(xiàn)遠比質量更關鍵。
          *對于功能的實現(xiàn)沒有把握的產品。
          

      8、基于進度的集成(Schedule-Based Integration)

      (1)概念:進度壓力在我們實際的工作中,每個軟件開發(fā)項目都會遇到,。
      為了完成進度,有可能會犧牲質量,基于進度的集成就是在兼顧質量和進度兩者之間尋找了一個均衡點。
      
      (2)目的:盡可能早的進行集成測試,提高開發(fā)與集成的并行性,有效的縮短進度。
      
      (3)策略:這個集成的策略就是把最早可獲得的代碼拿來激勵進行集成,必要的時候開發(fā)樁模塊和驅動模塊,子啊最大程度上保持與開發(fā)的并行性,從而縮短了項目集成的時間。
      
      (4)優(yōu)點:
      
          *具有比較高的并行度。
          *有效縮短項目開發(fā)的進度。
              
      (5)缺點:
      
          *可能最早拿到的模塊之間缺乏整體性,只能進行獨立的集成,導致許多接口必須等到后期才能驗證,但此時系統(tǒng)可能已經很復雜,往往無法發(fā)現(xiàn)有效的接口問題。
          *樁模塊和驅動模塊的工作量可能會變得很龐大。
          *由于進度的原因,模塊可能很不穩(wěn)定且會不斷變動,導致測試的重復和浪費。
      
      (6)適用范圍:進度優(yōu)先級高于質量的項目。

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多