原創|行業資訊|編輯:況魚杰|2020-11-30 11:36:50.327|閱讀 191 次
概述:企業越來越注重客戶體驗,將其作為進入市場戰略的一部分,而客戶體驗的關鍵一環是他們能夠以快速和無縫的方式穿越你的軟件。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
企業越來越注重客戶體驗,將其作為進入市場戰略的一部分,而客戶體驗的關鍵一環是他們能夠以快速和無縫的方式穿越你的軟件。為了降低不良客戶體驗的風險,企業正在加倍努力地實施質量計劃,軟件開發行業也正在將持續測試作為一種主流活動。
持續測試是軟件測試的一個原則,在這個原則下,你的所有測試都在一直執行,對你的應用程序的質量和健康狀況進行持續反饋。但為了實現持續測試,企業必須首先采用測試自動化。測試自動化有很多類型,從UI層開始,到中間件系統,甚至是后端系統,跨越了應用程序的寬度。了解如何盡可能高效地引入這些不同類型的測試自動化實踐,可以讓你走向持續測試的道路。
現在被廣泛接受的測試金字塔(由Michael Cohen和Martin Fowler推廣)確定了不同類型測試活動的最佳策略。在基層,代表著最大數量的測試,希望建立廣泛覆蓋的單元和API測試,這些測試在自動化中最容易運行,但通常需要技術技能來構建。到了測試金字塔的頂端,你會發現自動化UI測試和手動測試。我們希望這種類型的測試活動在頂部,因為這是確保客戶體驗的唯一方法。
大多數人把注意力集中在測試金字塔的底部和頂部,對UI測試采取 "把人工的東西自動化 "的做法,對單元測試采取 "開發人員應該測試 "的心態。雖然這些做法很重要,但專注于頂部和底部,在中間的API層,在UI和代碼之間造成了差距。但這種差距只會繼續變得越來越麻煩,Programmable Web最近的一項調查預測,到2021年將有超過22000個公開的API。API測試比以往任何時候都更加關鍵,需要成為你正在構建的持續測試策略的一個集成部分。
之前曾討論過如何為您的組織的獨特需求選擇最佳的API測試解決方案,并根據您的行業和應用程序,指出了您可能需要的關鍵功能。從一個API測試解決方案開始是很有幫助的,它可以隨著您的API測試成熟度的增長而增長。一旦你選擇了一個工具,您該如何開始?以下是三個關鍵步驟,以更快地實現功能測試自動化,并實現您的持續測試。
為了創建一套廣泛的自動化測試,您可以從網絡錄音和API合同中構建無腳本測試,然后使用這些測試來持續驗證您的API的健康狀況,確保API按照設計工作。把它想象成API的單元測試,但不需要進行磨合--這不僅是一種有價值的測試技術,而且也是您可以做的最早的功能測試驗證類型之一,因為API的服務合同通常是在創建新特性或功能時最先編寫的東西之一。
舉個例子,假設團隊在銀行應用中增加了一些新功能。作為第一步,開發團隊發布了一個新的服務定義。在這種情況下,生成了一個swagger文檔。正在添加的新服務是RequestLoan服務。這個服務需要一系列的輸入,并響應新貸款的貸款提供者。為了測試這個服務,可以消耗Swagger YAML,并為每個單獨的操作創建一系列客戶端。
其中一個客戶將是請求貸款服務,可以創建一系列的輸入,包括正向和負向輸入,以驗證該服務的行為是否恰當。然后將這些測試重新用于回歸目的。當然,雖然這種類型的測試非常有價值,但它只是API測試難題的一半,因為它不能驗證API的實際使用情況。進入第二步。
API測試策略的第二部分是能夠將人類對應用的使用建模為完整的API測試場景。您可以開始通過利用人工智能來彌補測試金字塔中的這一差距,以增強您的能力,了解用戶在瀏覽您的應用程序時在幕后實際發生了什么,并將這些幕后事務解釋為API調用。這種類型的測試允許您將用戶體驗與您的關鍵API測試相一致。
AI是戰略的關鍵組成部分,因為可以可靠地使用AI來幫助我們將這些通信分解為關系和模式,了解應用程序如何被測試的業務規則。可以將其與單元級API測試結合起來,以獲得廣泛的API頻譜覆蓋。
繼續前面的例子,你會注意到,申請貸款服務需要申請的其他方面的輸入。具體來說:
現在,雖然可以任意提供customerID和from accountAccountID,但是需要創建一個動態場景,在這個場景中,首先查詢個人用戶以獲得客戶ID和賬戶ID,這樣就可以將這些信息交給請求貸款服務,并確保動態場景如所述工作。確保使用的是真實的動態數據,可以確保那些由于API相互交互而存在的行為能夠得到充實。
這些類型的技術將使我們能夠轉變左API測試實踐,并在盡可能早的階段為應用創造廣泛的覆蓋面。一旦實現了這一目標,這一實踐還有第三個關鍵的組成部分,那就是我們理解和適應變化的能力。
很多人的功能測試計劃,一旦他們的應用發生變化,就會落空。這是一種常見的情況,因為測試人員把大部分時間都花在了構建豐富而偉大的API測試上,卻在應用的API發生變化時中斷了。這可能會產生累積效應,降低對API測試策略的信心,因為測試人員將大部分時間用于維護他們的API測試,而不是建立新的價值。
變更管理是任何功能測試策略的關鍵一環,而AI在這里也可以成為一個關鍵的推動者。通過自動掃描服務定義(是的,與最初創建測試用例所用的服務定義相同)來識別您的API何時發生了變化,您可以了解您何時會受到影響,然后建立一個模板,將現有服務遷移到新版本。
回到銀行應用例子的第一部分,這里在我的應用中添加一個新的服務,這實際上代表了API的變化。由于這里使用服務定義創建了第一輪基線測試,現在可以將服務定義的不同版本相互比較,不僅可以識別出有什么變化,而且可以建立一個地圖來更新我現有的測試用例。
查看變更模板后,很容易看到不僅增加了一個新的服務,而且許多現有服務也被重新構建。在上圖中,你會注意到get customers有一系列新的字段被添加。使用變更管理工作流,你可以主動識別服務變更,同時管理現有測試用例的更新,這樣你就可以盡快從變更中恢復。<
這可以說是一個人在建立功能測試策略時必須建立的最重要的實踐,從一開始就對質量有一個理解和承諾將幫助你和你的組織采用這種實踐。
如果你的優秀測試自動化實現了持續測試,很容易就此打住。但是,假如你花了大量的時間來構建這個豐富而強大的功能測試策略,你在你的環境中運行你的測試,作為你的自動化夜間持續測試過程的一部分,當你審查結果時,你看到你的測試有很大一部分失敗了,原因是你無法控制的系統。這是否意味著你的測試很糟糕?你現在是否要為那些在技術上超出你測試范圍的系統負責?
這不是一個罕見的情況。我們知道,功能測試只有在其執行的測試環境中才會有效。不穩定的、不可用的、或者僅僅是片面的測試環境會降低我們從功能測試工具中獲得的投資回報。因此,必須至少簡單地提到穩定測試環境的最佳方法之一,那就是:服務虛擬化。
不要與虛擬機(那是硬件虛擬化)混淆,服務虛擬化可以讓你實際模擬不同硬件之間通信的服務。例如,想想一個應用程序調用一個數據庫。在你的測試環境中,你真的需要那個數據庫嗎?如果它沒有你需要的數據怎么辦?通過服務虛擬化,你可以記錄與數據庫的事務,然后使用該記錄來創建該數據庫的模擬版本,并為你的測試環境提供你想要的所有行為。但當然,它并不僅僅停留在數據庫上,它可以是任何類型的服務,比如SOAP或REST API,甚至是TCP和微服務。
作為構建可持續的API測試策略的一部分,你需要建立一個可持續的服務虛擬化策略,而這首先要回答以下問題。
服務虛擬化是可持續的持續測試策略的關鍵推動力,但了解在何時何地引入服務虛擬化,以及如何盡可能有效地引入服務虛擬化是成功的關鍵。
現在你已經更好地理解了如何將API測試整合為你的持續測試策略的一部分,下一步就是要開始行動了! 與API測試工具供應商接觸,并從第一步開始。在你開始時了解最終目標將幫助你在前進的道路上做出明智的選擇。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn