十大流行的無腳本測試方案

十大流行的無腳本測試方案

【51CTO.com快譯】在傳統的軟件開發中,測試專業人​​員除了手動進行各種測試以外,更多時候需要依賴自動化的測試工具,來反覆執行某些相同的測試任務。對於一些按照硬編碼值執行、且無需任何修改的簡單測試任務而言,記錄和回放工具能夠通過錄入用戶的操作步驟,在相同的條件下,以相同的方式多次執行相同的步驟。

雖然自動化測試的優勢在於減少了測試大量用例所耗費的時間,但是其劣勢在於必須使用相應的自動化測試腳本。因此,測試人員往往需要花費時間去學習測試目標所對應的編程語言,以滿足特定的測試需求,或是需要四處尋找現有的腳本資源。同時,他們需要維護現有的測試用例,按需進行調整,以跟上測試目標的修改。

另外,自動化測試的缺點還包括:

  • 受限的可定製性:只有當測試人員具有一定的編程技能,並且測試工具能夠支持將測試用例按照其首選的語言予以導出時,才能提供對於測試記錄的定製。
  • 受限於屏幕的大小與分辨率:測試工具在錄製測試對象所處的屏幕位置時,可能會因為在不同場景下,顯示器分辨率的調整,以及應用程序的大小變化,而失去原有的定位和功能。

顯而易見,由於大多數自動化測試任務,都要求能夠使用一系列的測試數據,而且能夠在不同的條件下、以及不同的環境中執行測試,因此,記錄和回放工具只能自動化其中一小部分。

當然,客觀而言,記錄和回放工具對於那些自動化測試的初學者,以及對於應用程序更改並不頻繁的場景而言,確實是理想的解決方案。

在測試界,人們往往把“無腳本自動化測試工具()”與“記錄和回放工具”混為一談。記錄和回放為工作腳本提供了經由硬編碼的輸入值,用戶可以在此基礎上對其進行自定義。而藉助無腳本自動化測試,您可以根據目標應用上的用例,自動生成相應的測試腳本,這是對於傳統記錄和回放功能的升級。因此,無腳本測試自動化是一種更有條理的模型。通過可重用的腳本,用戶能夠輕鬆地自動化大多數測試用例。

經歷了多年的發展與迭代,如今市面上有著許多易於編寫和維護的無腳本測試方案。下面我們來一起討論其中最為流行的十種方案:

1.自然語言處理(NLP)

目前,一些最新的無腳本自動化測試工具能夠通過採用NLP語法,來創建各種測試用例。就像編寫簡單的英語語句一樣,用戶可以輕鬆地實現測試用例的自動化。此類工具一般會帶有AI驅動的內核,因此大幅節省了用戶對其維護的時間。

由於用戶只需要瞭解用於創建測試用例的正確語法,並根據實際情況將其運用於繁簡不同的測試場景中。此類工具的學習曲線並不陡峭。目前市場上用到NLP的典型自動化測試工具包括:Testsigma和Functionize等。

2.基於模型的測試

不同於多數只創建測試腳本的工具,以TOSCA為代表的基於模型的測試技術,可以為被測應用創建自動單元測試(AUT)模型。此類工具一般具有測試用例自動化所需的三個組件:AUT技術細節、測試方案邏輯和測試數據,它們可以在測試中被合併使用。

每當檢測到AUT中的任何更改時,中央模型會自動更新已存儲的有關AUT的所有技術細節。因此,此類測試技術更適合於處理那些需要頻繁進行維護的繁瑣任務。

為了能夠覆蓋所有需要測試的用例,同時忽略掉那些無需涉及的部分,TOSCA除了用到了基於模型的測試技術之外,還會利用基於風險的測試技術,來按需執行測試用例。

3.錄製屏幕截圖

採用“錄製屏幕截圖”作為測試步驟與動作的工具,主要針對的是視覺效果方面的應用測試。當已有的屏幕快照與當前的待測應用之間存在差異時,它們會立即生成相應的報告。

