若是您是一名測試人員,那麼您必須就自動或手動測試進行討論。這並非什麼新鮮事,許多技術人員對此都有不一樣的見解。不管您是一個大型團隊,已經創建了自動化框架,仍是小型團隊,對於自動化來講都是新手,爲了得到最大效率,始終必須保持這種平衡。css
無疑,自動化測試具備提升效率,加快回歸速度並所以有助於及時交付項目的好處。它還能夠手動刪除重複的測試用例或迴歸用例,並節省測試人員的生命。html
可是,在考慮自動化以前,您應該評估一些要點。您必定已經聽過「您沒法使全部內容自動化」的說法,這是很是正確的。java
在許多狀況下,須要進行手動測試。實際上,手動測試自己的最大缺點是它的最大優勢是須要人工干預!在某些狀況下,須要人類的直覺和直觀性來測試系統。僅舉幾例,在如下狀況下,手動測試起着相當重要的做用。shell
在某些狀況下,自動化測試是有益的,而且實際上能夠減小工做量並提升生產率。咱們來看一下:編程
什麼,爲何以及如何實現自動化- 有時要在手動和自動化之間保持平衡可能很是棘手。我已經看到許多積極進取的管理人員都在推進一切自動化。但這是最好的方法嗎?框架
在開始自動化以前,您須要回答如下三個問題:工具
首先讓咱們考慮一下到底須要自動化什麼。在這裏,「精確」是指「需求」 /「功能」 /「應用」的哪一部分是尋求自動化的候選人。一般將要自動化的應用程序稱爲AUT(被測應用程序)。頗有可能一部分功能能夠自動化,而其他功能能夠手動測試。佈局
這須要深刻研究該功能,測試用例和所需的工做。有時,知道開發人員將如何實現該功能在決定是否能夠自動化以及在多大程度上實現自動化相當重要。性能
這個很是重要。爲何須要自動化?是否由於它減小了工做量並提升了效率?仍是由於它將長期受益?仍是隻是常規?在我擔任質量檢查人員的任期內,我發現一些經理人積極地但願全部東西都自動化,而沒有分析這可能會增長工做量而且沒有收穫。您可能最終會問本身幾個問題-學習
這是指找到解決方案。爲何和如何相互關聯。所以,您可能會找到「回答方式」,並獲得「爲何」的答案,反之亦然。
如何決定咱們將如何自動化AUT。若是您要使整個應用程序或一個小功能實現自動化,請不要將其與AUT或功能混淆。有時對於小型應用程序,您不須要完整的自動化框架。
有各類可用的工具,它們不須要編碼就能夠解決需求。例如, CloudQA的TruBot 是這樣一種工具,它具備許多方便的工具用於不一樣類型的測試,而且對於小型應用程序很是用戶友好。
除此以外,只需編寫一個shell腳本便可知足各類要求。
當AUT很大且不斷進行改進時,就須要一個完整的自動化框架。那時,能夠在每一個功能發佈以前執行迴歸分析,而且自動化能夠大大減小工做量。
自動化框架的開發須要編碼技能和時間,所以在進入該框架以前,測試人員應始終分析ROI(投資回報率),而後制定相應的計劃。
自動化還使您有信心,能夠最大程度地覆蓋迴歸測試,而且不會因添加新功能而破壞現有功能。
咱們得出的結論是,僅手動或僅自動化不是正確的方法。二者之間應該保持平衡,我但願以上幾點將有助於找到正確的平衡。