一、自動化測試的概念
2010年前后開始成熟的以測試設計為中心的自動化,主要有兩個概念:自動化測試執行技術和自動化測試設計技術。
1.自動化測試執行技術
指執行測試用例或腳本,自動操作被測對象及測試環境中周邊設備來完成測試步驟和結果檢查,自動判斷出測試用例的執行結果的相關技術。
2.自動化測試設計技術
指通過某些信息(如系統的模型,設計模型,源代碼等)由生成算法自動地測試生成測試用例和/或測試腳本的相關技術。
二、自動化測試的優缺點
1.自動化測試的優點
提高測試質量
提高測試效率,縮短測試時間
提高測試覆蓋率
執行手工測試不易完成的測試任務
更好地重視軟件缺陷的能力
更好地利用資源
增進測試人員與開發人員之間的合作伙伴關系
能執行測試步驟更長,綜合性更強的測試用例
更快地反饋軟件質量情況
提高系統的穩定性和可靠性
2.自動化測試的缺點
產生開發成本
需要測試技術團隊
腳本維護成本高
無創造性
引入更多的復雜性
容易出現偏離原始的測試目標
可能引入額外的錯誤
三、基于模型的測試(MBT)
屬于自動化測試設計目前的其中一個方向,另一個方向為基于搜索的測試技術。
1.基于模型的測試技術
基于模型的測試技術通過模型描述軟件的需求和期待的行為,自動地生成測試用例和腳本。基于模型的測試技術通過建立系統的模型,利用模型來描述系統的需求、行為、數據等各個方面的信息,通過計算機算法從模型中自動地生成測試用例和測試腳本。然后通過成熟的自動化測試執行系統來執行生成的測試。從而進一步提高自動化測試的效率。其將原由人工實施的測試用例設計的過程分為測試建模和測試生成兩大部分。測試建模仍然需要人工實施,而測試生成則由生成算法來自動完成。
2.基于模型的測試技術的主要優點
測試設計的自動化能改善效率和減少人為錯誤
盡早建立測試模型能改善溝通,提早發現需求中的缺陷
使得不了解測試設計技術的業務分析人員也能實施測試設計
提高測試覆蓋,從而改進軟件產品的質量
縮短測試設計的周期,加速測試活動
3.基于模型的測試技術的缺點
從模型生成測試用例數量可能過多(測試用例爆炸)。所以應仔細控制測試生成和選擇合適的算法來避免
建模需要一定的投入
模型也可能描述錯誤。模型是人建立的,故此可能包含錯誤。由此生成的測試用例也會包含錯誤
模型的抽象可能帶來理解上的困難。所有的模型都定一定程度的抽象,當抽象的邏輯原則未達成共識時,可能導致評審者無法理解測試模型
4.基于模型測試技術的常用工具
微軟的Spec Explorer
GraphWalker
Stoat
MBT On Cloud
四、測試工具的選擇
市場上的常用自動化測試工具有很多,常見的有UFT(別名簡稱:QTP)、Robot Framework、Selenium、Appium