微軟外包自動化測試兩年,然後轉入互聯網公司作移動端自動化測試一年,經歷了入行時的迷茫,然後的篤定,轉入移動後對自身定位和價值的懷疑,繼而對自動化測試的從新認識,職場三年,終於敢對自動化測試有所論述了。服務器
先說說測試吧,架構
測試自己有其本身的價值嗎?我覺着這個得看公司對自身的定位,假若公司自己定位就是一個小做坊,出一款產品就打算小撈一筆,受衆較小,那測試真就是累贅,對於測試的投入是毫無道理可言的,但若是公司打算長久規劃,想樹立本身的品牌價值,那麼仍是一開始就儘量的投入吧,畢竟口碑這種東西,失去了一次,想要挽回來那可不是陣痛那麼簡單,想一想xxxxx,紅會,還有那麼多那啥的中國產業和企業吧,在今天技術沒法造成壁壘,產品同質化嚴重,競爭日益激烈的大環境下,國內環境愈來愈重視測試是明智的。框架
測試毫無技術含量嗎?就我從業這幾年,聽到過無數這樣的論述,搞技術的看不起搞測試的,這裏我不想反駁什麼,我只想說說就我來看一個出色的測試人員所具有的素質:測試人員是塊磚,哪裏須要哪裏搬,幾乎全部的測試框架都只是提供一個通用底層的解(更傾向於叫這種自動化測試框架叫自動化測試技術),自動化測試人員須要有架構方面的知識去根據自身產品特色,組織代碼結構造成本身的框架;針對一個平臺的測試會有多種框架可選,測試也須要兼顧性能方面的考慮,這一切都須要你去學習掌握不一樣的語言,或者不一樣種類的語言及配套的一系列平臺框架內的知識;自動化測試工做中仍須要開發及擴展一些工具,各類類型的工具去知足自動化測試的需求,因此網頁開發,桌面程序開發,移動端開發這些是必會的;自動化測試有時也須要去讀產品代碼去分析問題,定位問題,快速理解全部產品代碼邏輯是必須的;測試人員不僅要關注產品bug,產品體驗也是工做很重要的一部分,因此一個好的測試人員能夠當作半個產品;測試自己的職業特色要求測試人員溝通技巧要像銷售同樣剛剛的(這點我作的不是很好);測試對工做流程,項目進度掌控,團隊配合等管理技巧沒必要其餘團隊差;雖然各個方面都不算是最專業的,但測試須要的是全才,全才也算人才的一種。測試對於軟件開發的上游來說,是大家前進的鞭策而不是大家成功的障礙,經過一個個bug,你才能認識到本身的不足啊,孩子!收起你那好笑的傲慢吧,大家的代碼我見過,而咱們的代碼大家並沒機會見到。這時候通常我會強調一句話:將代碼寫得優雅是每一個工程師的義務。工具
給微軟作外包兩年,除了學習了一堆微軟測試技術及經過內部資源瞭解的其餘東西外,最主要的印象在於其軟件測試這麼多年積累起來的流程規範,對於測試來說,強與不強永遠不會體如今技術積累上,更多體如今流程管理,權限管理,文檔(代碼也在文檔範疇)規範上。微軟產品較爲封閉,版本迭代較慢,UI等風格也較爲統一,其測試能夠減小cost最大的點在於增長測試用例,文檔的複用,他在測試管理上全部的細節也在儘量的增長複用,WTT,PS等測試平臺軟件的設計上這點很是突出,在其管理模式上也頗有很大的體現,這就是微軟的測試取得成功的重要緣由。性能
來到移動互聯網後,剛開始也一直沿着這種思路在作,你們的重心仍然放在增長複用,作了一整套測試用例執行平臺以增長用例複用,對各類測試框架擴展以增長代碼複用,想盡一塊兒辦法實現代碼錄製以減小代碼編寫,這一切的一切貌似總趕不上版本更新的速度,自動化測試老是測試中最拖後腿的一環,因此一段時間內對自動化測試定位產生了嚴重的懷疑,沒有存在感。學習
其實仔細想一想,這一切並無錯,那究竟問題在哪呢?產品!移動互聯網的發展速度太快了,其產品更新也快,尤爲是新產品,版本之間UI變化特別大,基於UI的自動化測試在有限的cost下很難跟上這種速度,你大部分的測試代碼只有執行一次的命運,沒法迭代複用,有這時間手動就點完了,包括代碼錄製,就目前來說,極端的說對於Android這種開放性特別強的系統來講一切的代碼錄製都是耍流氓,你錄製一次出來的代碼很難達到其餘設備上不經修改就能夠回放,基於UI的自動化測試驅動UI操做歷來都不是難點,難點在於各類對結果的Verify,錄製完逐行去添加這些東西簡直是噩夢,並且就目前的代碼錄製實現手段來說,限制性太多,想要達到別說完美就是能知足測試百分之五十的需求都很難,花大量時間和精力去弄這個是很不明智的。那麼自動化測試的出路在哪?應該是輔助手動測試,自動化測試終極目的在於增長複用,減小重複性動做,其cost相對於手動測試來說是巨大的,因此有限的人力應該去投入到更有效的地方去,測試人員都知道一句話,全覆蓋的測試是不存在的,所謂測試就是拿有限的cost去儘量覆蓋更多的測試點,其注重於投入產出。回過來說自動化測試,在移動端它的價值更多體如今性能監控,非必現bug復現,適配測試,健壯性測試等複用較多的點,舉個健壯性測試的例子,涉及到圖片操做分享的應用都會關注在重複發送及接收大量圖片的時候,這對手動測試簡直是噩夢,交給自動化測試,或調取服務器接口,或客戶端ui自動化這很容易解決,並且自動化測試還有個很大的好處,不須要佔用太多的資源,手動提出相關需求後,白天寫代碼,晚上或者節假日把手機借過來跑case,次日直接拿報告,這簡直是完美的配合。我想這也是自動化測試在移動端的出路吧。測試
未完待續。。。。ui