這是《落葉》文集里第 355 片落葉,希望你能喜歡逛球,不為別的千元,只為這份堅持。
【背景】
最近有同事在面試的時候被問及一個問題颤绕,其實也是近些時候幸海,網(wǎng)絡(luò)上討論也比較多的一個話題,自動化測試的意義到底在哪里奥务?
【你問】
自動化測試的意義到底在哪里物独?
【我答】
每樣事物的產(chǎn)生都是因為需求的產(chǎn)生,我個人對于自動化測試的產(chǎn)生原因的理解氯葬,跟工廠里的質(zhì)檢應(yīng)該類似挡篓,當(dāng)軟件測試工程師這個職業(yè)剛剛產(chǎn)生的時候,就像工廠里的質(zhì)檢員溢谤,都是通過手工和感官去檢查產(chǎn)品的質(zhì)量瞻凤,慢慢地,隨著產(chǎn)品的生產(chǎn)規(guī)模擴大和速度的加快世杀,這種純手工的測試和質(zhì)檢就暴露出來一些問題:
- 人力成本的增加阀参,因為需要更多的質(zhì)檢員和測試工程師
- 效率的瓶頸,因為生產(chǎn)速度遠遠超過手工質(zhì)檢和測試的速度
- 人為錯誤率的上升瞻坝,因為工作量的增加和持續(xù)時間的增加蛛壳,導(dǎo)致人員疲勞或慣性思維杏瞻,也包括投機取巧的一些行為
而自動化測試,也就像工廠里的自動化質(zhì)檢一樣衙荐,在這個時候應(yīng)運而生了捞挥,它們的產(chǎn)生就是為了解決上述三個主要問題的:
- 當(dāng)檢測任務(wù)增加的時候,人力不可能一直連軸轉(zhuǎn)忧吟,所以就需要增加人力來三班倒砌函,但自動化系統(tǒng)卻可以不停地運行
- 自動化系統(tǒng)的執(zhí)行效率遠超手工效率
- 系統(tǒng)不會因為連續(xù)地運行而疲勞,所以也就不會疲勞而犯錯溜族,更不會有什么慣性思維和偷懶的行為
現(xiàn)如今讹俊,自動化測試工具和框架多的讓你都能挑花了眼,測試開發(fā)工程師或自動化測試工程師的崗位需求也比前些年多了很多煌抒,不管你是在做什么類型的產(chǎn)品測試仍劈,如果沒用過幾種自動化測試框架或工具,是不是感覺都不好意思開口寡壮?那為什么現(xiàn)在反而越來越多的人又開始討論自動化存在的意義了呢贩疙?
我的理解是雖然自動化測試這個概念被熱炒了很多年,可是真正能把自動化測試真正融合到軟件研發(fā)體系里的公司况既,并沒有太多这溅,我覺得導(dǎo)致這種結(jié)果的原因其實可以說就一個:投入產(chǎn)出比太低。
我大概從2005年開始第一次接觸到自動化測試的概念坏挠,那時候還是 Selenium 1.0芍躏,雖然我沒有主攻自動化測試這個方向,但是因為很多原因降狠,也參與了自動化測試在項目中的試點,在公司的實施和推行庇楞,一直以來也不斷地在看項目里和項目外的人將很多新的自動化測試工具帶進來又帶出去榜配。
有的是管理層看不到最終會帶來多大的效率提升和回報,所以前期就不想投入相應(yīng)的人力和物力吕晌。
有的是管理層其實也支持蛋褥,但迫于項目工期或產(chǎn)品發(fā)布等更為重要的目標(biāo),導(dǎo)致不能投入百分之百的人力去開發(fā)睛驳,所以導(dǎo)致遲遲不能落地烙心,最終也就不了了之。
還有部分公司就是為了自動化而自動化乏沸,并不清楚自己到底需不需要自動化淫茵,或者什么地方最需要自動化,就是覺得蹬跃,既然其他公司都搞自動化了匙瘪,那我們也必須要啟動自動化計劃。
我還見過因為自動化測試框架因為版本的升級,導(dǎo)致幾千個腳本被廢棄丹喻,導(dǎo)致幾十個測試工程師半年多的辛勤勞動成果被浪費薄货,導(dǎo)致公司的測試工程師一度極其抵觸自動化測試的任何任務(wù)。
還有很多其他的場景碍论,日積月累地谅猾,讓很多公司和很多人慢慢地對自動化產(chǎn)生了疲勞感,自然也就有了質(zhì)疑的聲音和迷惑的問題鳍悠。
我個人的觀點是赊瞬,要想明白自動化測試的意義,你得先把測試兩個字拿掉贼涩,再來看自動化的意義在哪里巧涧?
我們要將自動化的應(yīng)用領(lǐng)域擴展到我們整個產(chǎn)品研發(fā)流程,或者說發(fā)散到你的整個工作范圍遥倦,將其中手工重復(fù)度較高的谤绳、人為容易犯錯的、較為機械化的工作事項袒哥,都給自動化了缩筛,將執(zhí)行這類工作的人力釋放出來,去做有創(chuàng)造性的堡称、復(fù)雜度高的瞎抛、有成長性的工作。這就是我認為的自動化的意義却紧。
就拿我們接觸較多的互聯(lián)網(wǎng)產(chǎn)品的團隊桐臊,不要再局限于什么 Android 自動化測試、iOS 自動化測試晓殊、接口自動化測試這些范疇了断凶,而應(yīng)該多去研究一下,開發(fā)過程中哪些環(huán)節(jié)可以被自動化巫俺,比如單元測試认烁、構(gòu)建版本包、發(fā)布包部署介汹、錯誤日志檢查却嗡、異常預(yù)警、現(xiàn)網(wǎng)運營配置的檢查嘹承、運維數(shù)據(jù)的糾錯等等窗价,這些都是可以用自動化工具、腳本或框架來解決的赶撰,這些都是有意義的研究范圍舌镶。
最后柱彻,再說個更生活化的例子,就像我現(xiàn)在在寫這篇文章餐胀,我會在簡書寫好哟楷,發(fā)布出去,然后否灾,我會同步在去大魚號卖擅、微信訂閱號等自媒體平臺發(fā)布一下,其實這個發(fā)布過程就是一個我每天都要重復(fù)去做的事情墨技,如果我能將這件事情給自動化了惩阶,那每天是不是又給自己節(jié)省了將近20分鐘的時間呢?你說這有沒有意義呢扣汪?
《測試路上你問我答》里的 Q&A 100断楷,如果是你要的,甚好崭别!如果不是冬筒,你問,我答茅主!
作者簡介:14 年測試 + 11 年項目管理 + 11 年團隊管理 = 一個測試?yán)媳?/p>