最近有朋友給我留言說在面試的時候被問及一個問題,其實也是近些時候,網路上討論也比較多的一個話題,自動化測驗的意義到底在哪里?
每樣事物的產生都是因為需求的產生,我個人對于自動化測驗的產生原因的理解,跟工廠里的質檢應該類似,當軟體測驗工程師這個職業剛剛產生的時候,就像工廠里的質檢員,都是通過手工和感官去檢查產品的質量,慢慢地,隨著產品的生產規模擴大和速度的加快,這種純手工的測驗和質檢就暴露出來一些問題:
人力成本的增加,因為需要更多的質檢員和測驗工程師
效率的瓶頸,因為生產速度遠遠超過手工質檢和測驗的速度
人為錯誤率的上升,因為作業量的增加和持續時間的增加,導致人員疲勞或慣性思維,也包括投機取巧的一些行為
而自動化測驗,也就像工廠里的自動化質檢一樣,在這個時候應運而生了,它們的產生就是為了解決上述三個主要問題的:
當檢測任務增加的時候,人力不可能一直連軸轉,所以就需要增加人力來三班倒,但自動化系統卻可以不停地運行
自動化系統的執行效率遠超手工效率
系統不會因為連續地運行而疲勞,所以也就不會疲勞而犯錯,更不會有什么慣性思維和偷懶的行為
現如今,自動化測驗工具和框架多的讓你都能挑花了眼,測驗開發工程師或自動化測驗工程師的崗位需求也比前些年多了很多,不管你是在做什么型別的產品測驗,如果沒用過幾種自動化測驗框架或工具,是不是感覺都不好意思開口?那為什么現在反而越來越多的人又開始討論自動化存在的意義了呢?
我的理解是雖然自動化測驗這個概念被熱炒了很多年,可是真正能把自動化測驗真正融合到軟體研發體系里的公司,并沒有太多,我覺得導致這種結果的原因其實可以說就一個:投入產出比太低,
我大概從2005年開始第一次接觸到自動化測驗的概念,那時候還是 Selenium 1.0,雖然我沒有主攻自動化測驗這個方向,但是因為很多原因,也參與了自動化測驗在專案中的試點,在公司的實施和推行,一直以來也不斷地在看專案里和專案外的人將很多新的自動化測驗工具帶進來又帶出去,
有的是管理層看不到最侄訓帶來多大的效率提升和回報,所以前期就不想投入相應的人力和物力,
有的是管理層其實也支持,但迫于專案工期或產品發布等更為重要的目標,導致不能投入百分之百的人力去開發,所以導致遲遲不能落地,最終也就不了了之,
還有部分公司就是為了自動化而自動化,并不清楚自己到底需不需要自動化,或者什么地方最需要自動化,就是覺得,既然其他公司都搞自動化了,那我們也必須要啟動自動化計劃,
我還見過因為自動化測驗框架因為版本的升級,導致幾千個腳本被廢棄,導致幾十個測驗工程師半年多的辛勤勞動成果被浪費,導致公司的測驗工程師一度極其抵觸自動化測驗的任何任務,
還有很多其他的場景,榷訓月累地,讓很多公司和很多人慢慢地對自動化產生了疲勞感,自然也就有了質疑的聲音和迷惑的問題,
我個人的觀點是,要想明白自動化測驗的意義,你得先把測驗兩個字拿掉,再來看自動化的意義在哪里?
我們要將自動化的應用領域擴展到我們整個產品研發流程,或者說發散到你的整個作業范圍,將其中手工重復度較高的、人為容易犯錯的、較為機械化的作業事項,都給自動化了,將執行這類作業的人力釋放出來,去做有創造性的、復雜度高的、有成長性的作業,這就是我認為的自動化的意義,
就拿我們接觸較多的互聯網產品的團隊,不要再局限于什么 Android 自動化測驗、iOS 自動化測驗、介面自動化測驗這些范疇了,而應該多去研究一下,開發程序中哪些環節可以被自動化,比如單元測驗、構建版本包、發布包部署、錯誤日志檢查、例外預警、現網運營配置的檢查、運維資料的糾錯等等,這些都是可以用自動化工具、腳本或框架來解決的,這些都是有意義的研究范圍,
近年來,軟體測驗行業越來越不滿足只會點點點的測驗了,越來越多的公司開始要求自動化、性能等能力,如果你還在猶豫我到底要不要提升的時候,那些比你學得更早的,更快的已經把你遠遠地甩在了后面,
如果你感覺到了緊迫和壓力,歡迎關注我的公眾號:程式員一凡,大家一起交流自動化的技術,為了更高的薪資,更為了不被行業淘汰!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/139168.html
標籤:其他
