系統測試端到端地 驗證一個軟件應用程序。因而,它們引入了一個更高級別的架構復雜度:整個應用程序必需為要進行的系統測試而運行。如果是一個 Web 應用程序,您就需要訪問數據庫以及 Web 服務器、容器和任何與運行系統測試相關的配置。其遵循這樣的原則,即大多數系統測試都在軟件生命周期的較后周期中編寫。
編寫系統測試是個挑戰,也需要大量的時間來實際地執行。而另一方面,就架構性代碼覆蓋率來講,系統測試是一件極為劃算的事情。
系統測試和功能測試很相似。所不同的是,它們并不仿效用戶,而是模擬出 一個用戶。與在組件測試中一樣,現在創建了大量的框架來為這些測試提供方便。例如,jWebUnit 通過模擬一個瀏覽器來測試 Web 應用程序。
![]() |
|
所以,您的單元測試套件就是名副其實的包括單元測試、組件測試和系統測試的套件。不僅如此,在檢查了這些測試后,您現在知道構建花了三個小時的原因是:絕大部分時間都被組件測試所占用。下一個問題是,如何用 JUnit 實現測試分類?
有幾種方式可選,但這里我們只關注于其中兩種最簡單的方式:
- 根據所需種類創建定制的 JUnit 套件文件。
- 為每種測試類型創建定制目錄。
![]() |
|
可以使用 JUnit 的 TestSuite
類(屬于 Test
類型)來定義許多互相歸屬的測試。首先,創建一個 TestSuite
實例,并為其添加相應的測試類或測試方法。然后,可以通過定義一個叫做 suite()
的 public static
方法,在 TestSuite
實例中指定 JUnit。包含的所有測試隨后將在單個運行中執行。因而,可以通過創建單元 TestSuite
、組件 TestSuite
和系統 TestSuite
來實現測試分類。
例如,清單 1 中顯示的類創建了一個 TestSuite
,其持有 suite()
方法中所有的組件測試。請注意此類并不是非常特定于 JUnit 的。它既沒有擴展 TestCase
,也沒有定義任何測試用例。但它會反射性地找到 suite()
方法并運行由它返回的所有測試。
文章來源于領測軟件測試網 http://www.kjueaiud.com/