前言
隨着軟件測試技術的發展,人們已經從最初的純粹的手工測試轉變為手工與自動化測試技術相結合的測試方法。近年來自動化測試越來越受到人們的重視,對於自動化測試的研究也越來越多。
我在做自動化測試期間經歷了不少的坑,有被動的坑,也有自己主動挖的坑,所以在這里做了一些總結。其實主要是總結下自動化測試的一些基礎的內容,例如何時進行自動化、如何自動化、為何要自動化等等。
>>1. 什么是自動化測試
首先是把人為驅動的測試行為改成機器執行,通過設計的測試用例,由機器按照測試用例的執行步驟對其進行自動操作,輸出結果,由測試人員進行比較。
其次自動化測試往往通過一些測試工具或框架,編寫自動化測試用例,來模擬手工測試。
最后自動化測試能極大的節省人力、時間和硬件資源,提高測試效率。
>>2. 為什么要進行自動化測試?
大致總結為6點
1)減少手工測試中的重復性工作,提高測試人員的工作成就感和幸福感
2)提高測試用例的執行效率,實現快速的自動化回歸測試,快速的給予開發團隊質量反饋
3)減少測試人員的數量,提高開發和測試的比例,節省企業的人力成本
4)在線產品的運行狀態監控
5)插入大量的測試數據
6)發現更多的BUG
>>3. 什么樣的項目需要做自動化?(dev手一抖,auto忙一宿)
1) 需求變更慢
2)周期長
3)腳本可重復利用
4)產品型項目:每個項目只改進少量的功能,但每個項目必須反反復復的測試那些沒有改動過的功能
最主要的是要結合公司的狀況,如果迭代周期太短,時間又不夠,那么就不適合。
舉例來說:如果說你花一個月開發自動化系統,但腳本只針對這個系統,如果下一個系統做自動化,腳本又要重新寫,成本就會較高,重復利用率較低。
>>4. 工作過程中對於自動化測試的一些誤解
1)有了自動化測試不再需要手工測試。
2)自動化測試對有些測試比如:本地化測試、用戶體驗測試、探索性測試,測試環境搭建方面並不能完全代替手工測試。
3)自動化測試是對產品的運行,對測試點要有一定的手工測試基礎,自動化測試和手動測試相輔相成。
4)自動化測試並不僅指自動化運行測試產品,數據處理也是非常重要的一個環節。
>>5. 日常的測試工作中,經常會引入新的需求或是修復bug,那么如何確定新的需求的加入或bug的修復沒有在原有功能中引入新的bug呢?
我想為了保證原有功能的正常,對原功能進行測試,這也是測試過程中非常重要的一個環節。
那么在每次修復bug或新增需求時,我們都需要手動的測試所有功能嗎?在沒有更多的成本、資源、時間時,你依舊需要手動的進行測試,但其成效是否能達到要求呢?
所以這個時候自動化測試的需求就來了,在我們的日常測試工作中,有大量的回歸測試需要我們把它們給自動化了。
>>6. 是否需要系統足夠穩定才可以自動化我們的測試工作?
一般情況下是在手工測試完畢,等系統相對比較穩定的時候才開始自動化測試的。但是有些企業也有同時進行的情況。
>>7. 是否要考慮100%的自動化?
我認為100%的自動化測試太過保守。對於一個項目來說,應該是有一個合理的自動化測試覆蓋區間,具體多少最好,見仁見智。
少的我見過僅僅用自動化測試覆蓋冒煙測試的,多的見過自動化測試超過90%的,因人而異,因項目而異。
>>8. 你的自動化套件壽命足夠長嗎?
如果你選中的自動化場景生命周期不夠長,那么請不要自動化它,構建自動化的一個基本准則是讓自動化了的測試工作比手工執行成本要明顯降低。
當然如果能將實現自動化測試工作做到日常化、版本化,那么其成本降低將是明顯的、效率改進也是顯著的、是可以獲得良好的投資回報率的。
>>9. 常見的自動化測試的工具
自動化測試工具開發語言:Java、Python等
基礎測試工具
(1)單元測試:junit(java)、unittest(python)
(2)接口測試:httpclient(java)、 restassure(java)、request(python)
(3)UI測試:selenium webdriver( web )、appium(app)
常見自動化測試工具
(1)接口測試:Jmeter、soapui、postman
(2)UI測試:katalon、Robotframework、Android
>>10. 自動化測試腳本技術
1)線性腳本:錄制、回放
2)結構化腳本:含有控制腳本執行的指令,支持順序、選擇和循環3、共享腳本:可以被多個測試用例使用,腳本之間可以互相調用
3)數據驅動腳本:數據驅動腳本是將測試輸入存儲在獨立的文件中,腳本中只存放控制信息。
4)關鍵字驅動腳本:關鍵字驅動腳本實際上是較重復的數據驅動技術的邏輯擴展 ,即測試用例的執行步驟(操作,操作對象,操作值)存放在文件中,直接執行。
寫在最后
自動化測試技術在現代測試技術中是有一定優勢的,但是自動化測試不是在任何情況下都必須的,適當的、或者是有效成本投入,需要我們在合適的時機引入自動化測試,使手工測試和自動化測試實現完美結合。
<END>
關注公眾號,回復【資料】可獲得自動化,python,jmeter等視頻教程