目前,有些人對自動化測試的認識存在一定的誤區,因此有必要對自動化測試樹立正確的認識,以防止對其有過高的期望。
1、自動化的軟體測試與手工的軟體測試過程一樣
自動化測試所需要的技巧與手工測試所需要的技巧是不一樣的。通常,你的專案經理會被那些測試工具銷售們迷惑,認為自動化的軟體測試就是簡單地按乙個錄製的按鈕,產生測試指令碼。而事實上並沒有那麼簡單。
區分自動化測試所需要的技巧與手工測試所需要的技巧是非常重要的。最重要的是,自動化測試工程師需要掌握軟體開發技巧,沒有接受任何培訓的手工測試人員,或者沒有程式設計背景的手工測試人員,在實施自動化測試時會碰到很多困難。
2、自動化測試一定會馬上大量減少測試人員數量
自動化測試不會馬上大量減少測試人員數量。因為開展自動化測試初期需要投入一定的人力進行自動化測試指令碼開發,並逐漸將自動化測試指令碼用於日常的測試中,逐步減少手工測試人員從事重複勞動的時間和人數。為了縮短自動化測試指令碼的開發時間,可以考慮將自動化測試指令碼的開發工作借助外包的力量來早日實現大規模的自動化測試。
3、測試自動化就是錄製和回放
僅僅錄製得到的不是有效的自動化指令碼。很多專案經理仍然把測試自動化等同於使用錄製回放工具。而事實上,錄製得到的指令碼通常是不可重用的指令碼,指令碼中充滿了硬編碼的值,這些值應該被引數化,否則指令碼僅僅適用於乙個測試情況,指令碼還應該加入條件判斷、迴圈等結構,以便增強測試指令碼的靈活性。
4、自動化測試找不到bug
自動化測試不直接找bug,而是通過解放有經驗的測試工程師的生產力,讓其從重複的回歸測試中解放出來,從事新的測試方法和測試手段的研究。通過自動化測試解放出測試人員的時間和精力來間接地找到更多、更深層次的新bug,將產品質量再提高乙個檔次。
5、自動化測試工具是「萬能」的?
很多人一聽到自動化測試,就認為自動化測試工具可以完成一切測試工作,從測試計畫到測試執行再到測試結果分析,都不需要任何人工干預。顯然,這是一種理想狀態,現實中還沒有哪個測試工具有這個能力,並且將來也不會有。在現實中有關的測試設計、測試案例,以及一些關鍵的測試任務還是需要人工參與的,即自動化測試是對手工測試的輔助和補充,它永遠也不可能完全取代手工測試。
6、自動化測試工具容易使用
對於這一點,很多測試工程師有同樣的錯誤觀點,認為測試工具可以簡單地通過捕獲(錄製)客戶端操作生成指令碼,且指令碼不加編輯就可用於回放使用。事實上,自動化測試不是那麼簡單的,捕獲的操作是否正確,以及指令碼編輯是否合理都會影響測試結果。因此,自動化測試需要更多的技能,也需要更多的培訓。
7、自動化能提供100%的測試覆蓋率
並非所有內容都可以被自動化地測試到。不可能覆蓋所有可能的輸入,所有可能的組合和路徑。
自動化測試可以增加測試的廣度和深度,但是仍然無法達到100%的測試覆蓋率,因為沒有足夠的時間或資源。
8、忘記了測試的最終目標:找到bug
在自動化測試中,同樣要注意把邊界值分析、等價類分析、基於風險的測試方法、挑選最合適的測試用例等技術應用起來。
通常在自動化測試過程中,我們都忙著搭建自動化框架和編寫測試指令碼,但是我們往往忘記了測試的本來目的:找bug。
專案經理可能僱傭了最好的自動化開發人員來搭建框架,使用了最新最好的自動化開發技術,建立了成千上萬的自動化測試指令碼。但是如果bug仍然被遺漏了,那些本該被自動化測試指令碼捕捉到的bug,結果沒有**捉到,那麼你的自動化測試仍然會被認為是失敗的。
9、所有測試用例都可以自動化
不是所有的測試用例和測試步驟都可以轉化為自動化測試。在自動化測試投入較多的行業,領先企業的自動化測試率有的能達到80%左右,但仍有20%左右的測試用例需要手工來進行。在國外,通常從開發第一版測試用例時,就同步進行自動化測試指令碼的開發,所以自動化測試率普遍比中國企業高。
10、只有效能測試才需要自動化
自動化測試不光進行效能測試,更被大量應用於功能測試驗證,在國外超過半數的自動化測試指令碼都是用於功能驗證測試的。
11、測試工具可適用於所有的測試
每種自動化測試工具都有它的應用範圍和可用物件,所以不能認為一種自動化測試工具能夠滿足所有測試的需求。針對不同的測試目的和測試物件,應該選擇合適的測試工具來對它進行測試。在很多情況下,需要利用多種測試工具或者開發自動化測試框架才能達到自動化測試的目的。商業和開源的測試工具能夠用來進行自動化測試,但是我們需要根據自身產品的特點,開發自動化測試框架,在框架中提供常用的測試用例,加快測試速度,達到測試用例復用,這是今後測試自動化發展的道路。
12、自動化測試能發現大量新缺陷
發現更多的新缺陷應該是手工測試的主要目的,不能期望自動化測試去發現更多新缺陷。事實上,自動化測試主要用於發現原來的缺陷。自動化測試用於回歸測試,而大量的新業務測試更多地還是依賴手工測試。
除了以上列舉的常見誤區外,還有其他不同的認識誤區。自動化測試認識誤區的產生,歸根到底最本質的原因是由於對自動化測試不現實的期望,也就是期望過高造成的。
如果沒有建立乙個正確的軟體測試自動化的觀念,認為測試自動化可以完全代替手工測試,或者認為測試自動化可以發現大量新缺陷,或者不願在初期投入比較大的開支等,則自動化測試一定會讓我們大失所望。
相信通過這樣的解答,明白了什麼時候用手工測試,什麼時候用自動化測試,並且知道了自動化測試的侷限性,這樣就不會對做自動化測試的意義產生質疑了。
加油吧,測試人!路就在腳下,成功就在明天!
未來的你肯定會感謝現在拼命的自己!
軟體測試自動化
只有當系統的介面元素不會頻繁的變化 系統功能基本穩定,已經通過一至兩輪的手工測試,確定系統不會存在重大缺陷時,才可以考慮自動化的實施。使用自動化測試工具代替手工完成一些測試任務,現在國內主流的測試工具是loadrunner 和qtp。lr 效能測試工具 和qtp 自動化測試工具 的區別 1 lr 基...
軟體測試 自動化測試 回歸測試
軟體測試可分為以下幾類 1.單元測試。單元測試是針對程式中最小的可以測試的 塊進行驗證,比如中的乙個類。由此可見單元測試是和開發很接近的測試,其測試用例一般由開發人員編寫。敏捷開發模式中有一種開發模式叫做測試驅動開發模式,其主體思想即在 實現之前先實現單元測試用例。而程式編寫目的以程式功能通過單元測...
軟體測試之自動化測試
自動化測試的優勢 能夠極大地提公升測試的效率,測試人員可以迅速地在指定平台部署測試指令碼且對相應功能進行測試。弱化 了軟體測試人員個體差異對測試結果的影響。提高整個測試團隊的技能水平。自動化測試的缺陷 自動化測試的缺陷在於 總是按照既定的流程往下走,不能像人一樣隨機應變。一旦功能發生變動,就需要重新...