自動化測試和手動測試利弊


一、手動測試

    手動測試,就是指完全依賴人工測試軟件,主要根據測試用例來執行測試,但是測試用例也不可能100%覆蓋軟件功能還要通過其他方式來發現軟件缺陷,這樣就要求測試人員的經驗要豐富並且具有發散思維的能力,通過錯誤猜測等方法來彌補測試用例沒有覆蓋的部分。

1、軟件測試的優缺點有哪些?

優點 VS缺點

   在於,能夠在測試過程中充分發揮人的主觀能動性,靈活性;可以充分利用發散思維和優秀的邏輯思維能力,分析能力以及判斷力;資金花費用小,測試用例等易維護;可以測試界面布局,排版,色彩等,以及用戶體驗;驗證bug,測試規律性不強的issue。 

但是,人工測試代價比較昂貴,人員投入較大並且測試者做的是重復的勞動很容易產生精神疲勞從而導致錯誤的產生和測試盲點,有些問題在其他人看來很容易發現但是測試者卻看不到。

2、哪些項目更適合手動測試?

1)定制型項目(一次性的)

為客戶定制的項目,維護期由客戶方承擔的,甚至采用的開發語言、運行環境也是客戶特別要求的,即公司在這方面的測試積累就少,這樣的項目不適合作自動化化測試。

2)項目周期很短的項目

項目周期很短,測試周期很短,就不值得花精力去投資自動化測試,好不容易建立起的測試腳本,不能得到重復的利用是不現實的。

3)業務規則復雜的對象

業務規則復雜的對象,有很多的邏輯關系、運算關系,工具就很難測試。

4)美觀、聲音、易用性測試

人的感觀方面的:界面的美觀、聲音的體驗、易用性的測試,也只有人來測試

5)測試很少運行

一個月只運行一次測試很少運行,對自動化測試就是一種浪費。自動化測試就是讓它不厭其煩的、反反復復的運行才有效率。

6)軟件不穩定

軟件不穩定,則會由於這些不穩定因素導致自動化測試失敗。只有當軟件達到相對的穩定,沒有界面性嚴重錯誤和中斷錯誤才能開始自動化測試。

7)涉及物理交互

工具很難完成與物理設備的交互,比如刷卡的測試等。

二、自動測試

      而自動化測試,就是借助於一些測試工具來執行測試。首先,對於一些基本的、邏輯性不強的操作可以使用自動化測試,比如現在使用自動化測試最頻繁的回歸測試。其次,有些測試是人工不能實現的或者實現起來成本較高的測試需要使用自動化工具,比如壓力,負載測試等。

1、自動化測試的優缺點有哪些?

在日常工作中,我們經常使用到黑盒測試和白盒測試。今天,我們就將結合實例共同探討黑盒測試的主要測試方法。話不多說,上干貨!

優點:

1)程序回歸測試更方便

      這也是自動化測試的主要用途之一,特別是在程序修改比較頻繁的時候效果非常明顯。由於測試的腳本和用例都是設計好的,測試期望的結果也可以預料,將回歸測試自動化可以極大的提高效率縮短回歸時間。

2)模擬真實情況

可以執行手工測試困難或不可能達到的測試,比如同時並發N個用戶,不可能讓N個測試人員同時測試,這時使用自動化測試工具模擬多用戶並發從而達到目的。

3)更好的利用資源,解放人力資源

可以讓更多更繁瑣的事情執行自動化測試,減少了測試的錯誤,同時也解脫了測試人員,使有限的人力資源可以充分利用。

4)測試的重復利用

由於自動測試通常使用的是自動化腳本技術,這樣就可以只需要做較少的甚至是不修改就可以實現在不同的測試過程中使用相同的用例。

5)減少錯誤

由於測試的自動執行,所以不存在執行過程中的疏忽和錯誤,測試的質量完全取決於測試的設計。

6)測試具有一致性和可重復性。

由於測試是自動執行的,每次測試的結果和執行的內容的一致性是可以得到保障的,從而達到測試的可重復的效果。

7)增加軟件信任度。

缺點:

1、自動化測試沒有思維,設計的好壞決定了測試的質量,依賴測試質量; 

2、無想像力,缺少一些人性化測試:它們只能檢查一些比較主要的問題,如崩潰、死機,但是卻無法發現一些一般的日常錯誤,這些錯誤通過人眼很容易找到,但機器卻往往找不到。

