軟體測試自動化的最新趨勢

weixin_33807284發表於2019-04-04

本文將回顧 2018 年的趨勢,並闡述對 2019 年的期望。

過去幾年,QA 行業的一個持續趨勢是測試自動化和持續測試。這一趨勢也將在 2019 年繼續下去。雖然 CI/CD、DevOps 和測試框架在未來一年仍將是突出的主題,但一些新技術正在影響我們測試的內容和測試方法。

人們期待在 JavaScript 領域看到更多的開源測試框架,在使用的工具中嵌入更多的人工智慧功能,以及來自商業工具供應商的更多創新。另一個持續的趨勢是功能測試和效能測試的結合(你可以將其看做 Selenium 與 JMeter 測試相結合)。此外,人們還期望看到更多行為驅動開發(Behavior Driven Development,BDD 測試)的發展,以及在敏捷組織中如何採用它。自動測試場景生成是我們與幾個客戶合作的另一個領域。

以下是目前軟體測試自動化水平的完整概述。

物聯網測試

物聯網(Internet of Things,IoT)正對測試領域產生顯著的影響。像 Selenium 這樣的傳統自動化方法在嵌入式環境中變得毫無用處。我們已經看到越來越多的基於 Python 和 C/C++ 的測試框架執行單元測試、整合測試和系統測試。大多數測試框架都是測試由這些嵌入式庫匯出的 API,其中相當多的框架呼叫嵌入式程式碼來執行單元測試。這需要具有重要軟體開發經驗的專業測試工程師,但我們看到更多的軟體開發人員將被部署到自動化測試的角色。Python 可能是物聯網測試框架開發的首選語言,因為它能夠直接使用 ctypes 包來呼叫 C 程式碼。

另一個新趨勢就是物聯網的 DevOps 環境開始標準化。到目前為止,我們看到的大多是 CI 環境的 Ad-hoc 實現。我們已經預先構建瞭解決方案,用於構建管理、測試管理、映象載入、物聯網映象在不同裝置上的部署、不同構建物聯網裝置的 A/B 測試等。

持續測試

持續測試是從去年至今仍在繼續的另一個趨勢。我們在過去已經看到了 DevOps 和 CI/CD 框架的爆炸式增長,而今年這種趨勢,將隨著新的框架(如 Nevercode 和 Codefresh)的出現而繼續。

持續測試的另一個趨勢是對每個版本進行基於人工智慧的風險評估。以前,這種操作是手工執行的,以確定能為應用程式部署哪些版本。我們已經實現了幾個 CI/CD 平臺,它們執行應用程式基於人工智慧的自動 A/B 部署。

基於人工智慧的測試

基於人工智慧的測試方法已不僅僅是時髦語,現在已經進入了主流測試實踐。人工智慧和自動化是測試的兩個並行方面:自動化用於功能測試,而人工智慧則用於視覺測試。基於人工智慧的視覺測試,包括視覺測試和感覺測試,並快速瀏覽每個構建版本的視覺變更,是一個非常有用的釋出驗證方法。我們已經在 Denver 的不同客戶中實施了基於 Applitools 的視覺測試解決方案。

雖然嚴格來說,視覺測試目前並不是基於人工智慧的。影象比較演算法是基於傳統的梯度分類。

我們所使用的其他幾個獨特的工具很少能夠智慧地自動化許多工。

  • 測試套件優化:我們開發了一些工具來分析日誌模式,並確定哪些測試用例是重複的。
  • 使用日誌分析進行缺陷識別:根據日誌分析突出顯示軟體缺陷。
  • 自動測試場景生成類似於 Swagger。

開源測試框架

在過去的幾年裡,我們看到的不斷增長趨勢之一是,從傳統的企業測試解決方案(如 HP QC、ALM、UFT、IBM 等)遷移出來。我們看到各種規模的組織越來越多地採用開源測試平臺。我們親自將客戶的幾個測試框架從 HP QC/UFT 遷移到其他開源解決方案。儘管這些開源解決方案涉及到編碼,但從長遠來看,它們具有高度可定製性和可維護性。我們預計,隨著 2019 年的到來,這些開源解決方案將繼續獲得更大的吸引力。

