自動化測試工具不等于自動化測試。相信所有從事過自動化測試和沒有做過自動化測試但是有測試經驗的人都會認同這一點。用自動化測試工具寫腳本并不意味著我們就一定在做自動化測試;自動化測試是什么呢,自動化測試它是一個過程,它有一個完整的生命周期,包括需求分析,用例設計,腳本編寫,運行維護等多個環節。而編碼還有多種方式,用自動化測試工具只是創建腳本的方式之一。但是這并不是說自動化測試工具不重要,因為無論測試框架搭建的多么完美,最后總是要實現出來的。熟練掌握工具可以提供自動化測試的效率,但是自動化測試工具卻不是決定自動化測試效果好壞的關鍵因素。
自動化測試一定要重視需求的分析過程。在軟件開發過程中,需求重于一切,需求驅動開發,需求驅動管理。在自動化測試也一樣,定義合理,正確的自動化測試需求是自動化測試順利進行的重要基礎。在自動化測試過程中,需求決定一切。舉個例子,比如我們要測試一個登錄功能,如果測試目的是驗證正確的用戶名和密碼可以成功登錄即可,那么OK,我們的自動化測試中不會去考慮錯誤的用戶名的情況,也不會考慮登錄頁面的布局是否合理,是否有錯別字等等,為什么我們對這些明顯并且簡單的功能都不做自動化測試驗證呢?理由很簡單,我們的測試需求只是驗證成功登錄,不包括界面布局(其實這是一個不合理的自動化測試需求)和是否有錯別字。這是自動化測試與人工測試的區別之一,人工測試時,這些測試點在執行測試時順便看上一眼就OK了,但是對于測試腳本來說,沒有“順便看上一眼”這種動作,腳本是不會思考的,人讓它干什么它就干什么。如果想包括登錄頁面中所有的驗證怎么辦?很簡單,把所有要驗證的功能都加入到自動化測試需求列表中, 然后提交給自動化測試工程師。但是這樣做最直接的后果是自動化測試的成本無限擴大,測試時間一天天推遲,自動化測試工程師一次又一次的崩潰。
以前有人向我提問:“請問自動化測試在需求階段能做什么,謝謝”。對于這樣的問題說實話我無法回答,因為要回答這樣的問題之前,我們要先搞清楚這么幾個問題:在需求階段我們有哪些工作?這些工作中是否存在重復性高并且可被量化或可被明確通過標準的工作項?這些工作項是否適合通過自動化測試解決。這些問題搞清楚后我才能回答在XX階段自動化測試能做什么的問題。這其實是兩種自動化測試的思路,前者是希望先了解自動化測試的能力范圍,然后再去定義測試需求;但是我一直堅持認為,自動化測試必須首先定義出明確的測試需求,然后我們再去尋找適合我們的測試工具或測試框架。還是那句話,在自動化測試過程中,需求決定一切。也許有人會說了,那我還不清楚在需求階段有哪些測試工作啊。對不起,那是您測試管理和工作上的問題,自動化測試也幫不了什么忙。
第一篇先寫這么多,以后想到再補充,手酸了……
文章來源于領測軟件測試網 http://www.kjueaiud.com/