• 軟體測試術語表
  • 首頁

軟體測試 - 自底向上測試



軟體測試分為多個階段,即單元測試、整合測試、系統測試和驗收測試。自底向上方法是整合測試下的一個概念,其中透過組合多個元件進行驗證,然後根據程式原始碼的控制流從下往上移動到頂部。

什麼是軟體自底向上測試?

軟體自底向上測試是整合測試的一種,其中首先測試每個元件,然後逐步將其與其他元件組合起來形成複雜的系統,直到測試整個軟體。先驗證較低級別的元件,然後是較高級別的元件。

自底向上測試是一種使用者友好的測試方法,有助於提高軟體質量。讓我們以一輛汽車為例,它由多個模組組成,例如制動器、發動機、車輪、方向盤、燃油控制等。首先分別測試每個單獨的模組,然後與其他模組整合。例如,首先驗證制動系統,然後與方向盤結合。整合後,測試兩個模組之間的通訊、流程、同步等。兩者都應該能夠作為一個單元工作。因此,它有助於儘早發現錯誤,而不是在整輛汽車製造完成後再進行測試。

執行自底向上測試的步驟

執行軟體自底向上測試的步驟如下:

步驟1 - 透過組合較低級別的元件建立組。

步驟2 - 實現用於驗證的控制程式。這稱為驅動程式,它有助於調節測試用例的輸入和輸出。

步驟3 - 只對底層元件進行測試。

步驟4 - 最後,移除驅動程式,並將各個叢集透過從下往上移動到整個程式流程中組合起來。

自底向上測試示例

上圖顯示了自底向上測試的架構:

Bottom Up Testing

這裡,各個元件如元件1和2所示組合在一起。然後,在驅動程式A和B的幫助下,必須驗證每個元件。測試完成後,移除兩個驅動程式,並將元件1和2與模組A整合,我們可以向上移動到其他頂級模組。

自底向上整合 - 流程圖

自底向上測試由以下流程圖表示:

Bottom Up Testing in Test Life Cycle

自底向上方法的整合順序將是:

4,2
5,2
6,3
7,3
2,1
3,1

測試方法

+ Firstly, Test 4,5,6,7 individually using drivers.
+ Test 2 such that it calls 4 and 5 separately. 
If an error occurs we know that the problem is in one of the modules.
+ Test 1 such that it calls 3 and If an error occurs we know that
the problem is in 3 or in the interface between 1 and 3

雖然頂級元件最重要,但使用此策略最後進行測試。在自底向上方法中,在測試元件4、5、6、7時,元件2和3由驅動程式替換。它們通常比樁程式更復雜。

自底向上測試的優點

自底向上測試的優點如下:

  • 設計和提出不同的測試條件是一個非常簡單的過程。
  • 可以很快得出測試結果。
  • 不需要了解軟體的內部工作原理。
  • 低層元件經過徹底測試,並與面向物件的體系結構相容。
  • 它有助於在軟體開發生命週期 (SDLC) 的早期階段發現錯誤。
  • 它透過將複雜模組分解成更小的單元然後驗證它們來簡化測試過程。
  • 它提供了軟體的模組化和易維護性。
  • 它提高了軟體的整體質量和效能。

自底向上測試的缺點

自底向上測試的缺點如下:

  • 在頂級模組中,進行自底向上測試變得困難。
  • 對於複雜的軟體,完成自底向上測試需要大量時間,其中需要在與其他元件組合之前驗證各個元件。
  • 它不涵蓋軟體的系統級功能的測試,因為只有在所有元件整合後,它們才準備就緒。
  • 它需要構建驅動程式和樁程式才能完成自底向上測試。

我們為什麼要執行自底向上測試?

執行自底向上測試的原因如下:

  • 它有助於在軟體開發生命週期 (SDLC) 的早期階段識別缺陷。
  • 在與其他元件整合之前測試各個元件,因此自底向上測試有助於實現有效的除錯。
  • 這是一種增量方法。
  • 它儘早識別軟體中的潛在風險。
  • 自底向上測試的增量和迭代方法使其與敏捷開發方法相容。

結論

本教程對軟體自底向上測試進行了全面講解。我們首先介紹了什麼是軟體自底向上測試,執行軟體自底向上測試的步驟,自底向上測試的示例,自底向上測試的優點和缺點,以及為什麼要執行自底向上測試。這將使您深入瞭解軟體自底向上測試。建議您多加練習所學內容,並探索與軟體測試相關的其他知識,以加深理解,拓寬視野。

廣告