3、自動化測試發現的問題比手工測試要少的多(測試專家James Bach的經驗指出:在新缺陷的發現當中,85%是靠手工測試發現的,只有15%是靠自動化測試找出來的)。

4、自動化測試軟件本身就是一個產品,它在運行的時候有可能影響被測軟件的性能。

5、測試設計人員的要求很高:自動化測試並不是簡單的錄制和回放,需要修改腳本、設計場景等。

6、不能取代手工測試:不可能期望自動測試工具完全取代所有的手工測試。例如:測試結果需要人來判斷;色彩模式的適合程度、頁面結構的直觀效果等。

7、測試自動化不能提高有效性:只能減輕人的工作量,測試的有效性不會比人手工做得好。

8、測試自動化可能會制約軟件開發:由於自動測試比手動測試更脆弱,所以維護會受到限制,從而制約軟件的開發。

9、通過自動化工具測試沒有發現任何缺陷,並不說明該系統不存在缺陷,測試工具只能判斷實際結果和期望結果之間的差別。

2、哪些項目更適合自動化測試?

1)產品型項目

    產品型的項目,每個項目只改進少量的功能,但每個項目必須反反復復的測試那些沒有改動過的功能。這部分測試完全可以讓自動化測試來承擔,同時可以把新加入的功能的測試也慢慢地加入到自動化測試當中。

2)增量式開發、持續集成項目

由於這種開發模式是頻繁的發布新版本進行測試,也就需要自動化測試來頻繁的測試,以便把人從中解脫出來測試新的功能。

3)能夠自動編譯、自動發布的系統

要能夠完全實現自動化測試,必須能夠具有自動化編譯,自動化發布系統進行測試的功能。當然,不能達到這個要求也可以在手工干預下進行自動化測試。

4)回歸測試

回歸測試試自動化測試的強項,它能夠很好的確保你是否引入了新的缺陷,老的缺陷是否修改過來了。在某種程度上可以把自動化測試工具叫做回歸測試工具。

5)多次重復、機械性動作

自動化測試最喜歡測試:多次重復、機械性動作,這樣的測試對它來說從不會失敗。比如要向系統輸入大量的相似數據來測試壓力和報表。

6)需要頻繁運行測試

在一個項目中需要頻繁的運行測試,測試周期按天算,就能最大限度的利用測試腳本,提高工作效率。

三、綜合運用,效率更高

測試工作無論是手工測試還是自動測試都是軟件質量的保障途徑,兩者要有效的結合才能達到更好的效果。我們要明白無論是手動還是自動化測試,都只是完成測試工作的方式,知識處理方法不同,並無優劣之分。根據我個人的工作經驗,結合手動測試和自動化測試的優勢,應用於同一個項目中,那么工作效率會大大提升。

 

在實際工作中,如何選擇測試方式,可從這幾個方面考慮:技術、成本、重復度。

 

1、從技術上來說

如果項目測試條件上,自動化人充足,或者技術高,就可以多選一些Case;如果自動化剛起步,就可以選擇一些簡單的,重復的Case實現。

舉例:

比如現在我們要做一個外包小項目,兩個月就交付了,以后很可能就不再繼續了,那么沒有必要也沒有條件去搞自動化測試了。自動化測試的前期是需要很大投資的,其中的持續維護也是一筆不小的開支。當然如果像Visual Studio這樣一個產品,不僅龐大、而且保持持續更新,那就必須要做自動化的,但是自動化和手動測試不會相互取代的,所以自動化測試和手動測試皆不可少。

另外我們最好建立成本模型,來更好地權衡使用自動化測試還是手動測試,具體方法這篇論文里有詳述。

 

2)從重復度上來說

       重復的,穩定的,適合於自動化測試(這是判別是否用自動化的根本標准)。諸如要模擬大量用戶,經過多次重復測試,或者是需要大量數據的性能測試,負載測試,壓力測試等是要做自動化測試的。

       還有我們常常用自動化測試來,監視最重要(最有價值的)的需求。用手動測試來監視一些難以自動化的測試(比如布局和可用性)。或者說,用手動測試來做發散測試。

另外一個選擇手動和自動測試的角度是:如果一個東西對外部世界有影響,那么建議使用自動化測試來體現它;如果它只是內部的東西,那么沒有必要用自動化測試覆蓋它(手工測試必要)。

總之:

手動測試和自動化測試各有利弊,讓我們合理運用二者,讓他們無間合作來為我們的項目服務吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM