手動測試無法被取代的13個重要理由
譯文【51CTO.com快譯】 有些開發(fā)團隊十分推崇自動化測試,不可否認,自動化測試在回歸測試和檢查冗余組件方面不失為安全有效的方法。但是我們更應(yīng)該堅信探索性的手動測試。雖然自動化測試變得越來越復(fù)雜,但這始終需要人工驅(qū)動。實際上,自動化測試通常是從最初的手工工作中轉(zhuǎn)換過來的。這就是為什么開發(fā)團隊需要手動測試人員,不管是外包還是內(nèi)部測試。
1.許多測試必須是手動的
用戶體驗可說是進行手動測試非常重要的原因。我們可以通過用戶得反饋得到寶貴的意見,即便是批評。因為在產(chǎn)品推出的時候,用戶不僅關(guān)注功能性,界面UI的***印象也非常重要,任何一個細節(jié)都逃不過用戶的眼睛。雖然煙霧測試可以實現(xiàn)自動化,人們還是傾向于人工測試。顯然,由測試人員在你的應(yīng)用程序中搜索查看是否已經(jīng)準備好進行核心測試要比編寫腳本來進行自動測試要快得多。況且早期階段的測試腳本不會持續(xù)太久,只有人工才能在針對多個區(qū)域的產(chǎn)品中重復(fù)檢查語言使用和其他關(guān)鍵本地化因素。
2.自動化測試授權(quán)人員
就像駕車有時需要急剎車一樣,自動化測試同樣不能缺少人的監(jiān)管。自動化測試軟件節(jié)省了重復(fù)工作的時間,而手工測試工作可以圍繞創(chuàng)造性的實例展開。自動化測試最成功的用途并不是試圖使其行為像人類一樣,而是通過創(chuàng)建新的、獨特的腳本來提高整體產(chǎn)品覆蓋率。
3.bug總出現(xiàn)在你最不經(jīng)意的地方
即使在測試特定的產(chǎn)品案例時,測試人員依然可以找到他們沒有預(yù)料到的bug。這可不是一項小工程!在很多項目中,大多數(shù)bug的發(fā)現(xiàn)其實是在測試人員尋找其他問題的時候發(fā)現(xiàn)的。自動化測試無法發(fā)現(xiàn)沒有編程的錯誤。
4.人工測試具有創(chuàng)造力和分析能力
雖然我們總在抱怨人類能力的不足,比如為什么我們不能飛?但人工作業(yè)確實有自己的優(yōu)點。測試人員帶著自己的技術(shù)和經(jīng)驗來制定策略,開始每一個新工程。在這個層面上,人類的分析能力和速度是無法言喻的。
5.測試腳本的快速重寫
在不斷的反饋、快速反應(yīng)的環(huán)境下使用測試腳本意味著對產(chǎn)品流、UI甚至特性的更改。幾乎每次更改都要重新編寫一個Sprint自動化腳本。新的更改也會影響回歸測試的腳本,因此即使是典型的自動化測試也需要進行大量快速的更新。這之中大量的工作需要開發(fā)團隊考量應(yīng)該在何處投放更多資源。
6.自動化對于小型項目來說過于昂貴
自動化軟件需要你花錢來支付,而且由于腳本編寫和重寫以及設(shè)置和處理時間,你的維護和管理成本會更高。對于長期項目或大型產(chǎn)品來說,高成本的付出是值得的。但對于短平快的小項目來說,實施自動化測試是對時間和金錢的巨大浪費。在計算自動化采購的潛在投資回報率時,還必須考慮增加工時的因素。
7.自動測試更適合用于***沖刺
我們希望技術(shù)能為我們做什么和我們實際能用它做什么是有區(qū)別的。隨著腳步不斷的更新,很難保證自動化測試的準確性。用原腳本測試修補后的程序是毫無意義的。成功的自動化測試很早就開始了,而且從來沒有在更新環(huán)節(jié)上落后過。如果開發(fā)團隊沒有資源來實現(xiàn)這一目標,***不要嘗試(除非團隊正在進行長期投資以改進流程)。
8.人工測試人員更了解用戶習慣
測試人員在漫長的工作過程中積累了豐富的經(jīng)驗,誰也不想浪費這些經(jīng)驗和知識。因為人類測試人員通常像一個用戶,他們能提供的價值遠遠超過了產(chǎn)品當前性能的所及。測試人員還可以在交付產(chǎn)品和反饋建議中引導(dǎo)產(chǎn)品朝新的方向改進。
9.自動化無法捕捉人類沒有意識到的問題
這個問題和我們談到的第3點有些關(guān)聯(lián),bug往往出現(xiàn)在我們意想不到的地方。除此之外,在整個項目中還可能存在其他我們沒有意識到的風險。而探索性的測試可能會降低這些風險的發(fā)生。無論測試團隊依賴何種形式,做到運籌帷幄永遠是必要的。簡單的一次性測試通過是不可能的,對于那些細枝末節(jié),手動測試的速度反而更快。
10.好的測試是可重復(fù)的,也是可變的
成功的測試有兩個因素:重復(fù)和變化。自動化測試對于持續(xù)檢查過程非常有用,但這還不夠。你還需要演進,還有一些未知的變化。結(jié)合看來,這兩個因素會使產(chǎn)品覆蓋率提高的機會更大。
11.移動設(shè)備的測試更為復(fù)雜
設(shè)備兼容性和交互不能用自動腳本覆蓋。像在離開wifi環(huán)境和再次連接時,同時運行幾個app時,設(shè)備的限制、接收電話和消息都會潛在破壞應(yīng)用程序的性能。更改滑動方向和用手指輕敲的次數(shù)也會影響移動應(yīng)用程序。如果你想讓觸摸屏手機減少宕機的次數(shù),進行手動測試是非常重要的。
12.手動測試的通過率更高
在測試中通過與否是需要考量的,我們要求自動測試軟件一邊模擬使用,一邊呈現(xiàn)所有的測試結(jié)果。但對于大多數(shù)項目來說,可能發(fā)生更復(fù)雜的情況。Web表單就是這方面的一個主要例子。一個自動化腳本可以很容易地輸入到一個網(wǎng)頁,但它不能實現(xiàn)兩重檢測,如果一個用戶定位離開再返回,測試的數(shù)據(jù)將被保存。至于提交的速度,在人工測試時,測試員會注意到Web表單提交的速度是否過慢,特別是當其他網(wǎng)站高速加載的時候。但速度并不能說明測試的通過與否。
13.手動測試可以快速重現(xiàn)客戶發(fā)現(xiàn)的錯誤
雖然你希望在部署之前捕捉到所有bug,但你一定也希望客戶能把一些錯誤和問題直接反饋到你。手動測試人員可以使用客戶提交的信息提交錯誤報告,這對工程師是有幫助的。通過手動測試,可以縮短從客戶提出問題到修復(fù)之間的時間。自動測試雖然很強大,但手動測試能提供的服務(wù)和優(yōu)勢也是不可取代的。
作者:DayanaStockdale
原文鏈接:https://dzone.com/articles/13-reasons-why-manual-testing-can-never-be-replace
劉妮娜譯
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】