parasoft Jtest 使用教程:單元測試和用例生成詳細解析

  • parasoft Jtest 使用教程:單元測試和用例生成詳細解析

單元測試和測試用例的生成可謂是整個測試過程的核心和重點,今天就給大家解析這兩個概念,讓大家對這兩點有更加深刻的理解,當然你也可以在評論區發表你的看法喲~

parasoft Jtest介紹和試用>>>

單元測試

“單元測試”是指在最簡單的功能點測試軟件代碼,該功能點通常是單個類,或者一個函數。單元測試通常由開發人員在項目開發週期內執行,而不是在 QA 階段進行。通過使用單元測試,您可以確保應用程序構建塊在集成之前的可靠性,從而提高整個應用程序的質量。如果測試進行得早,則識別和修正缺陷的難度通常較低耗時也較少

手動單元測試通常涉及手工編寫測試集、指定輸入數據以及爲缺少的函數提供樁函數。 Jtest 可將這些任務自動化,以使得單元測試更有效率,更具一致性

通常,單元測試可能包括:

  • 異常測試(也稱爲白盒測試、應力測試、結構測試或可靠性測試),用來確認代碼的結構可靠性,能處理所有可行的輸入以及輸入組合,不會產生預料之外的異常。
  • 功能測試,用於驗證所建立模塊是否符合需求和功能是否正常工作。在單元級別創建功能測試涉及到人工輸入,以指定特定的輸入和狀態條件、以及預期的輸出。功能測試可以作爲白盒測試來實施(在瞭解接受測試的單元的內部組織和實現的情況下進行測試),或者黑盒測試,後者僅基於接受測試的單元的外部行爲進行。
  • 迴歸測試,用來驗證現有代碼行爲不會隨着代碼庫改進而更改。完成此測試的通常做法是,開發一組測試,驗證它們的正確性,在代碼更改之後運行它們,以捕獲代碼行爲中的偏差。迴歸測試可能要依賴於異常測試和功能測試。

Jtest 可以執行上述所有類型的單元測試;可以自定義所執行測試的級別和範圍,以便體現您的需求和測試習慣。

當您運行 Jtest 自動生成的測試用例時,請執行異常測試。此類測試可暴露意料之外的異常,並檢查類在結構方面是否合理。可靠性測試能否成功,取決於代碼是否能完全覆蓋,因此必要時,您可能會想要擴展自動生成的測試用例,以增強代碼覆蓋率。Jtest 可測量測試覆蓋率,以有助於您評估覆蓋率,並確定哪些地方需要附加測試。

當您擴展自動生成的測試用例,以驗證類的公共接口是否按照規範所述運行時,請執行功能測試。此外,如果你的規格說明公共接口需要由合同來設計。但您執行自動生成的單元測試用例,Jtest執行功能性測試。更重要的是,Jtest Tracer可以自動生成符合實際的功能性測試測試用例,這些測試用例在運行應用程序的過程中捕獲代碼的行爲(例如,使用用例執行應用程序)

迴歸測試涉及到定期測試改進的代碼庫,其做法是運行所有可用的測試用例,並檢查預期的結果是否發生更改。在當前測試的測試用例結果與預期的測試用例結果不匹配時,Jtest 會報告錯誤消息。

此外,Jtest可以配置來觀察內存使用情況和報告任何檢測到的內存泄露問題。如果內存泄露檢測是可用的,在測試用例執行過程中,Jtest監控對象分配事件和對象銷燬事件。如果它被分配了但在測試結束時,垃圾回收器沒有銷燬該對象,則該對象被認爲是泄露的。每一個測試被執行三次,以確保泄露的內存沒有初始化或緩存。如果Jtest確定泄露發生,它報告三次測試執行中最小的泄露和標記哪些內存被分配的行的位置。

測試用例生成

編寫單元測試是一項重要任務,它確保了代碼的質量。單元測試不僅能暴露錯誤和功能問題,而且能作爲常規的迴歸測試運行,以有助於您確定代碼的添加/修改是否破壞了現有功能,或者是否造成意外的更改。

不過,編寫測試是一項耗時的工作,如果不仔細就可能會遺漏重要的情況。Jtest 提供的單元測試支持,可幫助開發人員和測試人員非常快速地創建良好的單元測試。Jtest 之所以能提供幫助,是因爲它自動生成許多單元測試,允許用戶自定義測試生成和執行,以符合他們的參數選擇和需求。

Jtest 自動生成大量測試用例,這些測試用例會試圖執行代碼中的所有不同路徑,然後保存實際的測試用例結果。從本質上來講,這些測試用例就好比在對代碼的當前狀態照 x 射線,在修改代碼之前拍攝代碼運行情況的快照。它們還有助於識別可能影響代碼可靠性和安全性的潛在異常狀況。

Jtest 可以爲任何Java代碼生成從單個函數到整個項目的測試用例。通過在Jtest 中運行這些測試用例,您可以驗證類的健壯性,識別可能造成程序進入不一致狀態或終止狀態的輸入。您可以自定義預先配置的測試方式、以及特定的測試生成設置。

測試用例可以用C 或 C++ 源碼來實現和保存(所用語言取決於要測試的原始源碼)。這些測試用例使用與通用的 CppUnit 格式類似的格式。C++test 的測試提供了比 CppUnit 更廣泛的功能,包括可以測試C代碼、並在測試框架內提供對私有和保護成員數據以及成員函數進行訪問的功能。

現有 CppUnit 測試用例可以導入到 C++test 中,與自動生成的測試用例配合使用。可以通過用戶定義的測試用例對測試套件進行擴展,以改進測試覆蓋率並驗證特定的功能;可以通過修改自動生成的測試用例、或定義新的測試用例,來添加這些測試。對於迴歸測試,可以自動驗證和配置任何可用的測試用例。通過保存所有可用的測試用例,並充分將它們用於自動迴歸測試,您可以建立一個迴歸測試基礎結構,快速地識別因代碼修改而引入的意外功能更改和異常。

自動測試用例生成的功能,允許您在更短的時間內創建更有效的測試套件。測試用例的開發,歷來是單元測試過程中最耗時的部分。通過使用 Jtest,您無需編寫任何代碼以生成一組使用每一個類的基礎測試用例,您可以通過向自動生成的測試用例添加少量代碼來創建更多的測試用例。通常,您無需爲簡單方法編寫測試用例而擔心,可以將資源集中於更復雜方法的擴展/添加測試。

而且,自動測試用例生成可通過以下兩種重要途徑,有助於您預防發生錯誤:

  • 它使您能夠在完成類的編寫或修改之後,立即生成和執行測試用例。這有助於您找到並糾正錯誤,以免您(或某個團隊成員)無意中因添加問題類代碼或與問題代碼交互而引入附加的錯誤。
  • 它通過自動生成必需的測試用例範圍和類型,使得快速徹底的可靠性測試成爲可能,這是通過手動設計測試用例所無法達到的。Jtest 會試圖創建測試用例,執行所測試的全部方法的各種可能分支。例如,如果方法包含一個條件語句(例如 if 塊),Jtest 會試圖生成測試用例,以測試 if 語句的 true 和 false 結果。

查看更多測試分析資訊和產品推薦>>>


查看更多parasoft測試產品

<詳詢客服>獲取更多活動信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章