自動化橫行的今天,手工測試如何殺出一條血路?

码上生花發表於2024-11-06

📝 面試求職: 「面試試題小程式」內容涵蓋 測試基礎、Linux作業系統、MySQL資料庫、Web功能測試、介面測試、APPium移動端測試、Python知識、Selenium自動化測試相關、效能測試、效能測試、計算機網路知識、Jmeter、HR面試,命中率槓槓的。(大家刷起來…)

📝 職場經驗乾貨:

軟體測試工程師簡歷上如何編寫個人資訊(一週8個面試)

軟體測試工程師簡歷上如何編寫專業技能(一週8個面試)

軟體測試工程師簡歷上如何編寫專案經驗(一週8個面試)

軟體測試工程師簡歷上如何編寫個人榮譽(一週8個面試)

軟體測試行情分享(這些都不瞭解就別貿然衝了.)

軟體測試面試重點,搞清楚這些輕鬆拿到年薪30W+

軟體測試面試刷題小程式免費使用(永久使用)


自動化測試是每個軟體公司反覆提及的,放眼望去,測試崗位的招聘要求裡十有八九都會有一條“掌握自動化測試技巧”,甚至有的公司把用例自動化率(實現自動化的用例數/總用例數*100%)當作考核測試人員工作質量的指標之一。

那麼,對此,想必大多測試人員會發出靈魂一問:難道手工測試就必須消亡了嗎?自動化用例真的那麼重要嗎?是不是所有用例都需要實現自動化呢?自動化測試是不是就是所向披靡,無敵的呢?

在回答這幾個問題之前,我們先來簡單瞭解下自動化測試的特點。談及自動化測試,就不得不把手工測試拉出來一較高下了,它們各自的定義就毋庸贅言了。

自動化測試的特點
相較手工測試,自動化測試最大的優勢就在於:

能夠快速測試(快速檢測程式碼變更引入的錯誤);

可以重複測試(反覆執行成本低)。

但是,自動化測試也有自己的缺點:

如果軟體系統體量比較大,那麼自動化測試指令碼也會比較複雜。自動化測試指令碼的複雜度與系統的複雜程度是成正相關的;

如果軟體系統迭代快、週期短、變動多,那麼指令碼維護將需要較大成本;

隨著軟體系統的不斷迭代,功能的不斷增加或細節的變更,會出現大量冗餘的自動化測試指令碼,這類冗餘的指令碼會直接影響測試指令碼執行的效率;

自動化測試指令碼的質量直接影響測試執行成功率(執行成功透過的次數/總的執行次數*100%)。只要是程式碼都會有故障,測試程式碼也不例外。低質量的自動化測試指令碼有可能導致測試執行時的不穩定性(例如:反覆失敗);

對於測試人員而言,自動化測試,指令碼準備時間(如自動化測試工具選取、指令碼編寫等)大於測試設計時間;

對於迭代較快的產品,需要測試人員快速地完成測試,在此種情況下,留給測試人員實現用例自動化的時間不會很多,自動化測試在新功能週期內往往很難快速實現;

對於業務量大、業務複雜的系統(如經濟類系統,銀行等),用例自動化率難以保證。且如前端GUI自動化測試,100%用例自動化率本身就是一個幾乎難以實現的願景。

說了那麼多,到底是想證明個什麼事兒呢?其實,上面的闡述無非是想問答幾個問題:

手工測試會消亡嗎?
個人覺得,答案肯定是不會。為什麼呢?自動化測試有其優點,可以幫助測試人員快速完成迴歸測試。但其缺點也依然存在:測試程式碼冗餘、測試程式碼維護成本大、部分產品的複雜功能難以自動化等等。

是不是所有自動化用例
都需要實現自動化呢?
答案當然是否定的。理想很豐滿,現實很骨感。且不說產品本身特點是否能滿足完全自動化測試,從自動化成本(維護成本,時間成本,人力成本等)而言完全自動化就是值得思考的問題。再者,對於前端GUI自動化測試而言,完全自動化本身就很難。

自動化測試是不是
所向披靡、無敵的?
答案當然也是否定的。畢竟自動化測試的根本目的主要在於快速地迴歸測試,在迴歸測試的過程中對於環境的需求、場景的設定都是具有限定性的,且自動化測試程式碼也會存在故障。如果切換場景進行自動化測試,不見得能百分百透過。

那麼,再進一步想想,如果自動化測試很重要,但又不是百分百完美的,如果想要藉助自動化的便利提升測試效率,那麼應該針對怎樣的用例實現自動化呢?自動化用例應該用在什麼樣的測試活動中呢?

選擇需要實現自動化的用例
其實在上述章節已經揭曉瞭如何選擇需要實現自動化用例的部分原則。

選擇執行結果穩定的用例
實現自動化
試想如果一個用例執行結果不夠問題,那麼將手工測試步驟自動化有什麼意義呢?這個時候需要的是去重新審視測試步驟是否準確或者程式碼是否有隱藏問題吧?!

選擇功能穩定的用例
實現自動化
試想如果一個模組或者一個功能頻繁變更,那麼用例實現自動化有什麼意義呢?如果將此類用例實現自動化,反而會加重測試人員對自動化指令碼的維護成本。

首先選擇介面用例自動化
那是因為介面自動化學習成本低,幾乎是每個測試人員接觸自動化測試的第一步。而且介面是每個模組銜接之處,保障系統執行的重中之重。

如果要求前端GUI自動化
要慎重
前端GUI本身就是一個屬於頻繁變動的部分,如果實現自動化,對自動化指令碼的維護就是一個不得不思考的問題。

也許你會說,我用錄屏啊。錄屏雖然學習成本低、操作簡單,但是對於測試步驟的斷言、測試結果的判定大多還需人工干預。

如何在自動化響亮的口號下
發展手工測試
百分百自動化測試是每個測試人員的追求,每個公司的終極夢想,但這本身就意味著實現的困難和不可能。

自動化測試很重要,但手工測試仍然不可或缺。

測試人員擔心自己會被各種不斷進步的自動化測試工具替代的時候,可以想想如何在包圍圈中拼殺出一條血路:我想,測試設計應該是一條可選之路。

好的測試設計能夠節省測試成本(如測試資源的投入)、提高測試效率、提升測試結果穩定性。同樣,優秀的測試設計能夠指引測試人員挖掘一些深層故障,提高產品質量。

常有人說:測試是一門簡單的工作,測試崗位可以被取消,不需要專職測試人員。但是如果不需要專職測試人員,讓開發人員兼職測試工作,豈不是開發人員既當選手又當裁判?如何能夠公正地評判。

再試想:如果開發人員能夠知道自己程式碼中的故障,那為什麼不在編寫程式碼的時候就避免了呢?


最近很多朋友都在說今年的網際網路行情不好,面試很難,所以我建立了一個交流群748833197,希望優秀的軟體測試寶子們都可以聚集在一起,大家可以一起解決軟體測試難題、面試難題、以及工作上的問題、以及利用這次機會提升自己的能力!!!

相關文章