Testim和Screenster是使用此類方法的兩款典型工具:

  • Testim.io以錄製屏幕截圖的形式,記錄下用戶每次操作時測試用例。同時,該工具還提供了重新分組和重用測試步驟的選項。如果出現運行的測試用例與錄製的屏幕截圖不匹配,它認為所記錄的測試用例無效。這款工具旨在通過使用AI,來識別和糾正UI元素的位置、名稱或外觀等變化,進而維護現有的測試用例。
  • 使用類似方法的Screenster,在每次用戶操作完成後,都會捕獲UI屏幕和DOM快照,並將其設置為可視化的基線,用以在測試期間予以比較。在實際測試期間,Screenster會及時獲取UI上新的屏幕截圖,並報告與現有基線之間的差異。Screenster也使用AI來維護各種測試用例。Screenster的智能選擇器會自動定位已被移動或更改的頁面元素。通過發現並調整各種timeouts,它能夠使用AI來判斷並等待正確的時間點,以執行下一步操作。

4.基於圖像的無腳本自動化

Eggplant是一款用到了基於圖像的無腳本自動化的工具。它使用圖像匹配技術來識別被測系統(SUT)中的任何缺陷與故障。

Eggplant使用的是雙模型系統。其中的控制器系統可用來創建與驅動測試,而被測系統則通過VNC連接到控制器上。通過圖像匹配,腳本語言可以在被測系統的UI上自動執行各項操作。

5.基於拖放的對象映射

作為另一種無腳本的自動化測試工具,Ascentialtest直接通過網站拖放,來創建測試動​​作。您只需在被支持的瀏覽器中打開目標應用,然後將所有需要測試的操作逐一拖放到測試工具中即可。針對不同的自動化測試場景,用戶可以按照不同的順序放置不同的測試數據,以進行後續的測試。

6.關鍵字驅動的測試

關鍵字驅動的測試是事先定義好待操作的關鍵字。當帶有這些關鍵字的測試用例發生變化時,後續的測試就能夠輕鬆地捕獲到。而且,用戶無需學習那些用於創建此類測試腳本的編程語言。Testcomplete()是使用關鍵字驅動的測試工具之一。

7.對象驅動測試

作為無腳本測試的另一種方式,對象驅動測試能夠在應用程序中標識出要測試的對象,然後通過向這些對象添加操作,來創建相應的測試步驟。Worksoft工具就用到了此類方法。它可以識別自動化的企業級應用程序(如:SAP),並對其執行各種操作。

8.通過流程圖進行可視化測試

Codefuse允許用戶以流程圖,而不是腳本的形式,來自動化測試各種流程。此類測試專注於流程圖中的兩種組件:條件與動作。用戶不需要掌握任何腳本知識,只需要明白流程圖的基本知識、以及流程所適用的場景,便可根據不同條件,在同一套工作流中自動執行多個分支。

9.將測試記錄為腳本

將測試記錄為腳本,是Selenium IDE、Katalon IDE()、以及Ranorex採用的傳統測試方法。可作為瀏覽器擴展的Selenium IDE和Katalon IDE只能記錄瀏覽器的行為。而Ranorex則不僅限於測試網站,它提供單獨的應用程序來打開相應的集成記錄器。

此類測試工具通過命令和選擇器的詳細信息,來記錄用戶的所有操作。而相應的測試步驟記錄,既可以被直接執行,也可以被導出為不同的編程語言。通過增加更多的功能與條件,用戶可以進一步豐富其導出的測試用例。

10.用於測試自動化的AI機器人

此類工具主要注重用戶的測試體驗,並能夠及時提供用戶的反饋。作為使用AI機器人開展測試自動化的“先驅”,Test.ai通過了解用戶使用移動應用的各項行為,進而根據他們的偏好來採取測試。

原文標題:Scriptless Testing Is Not Just Record and Playback: Top 10 Scriptless Testing Approaches,作者: Shruti Sharma


分享到:


相關文章: