優點是能夠較早地發現在主要控制方面的問題。
自底向上集成是從樹的葉子開始,并編寫相應的測試驅動程序來代替調用的模塊。相對自頂向下集成需要開發的樁,要開發的測試驅動的數量要少些。大多數系統在接近葉模塊時,都有高扇出低扇入的特點,扇出是指該模塊直接調用的下級模塊的個數;扇入是指直接調用該模塊的上級模塊的個數。但是測試驅動程序比樁程序復雜。
上圖是一個自底向上集成的過程。隨著集成層次向上移動,驅動程序將大為減少。如果對程序模塊結構的最上面兩層模塊采用自頂向下進行集成和測試,可以明顯地減少驅動模塊的數目,而且可以大大減少把幾個系統集成起來所需要做的工作。
自底向上集成方式的缺點是“程序一直未能作為一個實體存在,直到最后一個模塊加上去后才形成一個實體”。就是說,在自底向上集成和測試的過程中,對主要的控制直到最后才接觸到。
優點是不需要樁程序,同時由于涉及到復雜算法和真正輸入/輸出的模塊最先得到集成和測試,可以把最容易出問題的部分在早期解決。此外,自底向上集成的方式可以實施多個模塊的并行測試,提高測試效率。
混合集成測試就是把前面介紹的兩種方式結合起來進行集成和測試。這樣可以兼具兩者的優點。下面介紹3種常見的混合式增殖方式:
衍變的自頂向下的增殖方式:它的基本思想是強化對輸入/輸出模塊和引入新算法模塊的測試,并自底向上集成為功能相當完整且相對獨立的子系統,然后由主模塊開始自頂向下進行增殖測試。
自底向上- 自頂向下的增殖測試:它首先對含讀操作的子系統自底向上直至根結點模塊進行集成和測試,然后對含寫操作的子系統作自頂向下進行集成與測試。
回歸測試:這種方式采取自頂向下的方式測試所修改的模塊及其子模塊,然后將這一部分視為子系統,再自底向上測試,以檢查該子系統與其上級模塊的接口是否匹配。
原文轉自:http://www.anti-gravitydesign.com