
這是《落葉》文集里第 355 片落葉,希望你能喜歡,不為別的,只為這份堅(jiān)持。
【背景】
最近有同事在面試的時(shí)候被問(wèn)及一個(gè)問(wèn)題,其實(shí)也是近些時(shí)候,網(wǎng)絡(luò)上討論也比較多的一個(gè)話題,自動(dòng)化測(cè)試的意義到底在哪里?
【你問(wèn)】
自動(dòng)化測(cè)試的意義到底在哪里?
【我答】
每樣事物的產(chǎn)生都是因?yàn)樾枨蟮漠a(chǎn)生,我個(gè)人對(duì)于自動(dòng)化測(cè)試的產(chǎn)生原因的理解,跟工廠里的質(zhì)檢應(yīng)該類似,當(dāng)軟件測(cè)試工程師這個(gè)職業(yè)剛剛產(chǎn)生的時(shí)候,就像工廠里的質(zhì)檢員,都是通過(guò)手工和感官去檢查產(chǎn)品的質(zhì)量,慢慢地,隨著產(chǎn)品的生產(chǎn)規(guī)模擴(kuò)大和速度的加快,這種純手工的測(cè)試和質(zhì)檢就暴露出來(lái)一些問(wèn)題:
- 人力成本的增加,因?yàn)樾枰嗟馁|(zhì)檢員和測(cè)試工程師
- 效率的瓶頸,因?yàn)樯a(chǎn)速度遠(yuǎn)遠(yuǎn)超過(guò)手工質(zhì)檢和測(cè)試的速度
- 人為錯(cuò)誤率的上升,因?yàn)楣ぷ髁康脑黾雍统掷m(xù)時(shí)間的增加,導(dǎo)致人員疲勞或慣性思維,也包括投機(jī)取巧的一些行為
而自動(dòng)化測(cè)試,也就像工廠里的自動(dòng)化質(zhì)檢一樣,在這個(gè)時(shí)候應(yīng)運(yùn)而生了,它們的產(chǎn)生就是為了解決上述三個(gè)主要問(wèn)題的:
- 當(dāng)檢測(cè)任務(wù)增加的時(shí)候,人力不可能一直連軸轉(zhuǎn),所以就需要增加人力來(lái)三班倒,但自動(dòng)化系統(tǒng)卻可以不停地運(yùn)行
- 自動(dòng)化系統(tǒng)的執(zhí)行效率遠(yuǎn)超手工效率
- 系統(tǒng)不會(huì)因?yàn)檫B續(xù)地運(yùn)行而疲勞,所以也就不會(huì)疲勞而犯錯(cuò),更不會(huì)有什么慣性思維和偷懶的行為
現(xiàn)如今,自動(dòng)化測(cè)試工具和框架多的讓你都能挑花了眼,測(cè)試開(kāi)發(fā)工程師或自動(dòng)化測(cè)試工程師的崗位需求也比前些年多了很多,不管你是在做什么類型的產(chǎn)品測(cè)試,如果沒(méi)用過(guò)幾種自動(dòng)化測(cè)試框架或工具,是不是感覺(jué)都不好意思開(kāi)口?那為什么現(xiàn)在反而越來(lái)越多的人又開(kāi)始討論自動(dòng)化存在的意義了呢?
我的理解是雖然自動(dòng)化測(cè)試這個(gè)概念被熱炒了很多年,可是真正能把自動(dòng)化測(cè)試真正融合到軟件研發(fā)體系里的公司,并沒(méi)有太多,我覺(jué)得導(dǎo)致這種結(jié)果的原因其實(shí)可以說(shuō)就一個(gè):投入產(chǎn)出比太低。
我大概從2005年開(kāi)始第一次接觸到自動(dòng)化測(cè)試的概念,那時(shí)候還是 Selenium 1.0,雖然我沒(méi)有主攻自動(dòng)化測(cè)試這個(gè)方向,但是因?yàn)楹芏嘣?,也參與了自動(dòng)化測(cè)試在項(xiàng)目中的試點(diǎn),在公司的實(shí)施和推行,一直以來(lái)也不斷地在看項(xiàng)目里和項(xiàng)目外的人將很多新的自動(dòng)化測(cè)試工具帶進(jìn)來(lái)又帶出去。
有的是管理層看不到最終會(huì)帶來(lái)多大的效率提升和回報(bào),所以前期就不想投入相應(yīng)的人力和物力。
有的是管理層其實(shí)也支持,但迫于項(xiàng)目工期或產(chǎn)品發(fā)布等更為重要的目標(biāo),導(dǎo)致不能投入百分之百的人力去開(kāi)發(fā),所以導(dǎo)致遲遲不能落地,最終也就不了了之。
還有部分公司就是為了自動(dòng)化而自動(dòng)化,并不清楚自己到底需不需要自動(dòng)化,或者什么地方最需要自動(dòng)化,就是覺(jué)得,既然其他公司都搞自動(dòng)化了,那我們也必須要啟動(dòng)自動(dòng)化計(jì)劃。
我還見(jiàn)過(guò)因?yàn)樽詣?dòng)化測(cè)試框架因?yàn)榘姹镜纳?jí),導(dǎo)致幾千個(gè)腳本被廢棄,導(dǎo)致幾十個(gè)測(cè)試工程師半年多的辛勤勞動(dòng)成果被浪費(fèi),導(dǎo)致公司的測(cè)試工程師一度極其抵觸自動(dòng)化測(cè)試的任何任務(wù)。
還有很多其他的場(chǎng)景,日積月累地,讓很多公司和很多人慢慢地對(duì)自動(dòng)化產(chǎn)生了疲勞感,自然也就有了質(zhì)疑的聲音和迷惑的問(wèn)題。
我個(gè)人的觀點(diǎn)是,要想明白自動(dòng)化測(cè)試的意義,你得先把測(cè)試兩個(gè)字拿掉,再來(lái)看自動(dòng)化的意義在哪里?
我們要將自動(dòng)化的應(yīng)用領(lǐng)域擴(kuò)展到我們整個(gè)產(chǎn)品研發(fā)流程,或者說(shuō)發(fā)散到你的整個(gè)工作范圍,將其中手工重復(fù)度較高的、人為容易犯錯(cuò)的、較為機(jī)械化的工作事項(xiàng),都給自動(dòng)化了,將執(zhí)行這類工作的人力釋放出來(lái),去做有創(chuàng)造性的、復(fù)雜度高的、有成長(zhǎng)性的工作。這就是我認(rèn)為的自動(dòng)化的意義。
就拿我們接觸較多的互聯(lián)網(wǎng)產(chǎn)品的團(tuán)隊(duì),不要再局限于什么 Android 自動(dòng)化測(cè)試、iOS 自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試這些范疇了,而應(yīng)該多去研究一下,開(kāi)發(fā)過(guò)程中哪些環(huán)節(jié)可以被自動(dòng)化,比如單元測(cè)試、構(gòu)建版本包、發(fā)布包部署、錯(cuò)誤日志檢查、異常預(yù)警、現(xiàn)網(wǎng)運(yùn)營(yíng)配置的檢查、運(yùn)維數(shù)據(jù)的糾錯(cuò)等等,這些都是可以用自動(dòng)化工具、腳本或框架來(lái)解決的,這些都是有意義的研究范圍。
最后,再說(shuō)個(gè)更生活化的例子,就像我現(xiàn)在在寫(xiě)這篇文章,我會(huì)在簡(jiǎn)書(shū)寫(xiě)好,發(fā)布出去,然后,我會(huì)同步在去大魚(yú)號(hào)、微信訂閱號(hào)等自媒體平臺(tái)發(fā)布一下,其實(shí)這個(gè)發(fā)布過(guò)程就是一個(gè)我每天都要重復(fù)去做的事情,如果我能將這件事情給自動(dòng)化了,那每天是不是又給自己節(jié)省了將近20分鐘的時(shí)間呢?你說(shuō)這有沒(méi)有意義呢?
《測(cè)試路上你問(wèn)我答》里的 Q&A 100,如果是你要的,甚好!如果不是,你問(wèn),我答!
作者簡(jiǎn)介:14 年測(cè)試 + 11 年項(xiàng)目管理 + 11 年團(tuán)隊(duì)管理 = 一個(gè)測(cè)試?yán)媳?/p>