1. 程式人生 > 其它 >從手動測試轉向自動測試

從手動測試轉向自動測試

需要持續和簡化工作流程的軟體開發方法(例如敏捷和 DevOps)的興起促使全球團隊儘可能地實現自動化。今天超過一半的測試仍然是手動執行的,這意味著對於許多團隊和企業來說,第一步是開始自動化。這可能是一項艱鉅的任務。在不妨礙當前開發過程的情況下從手動測試轉向自動化測試需要的不僅僅是採用自動化工具或聘請自動化工程師。為了使流程有效,必須構建框架,以不同的方式編寫測試用例。

構建完成後,有效的自動化測試流程可以幫助團隊:
減少測試時間並加快交付週期
提高測試覆蓋率和準確性
降低維護成本
在投入生產之前找到並修復更多錯誤
通過消除平凡和重複的任務來提高員工效率

有了這麼多公認的好處,並且團隊承受著更快交付的壓力,為什麼沒有更多的團隊轉向自動化測試?
手動測試是一個過程,在這個過程中,人們將作為終端使用者並通過各種應用程式工作流來測試軟體。與任何測試過程一樣,目標是確保應用程式按預期執行並在產品到達消費者手中之前發現錯誤。
根據產品、測試用例是什麼以及需要測試多少變化,手動測試執行可能需要大量時間。想象一下手動測試經典的“登入”操作,必須使用不同的資料集重複設定相同的測試,直到用盡想到的每個場景。或者,假設你正在瀏覽電子商務網站並意識到發現文字難以辨認,或者無法導航到購物車。這兩種情況對於軟體的成功都至關重要,並且這兩種測試都是手動執行的。後者需要人工測試,第一個不需要。

手動測試的優點

手動測試具有重要的好處,這些包括:
識別棘手的bug和可用性問題。眾所周知,消費者的行為是不可預測的,因此讓測試人員充當終端使用者可以發現從未想過要為其編寫測試的問題。要從使用者的角度評估應用程式的質量、響應性和體驗,人的思維是關鍵。好奇心是計算機還沒有的東西。
可由任何團隊成員實施。手動測試不需要指令碼或編碼技能,因此團隊中的任何人,不僅僅是QA,從測試人員到專案經理或產品所有者,都可以幫助實現測試。只要確保正確地記錄過程和結果。
非常適合剛開始使用的時候。在構建一個新軟體並剛剛開始測試時,專注於簡單地穩定產品,並且開發過程可能不會快速迭代,這是使用手動測試的好時機。
您沒有需要執行的迴歸測試用例庫,並且提供的任何反饋都將在順序和線性時間線中解決。

在這個時候,開始自動化會適得其反。
有些事情不值得自動化。在前面的示例中,確保線上讀者可以閱讀文字是一個快速而簡單的檢查,像這樣嘗試自動化質量保證檢查的測試是不值得的。

手動測試的缺點

雖然手動測試可以幫助團隊發現隱藏的bug,但是有很多理由可以實現自動化。如果執行手動測試,就有可能在最後期限和最終業務目標之前完成測試。通常,測試過程會成為更大開發週期的瓶頸,因為:
耗時。手動測試是由坐在計算機或應用程式前面的人用手來執行的。這些測試必須按順序執行,這意味著在第一個測試完成(理想情況下是通過)之前,不能在套件中啟動下一個測試。
重複的任務容易出現人為錯誤。某些測試型別,類似於前面示例中的“登入”函式,必須重複執行。
缺乏完整的平臺覆蓋。

由於測試時間較長且受制於人,手動測試缺乏確保完全覆蓋的能力。最低限度的環境集(瀏覽器、解析度、裝置、作業系統,甚至版本)通常是經過測試的,僅此而已。

自動化的障礙

在過去幾年中,自動化測試已經被廣泛接受為解決關鍵的手動測試問題的一種手段,以及實現更靈活的開發週期的一種途徑,但是要達到這一點並不像開啟開關那麼容易。那些希望擺脫手工測試的人將面臨一些挑戰:
測試可擴充套件性和穩定性。執行手動測試時不會考慮重複。隨著測試套件的增長,迴歸測試將變得更加關鍵,需要重複更多的測試以確保產品的持續功能。隨著團隊規模的擴大,他們將需要更快地完成這項工作的能力,並且需要為此構建測試。
複雜性、時間和資源。任何新的過程都伴隨著學習曲線。對於剛開始使用自動化的團隊來說,這可能意味著當前的測試人員需要培訓或僱傭具有新技能的人員。兩者都需要時間和金錢。
過程自動化,而不僅僅是測試。團隊在轉向自動化時犯的一個最大錯誤就是隻關注測試。其他任務,包括報告、清理測試資料、設定和拆除環境,都需要自動化。
公司觀點和心態。不是每個人都同意自動化測試的好處將超過與轉換相關的成本和時間。從管理層到從業者,讓每個人都站在同一個立場上是至關重要的。
尋找合適的工具。最終,團隊選擇的工具集應該解決前面提到的障礙,從啟用迴歸測試到為團隊提供全面覆蓋所需的正確環境。今天的自動化工具應該易於使用,併為測試人員提供無數方法來建立指令碼和自動化其他任務,如Eolinker:www.eolinker.com

自動化入門

手動測試永遠不會完全消失,但隨著團隊的成長和擴充套件,使測試周期儘可能高效至關重要。今天,效率是自動化的代名詞。自動化測試是通向更靈活的開發方法和更快的交付時間的第一步。這也意味著提高了消費者的質量,最終提高使用者滿意度。
隨著技術裝置的廣泛應用,團隊在更短的時間內完成更多的測試變得越來越重要。通過自動化測試階段的重要組成部分,從測試本身到報告,測試人員將有更多的時間關注嚴重的問題,並將他們的創造性思維用於策略和計劃。