關于自動化測試的一些思考
時至今日,進項目組已經半年了,對自動化測試也有了更深刻的認識和理解。
為什么要進行自動化測試?要回答這個問題,先了解一下測試背景。我們項目所使用的軟件開發模型是agile,agile開發的scrum模型,整個大項目分成一個個小team,每個team都有一個scrum master。Scrum master 根據每個人的情況安排任務,制定sprint plan。我們的測試有兩條線,一條是main line ,一條是branch line,平均每個sprint是一個月(22個工作日),差不多每周要出2個build,每個sprint大概4-7個build。版本迭代非常快,周期短;對于QA,每個人要負責至少一個component,每個component有200-400個case,每個case如果手工測需要2分鐘左右,再加上整理test summary,將測試結果上傳到ALM,時間往往不夠用。因此單純的依靠手工測試,workload 非常大,占用時間非常多,顯而易見;另外的一個問題是regression,有很多情況下新發布的版本并未修改你所測component的code。當然,除了workload的另外一個因素就是沒玩沒了的meeting,stand up meeting,各種on line meeting,無形中會影響一個人的工作進度。這時候矛盾就凸顯出來,在人員有限,工作量很大的情況下,測試風險極大的情況下,急需一種解決方案—就是自動化測試。
自動化測試有什么好處:
a) 節省人力,只要代碼維護的好,不需要那么多人就可完成測試
b) 節省時間,測試腳本可以晚上或者是周末跑測試腳本
c) 優化資源分配,在運行測試腳本的同時,QA可以做其他事,比如設計新測試用例
d) 方便regression,極大提高效率
e) 增加軟件的可信度,測試是機器執行的,排除了手工測試時因人為情緒而發生的隨意性或疏忽性,測試結果更可信
f) 能完成手工不易控制的工作,比如采集系統cpu占有率信息,手工計算很復雜,還要進行數據比對,使用腳本更簡單,更方便。
自動化測試的缺點:
a) 腳本維護成本高,尤其是版本變動比較大,對項目來說,是潛在的風險
使用什么自動化測試工具,對于client端的同學來說,一般是QTP,而對于server端的,我們使用的是perl和shell寫的自動化測試框架。
原文鏈接:http://www.cnblogs.com/tobecrazy/archive/2012/12/18/2824248.html