\"\"

敏捷開發和 DevOps 的合併

DevOps 的關鍵原則是開發團隊、測試團隊和運營團隊協作,無縫釋出軟體。這意味著集中或隔離的 QA 部門現在必須與開發和運營團隊合併,以便為各種版本提供按需測試服務。測試變得更加漸進、迭代,並與應用程式開發和部署過程整合。

\"\"

譯註:行為驅動開發(英語:Behavior-driven development,縮寫 BDD)是一種敏捷軟體開發的技術,它鼓勵軟體專案中的開發者、QA 和非技術人員或商業參與者之間的協作。BDD 最初是由 Dan North 在 2003 年命名,它包括驗收測試和客戶測試驅動等的極限程式設計的實踐,作為對測試驅動開發的迴應。在過去數年裡,它得到了很大的發展。

2009 年,在倫敦發表的“敏捷規格,BDD 和極限測試交流”中,Dan North 對 BDD 給出瞭如下定義:

BDD 是第二代的、由外及內的、基於拉 (pull) 的、多方利益相關者的 (stakeholder)、多種可擴充套件的、高自動化的敏捷方法。它描述了一個互動迴圈,可以具有帶有良好定義的輸出(即工作中交付的結果):已測試過的軟體。

我們現在已看到基於 BDD 的測試機制的採用,它允許在 sprint 週期中開發的新功能進行迭代測試。BDD 代表行為驅動開發(Behavior Driven Development),它本身源自驗收測試驅動開發(Acceptance Test Driven Development,ATDD)。BDD 迫使團隊在收集需求的同時提出測試場景。測試場景被立即記錄下來並簽入 CI 系統,以強制 CI 系統顯示這些場景的故障。在 Sprint 期間,開發和 QA 團隊的目標現在變成了這些場景。這種測試框架開發機制在方法上是新穎的,非常適合敏捷環境。我們看到很多客戶在敏捷實踐中轉向基於 BDD 的測試開發。

效能工程的效能測試

測試的關鍵趨勢之一是將效能測試角色不斷轉變為成熟的效能工程角色。效能工程現在不僅包括測試方面,還包括監控系統效能。資源的自動伸縮、A/B 測試、ELB、資料庫優化、瓶頸識別和監控。現在已有集中基於雲端的工具可以準確地監控不同雲資源上的各種效能引數,並且通過警報對所有資源進行儀表板監控是我們在各種客戶端上工作的主要部分之一。

微服務測試

隨著越來越多的應用程式轉向微服務模型,測試架構也朝著微服務測試模型發展。以前,產品的 QA 遵循黑盒測試模型,但現在,通過微服務測試,我們正朝著灰盒測試模型邁進。

微服務測試包括 API 測試、資料庫測試、身份驗證服務 / 搜尋服務測試等。我們可以將這個測試模型稱為更多的元件測試模型,而不是測試整合產品。

微服務測試允許我們在所有變更進行大爆炸式的整合之前發現問題。 它仍然高於單元測試,因為元件必須完全定義,並且測試基於這些元件的外部 API。

測試即服務(TaaS)

測試即服務(TaaS)或 QA 管理服務是一種外包模式,其中組織的測試活動由外部團隊而非員工來執行。在許多情況下,外部團隊是一個離岸團隊。但我們也有一些例項,我們為自動化開發和專案移交的初始階段開發了離岸團隊,然後是離岸團隊進行 QA 維護。

測試即服務(TaaS)的優勢包括:

  • 支援按需測試資源。測試是一種週期性活動,其中,資源利用率並不是恆定的。測試即服務意味著客戶只需為測試資源使用的時間支付費用。
  • 離岸資源降低成本:由於與離岸組織相關的勞動力成本較低,
  • 自動化服務包含在內:測試即服務包括測試自動化框架、CI/CD 框架以及效能測試和監控,從而降低了組織的各種成本。

原文連結:
https://medium.com/@priyesh_96398/latest-trends-in-software-test-automation-660af0166724

相關文章