轉自:https://mp.weixin.qq.com/s?__biz=MzI0NDQ5NzYxNg==&mid=2247485859&idx=1&sn=9ea7c7f5dd18a27d6b37dc1a273245a5&chksm=e95da41cde2a2d0a0ceceeb8393f841fcc10672284db0b6eb275146bde13b477a7d9b143ce21&mpshare=1&scene=23&srcid=0312lUZTYsNn5E2BIMq2QTdY#rd編程
介紹後端
關於自動化測試,這些年經歷了太多的坑,有被動的坑,也有本身主動挖的坑,在這裏作了一些總結。安全
主要思考總結下這些年來自動化測試過程當中的一些基本的東西,例如什麼時候進行自動化、如何自動化、或是怎麼自動化咱們的測試工做。工具
接觸過各類經驗、能力、業務領域、行業等從事自動化測試的人員,我想其中應該有很多比我更聰明,或是經驗更豐富,或是技術更專等,在交流的過程當中我得到不一樣領域專家以及他們自動化測試方面的經驗,也深刻的交換了彼此的一些想法和自動化測試的經驗,有不少不同的思想碰撞。性能
注:筆者在這裏對自動化的定義,不侷限於UI、接口等,而是指在測試過程當中全部基於技術進行解決問題和改進效率的技術測試,包括但不限於UI、接口、性能、安全等。測試
爲何要進行自動化測試?設計
1. 在咱們平常的測試工做中,常常會引入新的需求或是修復bug,那麼如何肯定新的需求的加入或bug的修復沒有在原有功能中引入新的bug呢?接口
我想爲了保證原有功能的正常,是頗有必要對原功能進行測試的。生命週期
那麼在每次修復bug或新增需求時,咱們都須要手動的測試全部功能嗎?在沒有更多的成本、資源、時間時,你依舊須要手動的進行測試,但其成效是否能達到要求呢?ci
我想這個時候,自動化測試的需求來了,在咱們的平常測試工做中,有大量的迴歸測試須要咱們把它們給自動化了。
2. 在咱們的平常測試中,你會不會收到老闆對你說:對咱們的系統壓測下,看看性能怎麼樣?
一般,對於大部分從事軟件測試的同行來說,不論是否具有這個技術能力,大都會收到這樣的工做需求。
那麼如何對系統進行壓測呢?我想確定不是讓你去喊幾百幾千甚至過萬的人來一塊兒點點點,由於這個靠人力來作是不現實的事。
因此自動化你的壓測工做就是必須的選項了。
3. 在平常測試工做中,是否是常常面臨着這樣的狀況?UI已經再也不大幅變動,然後端服務接口在不停的升級,這個時候UI級的自動化測試就顯得有價值了。
一樣的,在項目初中期,UI在不停的變動,但核心的業務接口已經初步穩定,這個時候接口級自動化測試也是引入的好時機了。
在不一樣的技術層級,咱們能夠根據其更新頻度等狀況,咱們能夠將其自動化,以達到改進效率和提高質量的效果。
將測試工做進行自動化,必然須要成本的投入的,一樣也有着各類風險,下面是一些總結。
自動化測試的風險是什麼?
在某些狀況下,可能須要考慮自動化咱們的測試工做,若是你已經作出了自動化的決定,或是打算進行自動化,那麼你就須要考慮如下幾個方面的場景:
1. 你的團隊是否擁有足夠熟練的資源?
想一想你的團隊,對於自動化測試是否有足夠的編程開發知識和能力?若是沒有,他們是否具有必定的基礎,能夠快速的掌握相應的技術?
是否打算組建一個好的自動化團隊呢?若是是,那麼能夠考慮自動化你的測試工做。
2. 自動化的初始投入成本很是高
不能否認的是,手工測試的成本也是很高的,尤爲是對於高素質的手工測試人才,若是你認爲自動化測試能解決手工測試的成本問題,我建議你三思然後行。
自動化測試的成本體如今如下幾個方面:
- 自動化工具的採購
- 人才的引入或培訓
- 自動化測試腳本的維護
- 自動化測試的實施推廣
等等其餘
許多開展自動化測試的團隊對於其自動化成果感到遺憾,由於在投入了大量的人力、時間、資源後,獲得的僅僅是一堆基本的自動化腳本或是一個好看的測試工具。
請思考, 若是是這樣的成果, 那麼自動化的用途是什麼呢?
3. 慎重對待UI自動化測試
在進行UI級自動化測試前要謹慎選擇業務場景,尤爲是要注意規避可能的大面積發生UI更新的場景,否則自動化腳本的維護成本會很是的高。
因此UI級自動化測試,筆者一般只自動化最核心的業務流程、或最典型用戶業務場景,或重點關注的功能模塊。
4. 是否須要系統足夠穩定才能夠自動化咱們的測試工做?
筆者覺得不用等到系統足夠穩定時纔開始自動化測試。
固然,前提是團隊擁有足夠強的技術功底,能從源碼級或數據層級就開始規劃、設計自動化測試解決方案。
5. 是否要考慮100%的自動化?
只能說,別作夢了,你要是都能100%了,那我點點點的功力如何發揮裝X?固然了,在性能測試、迴歸測試、負載壓力測試等領域,是有機會實現「100%」的。
6. 不要對一次性工做進行自動化
對於哪些可能只需運行一次或幾回的測試工做,請不要將其自動化,太浪費了。
7. 你的自動化套件壽命足夠長嗎?
若是你選中的自動化場景生命週期不夠長,那麼請不要自動化它,構建自動化的一個基本準則是讓自動化了的測試工做比手工執行成本要明顯下降。
固然,肯定每一個自動化測試場景的有效成本是有些難度的,可是咱們必須思考的。
若是你能將實現自動化測試工做作到平常化、版本化,那麼其成本下降將是明顯的、效率改進也是顯著的、是能夠得到良好的投資回報率的。
小結
自動化測試是實現大多數測試目標和有效利用資源和時間的最佳解決方案。但在進行自動化前,應該謹慎對待,不然你獲取的可能僅僅是一堆腳本或一個漂亮的工具。