一、自動化測試概述
軟件自動化測試是相對手工測試而存在的,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。在此過程中,節省人力、時間或硬件資源,提高測試效率。
二、自動化測試優勢&劣勢
優勢:
提高測試執行效率,節約時間成本;
解放人力去做更重要的工作;
可重復利用,建設對人的依賴;
提升客戶滿意度;
提升測試團隊的整體水平;
可大幅度減少兼容性測試的工作量;
有些測試工作必須依靠自動化實現來完成;
劣勢:
開發測試腳本需要花費較大的時間成本,拉長周期;
產品的快速迭代,自動化腳本也將不斷迭代,時間成本很高;
不同的項目之間自動化腳本的復用度很低;
對短期型項目產品實現自動化價值不高;
自動化無法完全代替手工測試找到bug,實現100%覆蓋;
自動化更多的適用於回歸測試;
自動化開發過程對軟件測試團隊的技術有更高的要求;
三、自動化測試常用工具
代碼級別:
XUnit:junit,cppunit,NUnit
mock工具:JMock,PowerMock
靜態代碼掃描:findbugs、checkstyle、pmd、godeyes、fireline、oclint、infer、jslint等等
API層:
jmeter、postman、newman、soapui、python+requests、java+restassured
UI層:
appium、selenium
如果從代碼級別做起來自動化的話,發現問題越快,修改成本越低,但是前期投入量大,入手難度大。
如果從ui層入手的話,入門簡單,但是如果遇到ui頻繁變動的話,維護成本高,並且ui層主要用於回歸測試,保證之前功能是ok的,很難用來去發現bug
api層,入手快,執行效率高,發現問題快,所以盡量從api開始做。