簡體   English   中英

如何編寫自動化測試-將測試用例作為函數或將測試用例作為類

[英]How to write automated tests - Test case as a function or test case as a class

我在測試自動化中遇到設計問題:-

要求-需要通過自動化框架測試不同的服務器(使用UNIX控制台而不是GUI)。 我要運行的測試-單元,系統,集成

問:在設計測試用例時,我認為測試用例應該成為測試套件的一部分(測試套件是一個類),就像在Python的pyunit框架中一樣。 但是,我們應該將測試用例保留為可擴展的自動化框架的功能還是應該將測試用例保留為單獨的類(每個類都有各自的設置,運行和拆卸方法)? 從自動化的角度來看,將測試用例作為一類的想法是否更具可擴展性,可維護性或功能性?

通常,將測試用例用作類而不是函數,因為每個測試用例都有自己的設置數據和初始化機制。 將測試用例實現為單個功能不僅會使得在運行任何測試用例之前難以設置測試數據,而且是的,如果您運行的是相同的測試場景,則可以在測試用例類中使用不同的測試方法。

以下是我的意見:

將測試編寫為函數的優點:

  • 如果您需要該測試用例的任何先決條件,則只需調用另一個提供先決條件的函數即可。 對拆卸步驟執行相同的操作
  • 對於團隊中的新手來說看起來很簡單。 通過將測試視為函數可以輕松理解正在發生的事情

將測試編寫為函數的缺點:

  • 不可維護-因為如果存在大量需要相同先決條件的測試,則測試用例作者必須維護調用測試用例中的每個必備功能。 測試用例中的每個拆解都相同

  • 如果在許多測試用例中有如此多的對此類必備功能的調用,並且產品功能等發生任何變化,則您必須在許多地方再次手動進行工作。

將測試用例編寫為類的優點:

  • 設置,運行和拆卸均已明確定義。 測試先決條件很容易理解
  • 如果存在要執行某項操作的Test 1,並且將Test 1的結果用作Test 2和3中的設置先決條件,則可以輕松地從Test 1繼承它,並調用其設置,首先運行拆卸方法,然后然后,繼續測試。 這有助於使測試彼此獨立。 在這里,您不需要付出任何努力來維護代碼的實際調用。 由於繼承,它將隱式完成。
  • 有時,如果Test 1的設置方法和Test 2的運行方法可能成為另一個Test 3的先決條件。在這種情況下,只需繼承Test 1和Test 2類,並在Test 3的setup方法中調用測試1的設置和測試2的運行。再次,您不需要維護實際代碼的調用,因為您正在調用setup和run方法,這些方法是從框架的角度進行嘗試和測試的。

將測試用例編寫為類的缺點:

  • 當測試數量增加時,您將無法查看特定的測試並說出它的功能,因為它可能繼承了太多的級別,您無法回溯。 但是,有一個解決方案-在每個測試用例的每種設置,運行,拆卸方法中編寫文檔字符串 並且,編寫一個自定義包裝器以為每個測試用例生成文檔字符串。 在繼承過程中/之后,您應該提供一個選項,以將特定函數的文檔字符串(設置,運行,拆卸)添加/刪除到繼承的函數中。 這樣,您可以運行該包裝器並從其文檔字符串獲取有關測試用例的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM