自動化測試,特別是UI級的自動化測試是一件費力而不討好的事情。自動化測試使得測試人員疲於應付,朝不顧夕,如坐針氈,苟延殘喘。UI級的自動化測試看起來很美好,就像罌粟,如果你經不住誘惑冒然嘗試,那么后果很嚴重,下場很慘淡。
也許這個世界上就不應該出現自動化測試這個東西,起碼在中國不應該出現,因為這個是無效的,無用的,宿命是失敗的東西。
應該怪罪於一小撮別有用心的積極分子,他們推廣敏捷,推廣自動化測試,推崇人應該追求挑戰,追求自由,應該把重復性的工作交給機器去完成。他們也許目的是崇高的,是正確的,但是在中國推廣這個,他們是不合時宜的,是注定失敗的,因為自動化測試是無用的東西,我們看到過太多的嘗試,太多的失敗,太多的先驅變成先烈,太多的媳婦熬不成婆,所以我們可以自豪的說,中國是沒有自動化測試滋生的土壤的,一切妄圖進行自動化測試的行為最終都會以失敗告終,被遺忘在歷史的角落。
讓我們回到沒有自動化測試的那遺失的美好的時代中吧。那時候沒有自動化發布,沒有自動化打包,800台機器一台一台人工發布,修改配置文件。盡管效率不高,但好在可控;盡管人工操作會犯錯(筆者曾經以root身份rm -rf /*過),但人非聖賢孰能無過,大不了影響一下用戶或客戶,這總比絞盡腦汁寫發布腳本,搭建發布框架要好的多。腳本和框架寫起來是很費時間的,有那個時間我們早就發完800台機器了。
那時候也沒有自動化測試回歸。回歸時間緊張?沒關系,中國別的不多,就人多,我多招幾個來點,加班加點的點,總能勉強完成趕上deadline;回歸時人會出錯,從而遺漏bug,沒關系,大不了影響一下用戶和客戶,這總比費盡心力去寫自動化測試腳本要好,有那個時間去寫腳本,我們早就回歸完好幾輪了。而且這個項目是一錘子買賣,一咬牙,一閉眼,一個項目就交付了,一閉眼,一咬牙,一個版本就發布了。盡管回歸很痛苦,但是忍過去總會守得雲開見月明。
沒有自動化測試的時代確實是測試人員的黃金時代!從業三年的測試人員,除了點來點去還會什么?
會寫測試用例?可以不客氣的說,剛畢業的大學生也會寫,價錢便宜還主動加班,用例寫的一坨一坨的,價錢便宜量又足;
懂業務邏輯?不好意思,現代社會變化太快,業務邏輯這東西也不是一成不變的。搞不好哪一天一覺醒來,原先的既定業務邏輯就變成了過去時,懂的越多反而越是負累;
有經驗,做過項目?很可惜,這種經驗不是核心競爭力。但有人成本比你低的時候,經驗完全就是奧尼爾的罰球———可以隨意忽略。
那這個測試人員到底會什么?答案很簡單————點來點去。除了點來點去,錄一個bug,跟開發人員爭論,與客戶周璇(很可惜,最底層的測試人員連客戶的影子都見不到),會寫一些項目必須的文檔(測試策略,測試計划。很可惜,低級的測試人員連寫這些文檔的權利都沒),除了這些,到底還有什么呢?
有時候現實就是這么殘酷,靜下心來仔細想想,除了點來點去,很多測試人員真的什么都不會。
我不是說寫測試用例,懂業務邏輯是一文不值,這些技能是不錯的,而且經驗有時候確實很重要,但這些都不是核心技能。就像LOL和dota里的英雄,如果他們沒有大招那會怎么樣?沒有大招的英雄就是萬年隕石坑!同樣沒有核心技能的測試人員自然就不太那么值錢了。於是只能嘆息自己入錯了行,鄙視開發高薪低能(拿那么多錢寫的代碼還全是bug),自怨自艾,不思進取。
讓這樣的一個群體去做自動化測試,不失敗才是見了鬼。
讓無能之人去做一些有技術含量,甚至是很有挑戰的事情,這才是自動化測試在中國注定失敗的原因。
這就像是讓潘長江去扣籃,讓林黛玉去舉重一樣,能力不足,自然事倍功半,功敗垂成。
說到這里,我們終於從眾多的流言蜚語中發掘到了一絲事情的真相,確實,在中國,這是國情使然。
其實自動化測試的作用是很明顯的。自動化測試是敏捷的一個實踐,敏捷提倡讓一切能自動化的工作都自動化起來,比如部署,發布,測試等等。這些都是重復勞動的重災區,解決了這些環節的自動化能很大程度上提升整個項目團隊的能力與生產率。記住一點,生產率是與能力相關,不太與流程相關。說形象一點,讓林黛玉舉重,你的流程再規范,你教給她的動作再標准,恐怕她也舉不起幾十斤的杠鈴。能力只有一瓢,怎能指望他去充當弱水三千?
所以在這里我反而不想討論自動化測試真正的意義與實踐,存在即是合理,這點已經足夠說明問題。
在這里我想要討論的是測試人員怎么才能真正的去提高自己的水平。放大招很爽,也很厲害,但是6級之前,在那些沒有大招的日子里,辛苦一點是無法避免的。
開發之所以賺的多說白了就是他們會的多。如果你想賺的比他們多,其實也很容易,比他們會的多就成。當然你也可以完全逆襲,自己開個公司,請一批開發做測試,招一票測試做開發,讓開發也嘗嘗痛苦的滋味,這個也可以,但不在本文討論的范疇之內了。
其實做自動化測試是提升自己的一個很好的契機,哪怕你所在的團隊沒有正式的提出要進行自動化,你也可以嘗試着自己去一些這樣的工作,因為一旦你的重復勞動被機器分擔,那么你完全可以省下不少的時間去自我充電。
混開發也好,做測試也罷,其實都是逆水行舟,不進則退。技術是一條學無止盡的不歸路,如果你沒做好這個准備,請移步,這里沒有一勞永逸,只有不斷學習,無限循環。
於是我的觀點也很清楚了,自動化測試其實是每個測試人員都值得去嘗試的一件事情。開始總是會很痛苦,但是先苦后甜。不要忘了在什么什么的時候,女生起初也很痛苦,后來反復實踐才會有快感出現。所以開始挫折一點是可以接受的。大招總在6級后,陽光總在風雨后,這個道理人人都懂。
web自動化測試是需要一定能力的。
-
會一門語言。當然我推薦python和ruby,原因不言自喻。
-
會一些語言。比如js,比如css比如html。
-
會一些工具。比如我最喜歡的watir-webdriver,selenium等。
-
會測試。很多人會寫測試用例但是連斷言都不知道,這恐怕不能算是懂測試之人吧。
怎么開始?
我分享過一些資料,盡管有些已經年事已高,但還是比較有幫助的