自動化和手動測試,保持平衡!

若是您是一名測試人員,那麼您必須就自動或手動測試進行討論。這並非什麼新鮮事,許多技術人員對此都有不一樣的見解。不管您是一個大型團隊,已經創建了自動化框架,仍是小型團隊,對於自動化來講都是新手,爲了得到最大效率,始終必須保持這種平衡。css

無疑,自動化測試具備提升效率,加快回歸速度並所以有助於及時交付項目的好處。它還能夠手動刪除重複的測試用例或迴歸用例,並節省測試人員的生命。html

可是,在考慮自動化以前,您應該評估一些要點。您必定已經聽過「您沒法使全部內容自動化」的說法,這是很是正確的。java

在許多狀況下,須要進行手動測試。實際上,手動測試自己的最大缺點是它的最大優勢是須要人工干預!在某些狀況下,須要人類的直覺和直觀性來測試系統。僅舉幾例,在如下狀況下,手動測試起着相當重要的做用。shell

  1. 可用性測試- 這是根據瞭解應用程序的難易程度來測試應用程序。這是爲了測試應用程序與將要使用它的用戶之間的交互性。這些測試沒法自動執行,必須手動執行。
  2. UI和UX測試-UI 和UX測試不能自動進行,即便您嘗試也只能在必定程度上進行自動化腳本能夠用來測試佈局,css錯誤和html結構,但不能提供整個用戶體驗自動化,由於它很是主觀。
  3. 探索性測試-塞姆·坎納( Cem Kaner)於1984年創造了該術語,將探索性測試定義爲:「一種軟件測試風格,強調個體測試人員的我的自由和責任,以經過對待與測試相關的學習來不斷優化其工做質量。 ,測試設計,測試執行和測試結果解釋是在整個項目中並行運行的相互支持的活動。」
  4. 臨時測試- 這是徹底計劃外的測試,依賴於測試人員的洞察力和方法。沒有準備好進行此測試的腳本,必須手動執行。

自動化測試的優勢

在某些狀況下,自動化測試是有益的,而且實際上能夠減小工做量並提升生產率。咱們來看一下:編程

  • 迴歸測試 – 迴歸案例大部分是重複的,咱們能夠將它們自動化一次並及時執行。
  • 負載測試 – 在負載測試的狀況下,自動化很是有用。負載測試可識別各類工做負載下系統中的瓶頸,並檢查負載逐漸增長時系統如何作出反應,這能夠經過自動化來實現。
  • 性能測試- 性能測試定義爲一種軟件測試,用於確保軟件應用程序在預期的工做負載下可否正常運行。在這種類型的測試中,自動化很是有用。
    除此以外,能夠將重複的測試用例自動化。牢記以上幾點,您能夠決定自動化的內容,方式和緣由。

什麼,爲何以及如何實現自動化- 有時要在手動和自動化之間保持平衡可能很是棘手。我已經看到許多積極進取的管理人員都在推進一切自動化。但這是最好的方法嗎?框架

在開始自動化以前,您須要回答如下三個問題:工具

1. 什麼須要自動化?

首先讓咱們考慮一下到底須要自動化什麼。在這裏,「精確」是指「需求」 /「功能」 /「應用」的哪一部分是尋求自動化的候選人。一般將要自動化的應用程序稱爲AUT(被測應用程序)。頗有可能一部分功能能夠自動化,而其他功能能夠手動測試。佈局

這須要深刻研究該功能,測試用例和所需的工做。有時,知道開發人員將如何實現該功能在決定是否能夠自動化以及在多大程度上實現自動化相當重要。性能

2. 爲何要自動化?

這個很是重要。爲何須要自動化?是否由於它減小了工做量並提升了效率?仍是由於它將長期受益?仍是隻是常規?在我擔任質量檢查人員的任期內,我發現一些經理人積極地但願全部東西都自動化,而沒有分析這可能會增長工做量而且沒有收穫。您可能最終會問本身幾個問題-學習

  • 這是一次性的要求,未來永遠不會出現嗎? 那時咱們可能不須要自動化。
  • 自動化解決方案是否複雜? 您還須要瞭解被測應用程序的複雜性。若是將其自動化致使本身構建並行應用程序,則沒有自動化的意義。可是在某些狀況下,解決方案很複雜,但功能或AUT仍在不斷變化,而且長期計劃開發,那麼從長遠來看,自動化可能會有所幫助。
  • 時間限制- 交付中可能存在時間限制。那時,經理的角色對於決定投資自動化仍是尋求人工相當重要。
  • 測試團隊的資源和技能- 這也是一個重要因素。測試團隊中有多少自動化工程師能夠利用其帶寬進行AUT?一般,對於小型團隊來講,這是自動化的決定因素。

如何自動化?

這是指找到解決方案。爲何和如何相互關聯。所以,您可能會找到「回答方式」,並獲得「爲何」的答案,反之亦然。

如何決定咱們將如何自動化AUT。若是您要使整個應用程序或一個小功能實現自動化,請不要將其與AUT或功能混淆。有時對於小型應用程序,您不須要完整的自動化框架。

有各類可用的工具,它們不須要編碼就能夠解決需求。例如, CloudQA的TruBot 是這樣一種工具,它具備許多方便的工具用於不一樣類型的測試,而且對於小型應用程序很是用戶友好。

除此以外,只需編寫一個shell腳本便可知足各類要求。

當AUT很大且不斷進行改進時,就須要一個完整的自動化框架。那時,能夠在每一個功能發佈以前執行迴歸分析,而且自動化能夠大大減小工做量。

自動化框架的開發須要編碼技能和時間,所以在進入該框架以前,測試人員應始終分析ROI(投資回報率),而後制定相應的計劃。

自動化還使您有信心,能夠最大程度地覆蓋迴歸測試,而且不會因添加新功能而破壞現有功能。

結論

咱們得出的結論是,僅手動或僅自動化不是正確的方法。二者之間應該保持平衡,我但願以上幾點將有助於找到正確的平衡。

技術類文章精選

非技術文章精選

大咖風采

相關文章
相關標籤/搜索