自動化測試現在已經成為了很多軟件測試工程師的關鍵技術,但是問題仍然存在,Test Automation是否以正確的方式完成? 或者更大的問題應該是,有沒有正確的方法來進行測試自動化? 答案通常取決于......它取決于在測試下的應用程序,環境,數據,架構和大量其他因素中發揮的許多不同因素。

自動化測試

對于任何重大項目或任務,人們確實需要一個計劃或一種策略來實現自動化。 許多人使用象限,金字塔和其他模型作為參考,以便在決定自動化方法時使車輪運動,例如圍繞一些優秀模型(包括我自己的自動化三角模型)的一些精彩細節。

在我10年的測試自動化世界經驗中,我的觀察和經驗使我在制定測試自動化戰略時考慮了一些關鍵要素。我將在下面討論其中的一些。

0 1

測試用例的情況 - 測試管理工具或類似工具

讓我們一路回到起步。無論您是在探索性測試世界中使用特定的測試管理工具還是檢查表/思維導圖等,都有一個潛在的目標。目的是為您解決測試任務帶來某種規劃或結構 。

在這個階段,不管你信不信,這是第一個需要考慮測試自動化想法的地方。您應該在定義測試用例/方案期間識別典型的自動化候選者。

圍繞測試管理工具或類似工具的另一個方面是它為所有人提供的可見性和透明度的關鍵要素。

測試自動化不應孤立地發生,并且提供完整的透明性,可追溯性和團隊可見性的工具能力越好,與測試自動化工作的相關性就越高。

永遠不要低估這個元素帶來的力量,特別是對于一個正在發展的敏捷世界 - 團隊游戲對任何組織的成功至關重要。每個人都應該在您的團隊自動化工作在相同層面上思考。這里可以看到在測試覆蓋范圍,測試結果,測試趨勢和各種花式自動化統計數據的可見性方面。

自動化測試

在某些情況下可能與測試管理工具相關的另一點或者可能是像Jenkins或Gitlab這樣的CI / CD支持工具之類的外部工具,能夠批量或在管道中執行這些自動化測試/腳本,計劃或需求。這是從存在于特定機器上的腳本的舊時代向前邁出的一步,并且通過在執行之前運行每個測試來執行相當繁瑣的順序

0 2

自動化的地方 - 告訴我在哪里!

自動化測試

關于自動化策略的另一個關鍵因素是“Where”和“What”自動化。

在某種程度上,上面討論了“什么”自動化,在這種情況下自動化的“Where”并不是指特定的測試環境,而是與應用程序層進行自動化。我們是在討論前端或后端的自動化,我們是在談論API還是UI,甚至可能是DB。

然后,E2E測試的問題進入,甚至進一步發展到多個跨系統E2E測試。正如您所見,自動化在做之前需要進行大量思考。因此,在決定“在哪里”關注自動化工作之前,通常團隊間和測試人員的討論至關重要

0 3

工具選擇 - 明智地選擇

你知道的事情并沒有變得容易

自動化測試

現在我們已經知道了“為什么以及在哪里”為自動化工作選擇正確的自動化工具,這一更加艱巨的任務變得至關重要。在某些情況下,公司購買已經工具,自動化現在必須遵守這個預先選擇的工具,我在這篇文章中不會涉及。如果命運在測試人員手中,那么工具的選擇應該跨越多個區域。關于工具選擇的一些快速想法如下:

a)技術工具- >工具可以自動化我們的Web應用程序嗎?該工具可以自動化我們的桌面應用嗎?它是否支持API自動化?移動平臺怎么樣?

b)工具支持- >是否有幫助提供有關問題,崩潰或工具維護的幫助。該工具的新版本多久發布一次?

c)語言支持- >所選工具支持哪種編碼語言?它是否支持Java和/或Java等多種語言。在招聘和招聘時,這個問題也變得相關。

您的生態系統中可能還有許多其他要點與工具選擇相關,但以上幾點是首要考慮的因素。

0 4

環境穩定 - 保持整潔 clean code

這是一個經常被忽視的領域,但該領域的疏忽或不穩定幾乎可以使所有測試自動化工作無效。想想這一點,想象一下擁有最閃亮,制作精美的新時代游艇!但是你把它帶到最最崎嶇的水面上航行。這將是一場史詩般的失敗!

如果有穩定的環境,這正是它要的感覺。有關環境正常運行時間的問題,依賴性可用性 (無論是本地還是外部)需要在此處解決。這里想到的一個例子是類似于測試應用程序登錄功能,依賴于谷歌API。如果與外部服務的連接中斷并且您的測試依賴于它,那么您的自動化測試就會變得十分脆弱。

自動化測試

找到解決環境問題的方法,并在增加自動化工作量時提出使環境更穩定的方法變得至關重要。

0 5

數據,數據和更多數據

自動化測試

數據是另一個對自動化方法至關重要的概念。

數據很復雜并且可能帶來許多挑戰,這主要取決于每種情況下可能存在的眾多排列 。硬編碼自動化測試輸入和變化幾乎是不受歡迎的,因此在許多情況下,因為通過為每次執行提供隨機數據,可以極大地增強腳本找到缺陷的能力。通過這種方法,您可以大大增加每個獨特數據場景中發現缺陷的可能性。在某種程度上,這可以看作是一種自動化探索性測試的形式,這是一種雙贏的局面。

因此,專注于尋找隨機生成或獲取不同數據輸入組合的方法,以加強您的自動化工作,無論是從表格,文件還是API獲取數據,這絕對值得研究。這里要考慮的一點是速度方面。讀取這些數據會減慢你的腳本嗎?它會減慢多少?這些是在考慮如何處理數據與覆蓋業務時,需要作為一個團隊性問題進行的進一步的討論。

結束

歸根結底,都是看我們如何去開展,我們必須要牢記自動化會發生什么。早期自動化候選人識別,可見性,團隊互動和總體規劃是必不可少的基礎。一旦建立起來,就需要解決其他關鍵因素,如工具選擇,自動化水平,數據和環境問題,以使您的自動化在您的世界中取得成功。