1. 程式人生 > >對自動化測試常見的5個誤解

對自動化測試常見的5個誤解

對自動化測試常見的5個誤解

長期以來,自動化軟體測試一直被認為是大型軟體開發組織的關鍵,但是通常被認為對於小公司來說太昂貴或難以實現。

自動化測試不是銀彈,很對管理者和測試者對於應用自動化測試有很多誤解。其實在組織中引入自動化測試的成本是很高的,涉及到自動化測試的框架選擇、環境構建、人員技能、測試流程和測試管理、測試效果評估和測試度量等等一系列的問題。

下面列出對於應用自動化測試常見的5個誤解:

 

誤解 誤解的表現 分析

誤解1

提高測試覆蓋程度

這個答案非常有效。

但是我們如何定義覆蓋率呢?如果我們有100個測試,我們如何測量覆蓋率?

 

有了成熟的測試自動化實踐,您可以在相對短的時間內執行數百個測試。

正因為如此,我們可以為給定的特性建立更多的測試用例、更多的測試場景和使用更多的輸入資料進行測試,從而獲得更多的信心,相信系統按預期工作。

然而,在測試,尤其是測試自動化中,更多的測試並不意味著更好的質量或者更多的發現bug的機會。

誤解2

節省時間

這個答案也是正確的。

因為你可以在自動化測試執行時花費寶貴的時間進行更多的的探索性測試。然而,對於已經開發的一個全新的特性,編寫自動化指令碼實際上要比在第一瞬間手動測試該特性花費更長的時間。

重要的是要注意,為了從自動化測試中節省時間,需要在編寫自動化測試的指令碼時進行初始的增加的努力,確保這些測試經過了程式碼審查,並且自動化測試的執行中沒有出現任何中斷。

誤解3

發現更多的缺陷

這個答案就非常不好了,因為我從來沒有見過任何指標表明自動化比手動/探索性測試發現更多的bug。

自動化測試通常在實現新特性之後檢查系統中的功能迴歸。

與現有功能相比,在新特性中總是有更多的機會發現新的bug。

此外,自動化測試未能發現缺陷還有其他原因。

誤解4

替代手工測試(者)

這可能是我聽到的最糟糕的答案。

手動測試人員所做的與自動化測試檢查之間有明顯的區別。

自動化測試其實本質上並不是測試,而是檢查事實。

為了能夠自動化測試,我們必須知道預期的結果,以便我們能夠檢查有效或無效的結果。這就是給予我們真或假,positive or negative,通過或失敗的原因。

由於不同的心態和質疑係統的能力,總是需要優秀的手動測試人員。

誤解5

提高質量

這也是我聽到的最糟糕的答案。

儘管自動化測試能夠給我們快速反饋並提醒我們應用程式中的問題,但是自動化測試本身並不能提高質量。

我們可以通過確保在開發週期的從頭到尾遵循正確的實踐來提高質量。質量不是事後考慮的,它應該從一開始就做好。

僅僅依靠測試,包括手動測試和自動化測試來獲得產品的質量是完全不夠的。

預防勝於檢查。

 

那麼問題又來了,我們為什麼需要自動化測試?

簡單的一句話:為了消除測試中的重複測試。為了增強團隊對於系統構建和產品釋出的資訊。

每當新功能部署釋出時,可以通過採用自動化測試的方式進行快速的Regression Test,這可能是應用自動化測試最主要的原因了。

對於引入自動化測試的正確的理解

1. 關於提高測試覆蓋

自動化軟體測試可以增加測試的深度和範圍,以幫助改善軟體質量。自動化軟體測試可以檢視應用程式內部,檢視記憶體內容、資料表、檔案內容和內部程式狀態,以確定產品是否按預期執行。測試自動化可以在每次測試執行期間輕鬆地執行數千個不同的複雜測試用例,這提供了手動測試所不能覆蓋的範圍。

2. 關於節省時間

為了確保質量,在開發週期中必須經常重複軟體測試。每次修改原始碼時都應該重複軟體測試。對於軟體的每個版本,可以在所有支援的作業系統和硬體配置上進行測試。手動重複這些測試既昂貴又耗時。一旦建立,自動測試就可以在不增加成本的情況下一次又一次地執行,並且它們比手動測試快得多。自動化的軟體測試可以減少從幾天到幾小時執行重複測試的時間。直接轉化為成本節省的時間節省。[ 這才是對於引入自動化測試可以節省測試時間的正確理解。]

3. 自動化測試和手動測試最大的區別

即使是最認真的測試人員也會在單調的手動測試中犯錯誤。自動化測試每次執行時都精確地執行相同的步驟,並且永遠不會忘記記錄詳細的結果,因為可以自動產生測試結果和報告。從重複的手動測試中解放出來的測試人員有更多的時間來建立新的自動化軟體測試和處理複雜的特性。

即使最大的軟體組織和測試部門也不能系統/產品模擬高併發、高負載、高可靠性的測試。自動測試可以模擬數以萬計、百萬計的虛擬使用者與網路、軟體和應用程式互動。所以,在某些特定的測試中,必須依賴於自動化測試的實施才能達到測試的目的。

4. 改善開發團隊等所有人對於系統/產品的資訊

開發人員和測試者可以使用共享的自動化測試在傳送給QA之前快速捕獲問題。每當簽入原始碼更改時,測試可以自動執行,如果它們失敗則通知團隊或開發人員。這樣的特性節省了開發人員的時間,提高了他們的信心。

通過自動化軟體測試執行重複的任務,讓團隊有時間花費在更具挑戰性和更有價值的專案上。團隊成員提高了他們的技能集和信心,並且反過來,將這些成果傳遞給他們的組織。

總結

我們將測試自動化,因為我們需要反覆執行相同的測試。如果只執行一次而忘記它,您想要自動化測試嗎?當然不是!您在自動化測試上花費的時間和精力,可以手動執行它。

現在,根據定義,我們將需要頻繁執行的可重複測試(即迴歸測試)自動化。

因此,下次,當您想要自動化一個測試時,退後一步,想想您可能多久執行一次這個測試?自動化測試真的值得嗎?