自動化測試實現優劣

目前互聯網測試中,幾乎全部團隊、全部測試人員都在作自動化測試。但要評價自動化測試實現的優劣,就須要拿具體的數據來講話了。究竟自動化測試的效果如何呢?自動化測試有沒有真正發揮出來其做用,又如何來評價一個團隊自動化測試工做作得好壞呢?如下就跟你們分析一下自動化測試實現的優劣。面試

 1、背景

  從自動化測試方法論層面來講,之因此要實現自動化測試,大體有如下幾個方面的緣由:測試

  一、提高測試效率調試

  二、提高測試覆蓋度,包括深度和廣度blog

  三、提高測試發現問題後的解決效率接口

  四、補充手動測試沒法覆蓋/不易覆蓋的場景自動化

  以上是一些實現自動化測試方向性的指導原則,但要評價自動化測試實現的優劣,就須要拿具體的數據來講話了。下面就本身的一點經驗,來講說本身對自動化測試優劣的一些體會,不足之處,歡迎你們交流指正。io


 

2、評價自動化測試優劣的常見指標

  互聯網公司中,因爲絕大多數團隊都在重點攻克自動化測試,於是每一個團隊都指定了相應的評價指標。雖然各個公司,各個團隊對指標的側重不一樣,但幾乎都會關注以下指標。class

  一、自動化運行經過率/成功率效率

  這裏排除了代碼bug致使的失敗。爲了不自動化運行常常失敗,大部分團隊都會將自動化運行經過率做爲一項重要指標,來評判不一樣模塊/業務線自動化實現的好壞。還將這個指標設置必定的閾值,例如,經歷過的有個團隊要求自動化運行成功率要大於90%+,最好能100%運行成功。自動化測試

  這個指標是幾乎全部團隊都會強調的一個指標了,由於自動化運行經過率/成功率是自動化發揮做用的前提條件。但看這個指標,其實也沒法評估自動化實現效果,只能說明自動化運行的比較穩定。

  二、自動化執行頻率

  這裏的執行頻率,排除業務測試,特指天天定時的自動執行。不一樣團隊,根據實際狀況不一樣,有不一樣的要求。例如,有的團隊要求遲早至少各一次,有的團隊則要求天天至少執行一次,但不管哪種,幾乎都會造成這樣一種現象:各個團隊爲了讓定時自動執行時都經過,天天都要花費必定時間來維護自動化代碼。

  這個指標其實也是一種評估自動化運行是否穩定的指標。執行的頻率越高,加上執行的經過率/成功率越高,說明自動化運行的越穩定。

  三、自動化case數量/覆蓋場景數

  這個指標不一樣業務線之間,其實沒有太大的可比性。但同一個業務線上,仍是能夠做爲參考指標的。自動化case多、覆蓋的場景多,至少必定程度上說明了自動化的覆蓋範圍。這個指標能夠必定程度上來評估自動化測試的廣度、深度。

  四、自動化發現bug比例

  若是說自動化運行經過率/成功率、自動化執行頻率、自動化case數量/覆蓋場景數仍是評價自動化優劣的過程指標,那麼自動化發現bug比例就是最有力的結果性指標了。試想一種極端狀況,若是一個自動化項目,跑了N久後,尚未發現過bug,那麼這個自動化的價值是否是要打一個大大的問號呢?

  本身經歷的團隊,以及曾經接觸過的團隊,其實對自動化發現bug比例的側重反而不是那麼高。

  這個指標能夠說是衆多指標中,最能立竿見影的說明自動化實現效果的指標了。自動化發現bug的比例越高,說明自動化在實際的項目中發揮的做用越大。甚至能夠用自動化發現bug率是100%,來做爲自動化測試的終極目標。


 

若是對軟件測試、接口測試、自動化測試、面試經驗交流。感興趣能夠加軟件測試交流:1085991341,還會有同行一塊兒技術交流。

3、評價自動化測試優劣的隱性指標

  關於評價自動化測試的優劣,除了上述常見指標外,還有一些不太容易拿數聽說話的指標,這裏叫作隱性指標。

  隱性指標主要包括:自動化的維護成本、自動化的運行成本

  一、自動化的維護成本

  針對同一個業務,不一樣的自動化測試實現方案,對應的維護成本可能天壤之別。誠然,自動化的維護成本,受業務成熟度、迭代速度、項目規範程度影響,但不妨考慮如下狀況下,你的維護成本如何:

  新增了一些邏輯(如,接口/服務/應用),對新增部分維護自動化,你須要多長時間;

  刪除了一些邏輯(如,接口/服務/應用),對刪除部分維護自動化,你須要多長時間;

  修改了一些邏輯(如,接口/服務/應用),對修改部分維護自動化,你須要多長時間;

  在項目迭代速度加快時,並伴有增刪改邏輯時,你的自動化腳本還能跟得上嗎?其實,這是很多團隊都會面臨的嚴峻考驗。 一個正處於快速發展的業務,每次業務測試、迴歸時,可能都會想放棄自動化測試,轉而來手工執行測試。由於,自動化測試還要不斷調試自動化代碼,大機率來不及此次的測試,還不如直接手動測試的效率高。

  二、自動化運行成本

  這裏的自動化運行成本是說,從想執行自動化 ~?執行結束 須要符合的人力&時間成本。通常的自動化運行過程大體以下:

  1)創造一些自動化執行條件。好比,找運行數據,設置運行環境等等,這一步若是沒有被自動化掉,須要花費人力&時間;

  例如,實現的自動化只能」一條腿走路「,即只實現了半自動化,並無實現100%的自動化,運行前/中/後可能須要人爲參與。

  2)執行自動化。這裏主要是自動化運行所需時間,時間越長,致使的等待時間越長。可能你會說,自動化執行的時候,你能夠去幹別的事情啊,不必一直等待執行結束。但既然執行了自動化,確定想像手工測試同樣,」立刻「看到執行結果,獲得及時反饋,才能避免在不一樣工做間來回切換。

  3)驗證自動化結果。通常結果的驗證都包含在上一個步驟裏面了,但不排除有些驗證仍然須要人工來check的狀況。這種狀況,其實也屬於半自動化的一種實現形式。

  4)自動化失敗問題排查。各類各樣的緣由,都會致使自動化運行失敗了,好比,數據問題、環境問題、自動化維護不及時、第三方問題等等。自動化失敗後,可否比較清晰的給出失敗緣由,甚至能根據自動化失敗結果,直接定位到失敗緣由,這些作到位了,會讓你對自動化愛不釋手。

以上內容但願對你有幫助,有被幫助到的朋友歡迎點贊,評論。

相關文章
相關標籤/搜索