blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/
1、什么是自動化測試
以程序測試程序,以代碼代替思維,以腳本的運行代替手工測試。自動化的測試涵蓋了:功能(黑盒)自動化測試,功能(白盒)自動化測試,性能測試,壓力測試,GUI(Graphical User Interface)測試,安全性測試等。
2、自動化測試的優(yōu)勢
回歸測試更方便可靠 ;可運行更多,更繁瑣的測試,且快速高效;可執(zhí)行一些手工測試執(zhí)行相當困難或者做不到的測試,如大量的用戶并發(fā);更好的利用資源,具有一致性和可重復性的特點,自動化測試腳本完全可復用;提升了軟件的可信度;多環(huán)境下測試等。
3、自動化測試無法做到的事以及劣勢
永遠不可能完全替代手工測試,自動化測試無法做到手工測試的覆蓋率,不是每個測試用例都適合做成自動化,如建議一個頁面的布局是否正確。
手工測試發(fā)現(xiàn)的缺陷遠比自動化多。自動化測試是幾乎無法發(fā)現(xiàn)新缺陷的,最大的用途是用來回歸,確保曾經(jīng)的bug沒有在新的版本上重新出現(xiàn)。
自動化測試工具是死的,它不具備任何想象力。自動化測試的好壞,完全取決于測試工程師。
成本投入高,風險大。對測試人員的技術(shù)要求高,對測試工具同樣有要求。
4、合適引入自動化
項目周期長,系統(tǒng)版本不斷,并且需求不會頻繁變更,此時是適合引入自動化測試的。
系統(tǒng)的測試對象基本可以正常識別,以及對無法識別的控件能否提供一個解決方案。
系統(tǒng)中不存在大量的第三方控件。
需要反復測試,如可靠性測試需要進行上千次的系統(tǒng)測試。
5、不適合自動化
項目周期短,需求頻繁變更。即使是周期長的項目,如果經(jīng)常需求變更,也不適合做自動化。
軟件版本還沒有穩(wěn)定的情況下,主功能或大量功能有被重新更改的可能話,也不適合做自動化。
沒有明確的項目測試自動化計劃,措施和管理。
多數(shù)對象無法識別,以及腳本維護頻繁與艱難,二者有其一,自動化必定失敗。
6、自動化測試的流程
合理的自動化切入點:通常,項目只有經(jīng)歷了完整的系統(tǒng)測試之后才算具備了基本的引入測試自動化的條件。
測試自動化分析:
(1)可行性分析
(2)抽樣demo分析,demo一般選取冒煙測試用例,檢查腳本是否能夠成功運行通過,已設計的測試點是否全部執(zhí)行
(3)測試需求分析,分析哪些功能點準備進行自動化
測試計劃定制:自動化測試計劃越全面,后期越能循規(guī)蹈矩的去實施,自動化測試的成功率越高
自動化測試設計階段:主要分為自動化測試框架和自動化測試用例。
(1)自動化測試框架的設計,開發(fā)與搭建:應能保證測試的分布執(zhí)行,腳本模塊化,數(shù)據(jù)驅(qū)動,日志分析,錯誤截圖,報表回收,共享對象庫,公共函數(shù)庫,環(huán)境配置,統(tǒng)一設計模式,異常處理,場景恢復的一個無人值守的,針對每個獨立項目的測試框架
(2)自動化測試用例設計三部曲:手工測試用例是從無到有,然后自動化測試用例是根據(jù)手工測試用例來寫的。首先,篩選手工測試用例。然后轉(zhuǎn)換手工測試用例,最后新增&補充自動化測試用例。
為什么不能用手工測試用例完全替代自動化測試用例?
自動化測試用例的范圍往往是核心業(yè)務流程或者重復執(zhí)行率高的,自動化測試的覆蓋率不能達到手工測試的覆蓋率。自動化測試的用例選擇一般以正向為主,而反向的情況卻有很多,但是并不是所有反向情況自動化測試都會涵蓋,而是有篩選的選取一部分。也并不是所有的手工測試用例都可以用來做自動化的,如頁面布局的檢查。手工測試可以不需要回原點,但是自動化測試往往是必須的。自動化測試用例與手工測試用例不同,不需要每個步驟都寫預期結(jié)果。
測試腳本設計與開發(fā):
測試腳本大致可劃分為五種,
(1)線性腳本:通過錄制直接產(chǎn)生的線性可執(zhí)行的腳本
(2)結(jié)構(gòu)化腳本:具有順序,循環(huán),分支等結(jié)構(gòu)的腳本
(3)可共享腳本:可以被多個測試用例使用,被其他腳本調(diào)用的腳本
(4)數(shù)據(jù)驅(qū)動腳本:測試數(shù)據(jù)跟業(yè)務流程控制分離的腳本,通過讀入數(shù)據(jù)文件來驅(qū)動流程進行的腳本
(5)關(guān)鍵字驅(qū)動腳本:腳本,數(shù)據(jù),業(yè)務分離,數(shù)據(jù)和關(guān)鍵字在不同的數(shù)據(jù)表中,通過關(guān)鍵字來驅(qū)動測試業(yè)務邏輯。關(guān)鍵字驅(qū)動的特點是,它更像是描述一個測試用例在做什么,而不是如何做。
自動化測試執(zhí)行:
(1)無人值守的測試:環(huán)境搭建,部署與配置;自動化測試用例與測試腳本相互綁定;自動化測試用例執(zhí)行順序排列與組合
(2)異常處理與場景恢復
提交自動化測試產(chǎn)物:大致需要提交執(zhí)行情況,測試結(jié)果,分析報表,測試報告,質(zhì)量情況等。
測試腳本維護:嚴格來講,每個階段都在做測試腳本維護。一個不值得維護的自動化測試項目是不值得立項的。
posted on 2012-09-11 10:12 順其自然EVO 閱讀(286) 評論(0) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動化測試學習
Powered by: BlogJava Copyright © 順其自然EVO