一、在什么情況下做自動化測試,為什么做自動化測試
剛剛做測試的時候,對於在什么情況下做自動化測試只局限功能比較固定,需求變化不是很頻繁且項目周期比較長的時候考慮做自動化測試。但是為什么要做自動化測試呢,具體有什么好處呢,對於我來說一直沒有很深刻的感受,直到做了自動化測試才深刻的理解到了這一點。自動化測試最主要的貢獻有三點:1.通用功能的冒煙測試;2.適用於對已測功能的全部回歸;3.適用於需要手工重復性操作的局部化測試。下面通過三個場景對以上三點進行簡單的說明。
場景1:公司所做的產品都是基於某一種行業標准,每一次全功能測試都需要檢查相同的東西,我們怎么辦?每一次全功能都全部測試一遍?在小公司,許多研發人員不自測,到了測試人員手中測試發現研發人員打錯包了,軟件還沒有測,軟件版本就更新了幾次。
針對以上的場景,其實只要吃透標准,寫出標准的測試用例,找到共通的東西寫出自動化測試腳本,在每一次研發人員發布版本或者進行每一次全功能測試的時候用該腳本進行一次冒煙測試,就可以解決以上的問題。
場景2:研發人員修改了代碼,作為測試人員我們不知道這些代碼對哪些功能模塊有影響,我們怎么去做回歸測試?一個項目做完了,過了很久之后,該項目又重新啟動了,我們改怎么辦,當新項目處理重新走一遍流程?
針對以上場景很多人可能會說直接問研發或者根據測試人員的進行自己判斷出可能影響的功能模塊進行測試,這樣的測試你能保證100%覆蓋完全?答案當然是不能的,如果我們有自動化測試腳本,在每次修改了代碼的時候我們就全部跑一遍自動化測試腳本就可以了。 同理,在需重新啟動舊項目的時候我們也可以通過跑自動化測試腳本來實現。
場景3:有某一個功能要測試其容量,你需要重復的操作同一個操作來達到該目的,這個時候你怎么辦?
針對該種情況自動化測試的優勢就體現出來了,可能你需要重復操作20min的工作量一個簡單的loop就可以完成。
二、自動化測試主要有哪些?
自動化測試通常有三種:單元自動化測試,接口自動化測試,UI自動化測試。
其中單元自動化測試一般由研發人員自己進行測試,測試人員主要進行接口以及UI的自動化測試,但是由於UI的需求一般變化比較頻繁,因此測試人員做的最多的就是接口測試。
三、自動化測試框架設計的模式有哪些?
自動化測試框架設計的模式主要有4種:
1)分布式指的是測試需要在多台電腦上進行多線程或者多進程的測試,該模式主要針對測試用例比較大的情況常用的工具是grid;
2)數據驅動指的是講測試程序與測試所需要的數據分離,每次測試程序的時候直接調用所需要的數據;
3)關鍵字驅動的模式,該模式主要對對誰做,怎么做,做什么三個要素進行衍生,每次只需要調用關鍵的函數就可以,即使不懂代碼的人也能勾編寫。現在很多的自動化測試工具例如KAMA即是如此,測試人員只需要了解測試功能的邏輯通過調用工具的內部函數就可以編寫自動化測試腳本。
4)混合型指的是運用以上兩種或以上的方法的一種模式。
四、測試人員應該具備的素質是什么?
自動化測試人員需要具備什么樣的素質因人的工作而異,下面是我對自己的一些基本的要求:
1)重溫基本的unix命令;
2)重溫數據庫相關知識和命令;
3)重溫性能測試LR;
4)重溫接口測試jmeter/SoapUI ;
5)學習編程語言:python,java;
6)學習通信協議:http,html,TCP/UDP等;
7)學習自動化設計框架。