1. 程式人生 > >【轉】手工測試不能被取代的13個原因

【轉】手工測試不能被取代的13個原因

輸出 class 否則 運行 幫助 不同的 工作 支持 移動

原文轉自:https://mp.weixin.qq.com/s?__biz=MjM5NjQ4MzI5MA==&mid=2650584997&idx=1&sn=8e9314af7a84160540a41ed08d16c314&chksm=bee08e1089970706d5b455a060a24769a722b2545ecd77c599c67981edde8b01484c583579f5&mpshare=1&scene=1&srcid=0705wLjaUa0uJ5tYC5CgmXQK#rd

  目前,很多開發團隊開始采用自動化測試,在一定程度上,自動化測試就像他們的聖杯。自動化測試對於回歸測試和檢查冗余組件是一個很好的安全保障。但我們仍然十分支持人工以及 自動化
測試可以節省大量的時間和人力,但是有些測試的情況必須通過人的視角來看待。

目前,很多開發團隊開始采用自動化測試,在一定程度上,自動化測試就像他們的聖杯。自動化測試對於回歸測試和檢查冗余組件是一個很好的安全保障。但我們仍然十分支持人工以及探索性測試,即使自動化測試目前已經十分先進,但他們仍然需要人力驅動。實際上,自動化測試通常是從最初的手動工作轉化而來的,這就是無論外包還是內部使用,開發者仍然需要手動測試人員的原因。

1必須存在手動的全套測試

人工測試顯得重要的一個最大的原因就是用戶的經驗,我們(甚至開發者)可以時不時的提出一些有價值的批評。當提及系統功能或第一印象時,人眼是無法被取代的。盡管煙霧測試可以自動化進行,但它們更適合手動測試的形式。一個測試人員可以隨意的使用你的應用程序,看看它是否準備好進行核心測試,這比寫一個有同樣功能的腳本要快得多。而且早期的腳本肯定不能一直使用。另外,只有人可以仔細檢查一個針對多個地區的產品的語言使用以及其他關鍵的本地化
因素。

2自動化測試使人工測試變得可能

就像緊急情況下為你而開的車,當你離開時,自動化測試也一直在忙碌著。自動的軟件測試可以節省重復工作的時間,從而使人工測試可以圍繞更加富有創造力的測試用例展開。自動化測試最成功的地方不在於試圖使它的行為像人類一樣,而是過創建新的、獨特的腳本來提高整體產品的覆蓋率。

3Bugs總是出現在最不可能的地方

即使在測試特定的用例時,測試人員仍可以找到很多他們並不需要找的bug,這是一個很大的問題。對於一些項目來說,大多數bug實際上是由尋找其他內容的測試人員發現的。自動化測試不能發現沒有編程的錯誤。

4人具有創造力和分析能力

盡管我們總是想到人類的缺陷(比如我們為什麽不會飛),但是我們確實有我們自己的優點。測試人員所帶來的技能和經驗,可以幫助他們在每次開始一個新階段時制定策略。在這一點上,我們的快速處理速度以及分析無可替代。

5測試腳本必須在敏捷中重寫

在敏捷環境中使用不斷的反饋意味著對於產品流程、UI甚至功能的不固定的更改。而且幾乎每一次更改,都意味著你在下一次的沖刺中需要重寫你的自動化腳本。新的更改也會影響到回歸測試的腳本,所以即使是經典的自動化測試示例,也需要在敏捷中進行大量的更新。當開發團隊試圖思考如何投入資源的時候,這個的工作量是值得考慮進去的。

6自動化對於小項目太過於昂貴

你不僅需要購買自動化軟件,同時由於腳本的編寫和重寫以及設置和處理的時間,你還得支付更高的相關維護和管理成本。對於長期項目和大型工程,高成本是值得的。但是對於短期的,較小的項目來說,這是對於時間和金錢的巨大浪費。當在計算購買自動化軟件的潛在投資回報率時,你也必須考慮到因此所增加的工時。

7除非經過嚴格的管理,否則自動化將趨於落後

我們希望技術可以為我們做的事情,和實際上我們能用技術做的事情是不同的。通過持續的腳本更新,使沖刺保持自動化測試是非常難的。測試不再是最新的補丁是毫無意義的。成功的自動化測試很早就開始了,並且從來沒有落後過任何一次沖刺。如果一個開發團隊沒有資源來實現這一點,最好一開始就不要嘗試(除非團隊正在進行長期的投資,並且計劃改進整個流程)。

8人工測試者更了解用戶視角

人類整日都在學習。你肯定不願意浪費這些知識。因為人工測試人員通常以用戶的方式進行操作,所以他們所能提供的價值遠超對於產品目前表現的了解。測試人員還可以通過提交問題和建議來幫助產品尋找新方向。

9自動化測試無法捕獲人類意識不到的問題

這就回到了第3點,bugs通常出現在人們意識不到的地方。但除此之外,還有一些我們不會立即註意到的用例和巨大的風險。這種天生的無知可以通過探索性測試或者開發新腳本的探索性測試來緩解。無論團隊的測試形式如何,預先的策略總是必須的。但是我們永遠不能期待在最剛開始時就考慮到所有問題。對於我們忽略的大多數問題,人工測試有更快的速度。

10優秀的測試是可重復的,也是可變的

大多數成功的測試都是兩個因素的結合:可重復性和可變性。自動化測試對於持續的檢查非常有用,但這還不夠。你還想要變化,以及一些通配符用例。綜合來看,這兩個因素可以使產品有更高的機會實現全面的覆蓋。

11移動設備有更復雜的用例

自動化測試腳本無法覆蓋設備的兼容性
以及交互。像斷開和重新連接WIFI,同時運行其他應用程序,設備權限,接收電話和短信,都可能對應用程序造成嚴重的破壞。更改滑動方向和點擊屏幕的手指的數量也可能會影響移動應用。顯然,如果你希望你的應用有更少的怪事發生,你需要一個人工測試人員。

12人工測試勝過 ” 通過 / 失敗 ”

“通過/失敗”測試非常酷,我們要求我們的Testlions一直使用設定了輸出的測試用例。但是對於大多數項目來說,有更復雜的場景。Web表單是一個很好的例子。盡管自動化腳本可以輕松地在web頁面中填入值,但是如果用戶離開了頁面然後返回回來,腳本就無法值是否被保存了。另外,提交速度如何呢?人們一定會註意到,當其他網站全速加載時,web表單是否會提交變得異常緩慢。但是速度並不適合“通過/失敗”測試。

13人工測試可以快速重現客戶發現的錯誤

盡管你期待在部署之前可以發現所有bug,但也希望你的客戶能夠讓你知道任何發生的錯誤。對於基於雲的產品,熱修復是必須的。一個人工測試人員可以用客戶提交的信息,提交一個對開發者有幫助的bug報告。通過人工測試,客戶反饋問題和問題被修復之間的時間會大大縮短。如果你喜歡,那麽人工測試是非常棒的。但是,人工測試是一個不能被自動化的服務。

【轉】手工測試不能被取代的13個原因