如何做好移動互聯網應用測試
首先很高興的是移動測試會第八期在ucloud的贊助下非常非常圓滿的成功了。人真的越來越多,妹子也越來越漂亮了。同時感謝小A和永達以及小馬試駕創業公司的支持。移動測試會雖然最早是我個人創立的,但是一個人的能力畢竟有限,所以這第八期說明了團結就是力量:),也希望之后大家更多的來支持我們。
11月8號支付寶上海要開始一天的專場招聘,所以最近我面試也非常的頻繁。之前我寫過一篇吐槽文章——《面試要求真的不高》。今天的活動我也碰見了一些朋友來咨詢我,所以在這里我想小小的談論下如何進行移動無線應用的測試學習。
為什么我定位移動無線互聯網的測試,還是應用的測試呢,因為我個人就是做應用測試的,所以我系統測試也做過,不過不深入,所以我就不想去討論自己不熟悉的領域了。其實在很久前我畫過一張技能樹的圖,也許比較粗糙,但是也還是有價值的。
在之前的文章中也已經提到過了行業中的幾類人,那么我們應該怎么如何客觀的學習呢?請不要覺得自己已經工作很多時間就不愿意往下看了,反正看了你也不少塊肉。請跟著以下的文字慢慢閱讀,問問自己達到幾點,不要自欺欺人就好。
現在不會做測試的拼命到處問怎么做測試,現在在手動測試的拼命問怎么做自動化,現在做自動化的拼命問怎么寫測試框架,現在寫測試框架的拼命讓團隊使用,現在寫框架并且讓團隊使用的拼命問除了維護框架還有什么別的可以做,現在沒有事情做的拼命在問到底測試做什么呢?
不知道每天會有多少人,每秒鐘會有多少人會去問怎么做自動化,多少人會去問自己發展方向是什么,學習方向又是什么。我很明確的說,你沒有方向原因在于你的無知,人最大的敵人就是恐懼和無知,兩者相輔相成,最終就是一事無成。你問那么多有什么用,踏踏實實的先開始學有什么不好。
比如你要學習移動互聯網的無線應用測試了,比如你要開始學習Android的應用測試了。那么首先第一步你先看google 提供的文檔吧,sdk文檔不說詳細,先瀏覽一遍吧。然后既然你是一個做測試的,我們就說正常的道路,你至少先將文檔中與test這個關鍵字相關的工具也好,框架也好看一下吧。不懂的可以隨時google或者百度來幫助我們閱讀完sdk的docs。什么?你從來不看官方文檔?android是誰生的?你連親爹媽都不看,那么你看啥?看后媽?然后抱怨怎么看不懂?你怪誰?
ok,假設你老老實實的看完了,然后你說你了解你們產品的業務了,你就可以做應用的功能測試了嗎?非也,試問大部分測試真的覺得自己夠資格去做功能測試嗎?覺得功能測試很簡單嗎?問起來很多人都很自信滿滿的說自己非常了解業務。ok,試問,你的app中每個功能對應哪些接口你知道嗎?這些接口會有什么核心參數知道嗎?試問,你的產品的核心代碼你有閱讀過嗎?你的產品前端app對應的后臺服務的代碼你有閱讀過嗎?你說你測試的產品有視頻是吧,視頻格式有哪些?常見分辨率有哪幾種?常見碼流有哪些?如果這些你都不知道并不代表你不回做功能測試或者業務測試,而是你根本無法深層次的去設計測試用例,那么請問你這算會功能測試了嗎?還有的同學和我說用戶體驗測試,ok,繼續問,請問你看過google提供的android的UI Design Guide嗎?也許你沒有看過,也許你根本不知道,不管是哪條,那么還談什么用戶體驗呢?簡單來講,我們做一個測試很簡單,要深入做很困難,就如同今天移動測試會上茉莉說的wifi測試,也許讓也許人去測試wifi測試也會測試,但是深入呢?我們做測試要踏踏實實,不要浮躁,浮躁只會讓你繼續sb,但是不會阻止別人nb。
ok,假設功能測試的點你都清楚了,然后你說你技術多多少少知道點,然后你就可以去做應用的自動化測試了嗎?非也。我們一個一個來看。大部分先來做的是UI Automation,ok,appium我在這邊就不說了,也許2w字都吐槽吐不完,我就說robotium。那么你第一步是先看下robotium官方網站的sample和wiki,不要到處問例子或者直接上來就導入jar包去做。了解完畢之后,那么可以繼續深入的去了解junit 和instrumentation,了解這兩者能夠讓你對robotium更了解并且在寫用例的時候更得心應手。然后你會寫了sample,能夠跑通就算ok了么?非也,那么接著碰見的問題就是如何管理suite,如何管理數據,比如testng,如何做參數配置,比如config.xml,如何進行用例的架構的維護,使用op等。接著如何將其集成到持續集成中?如果你仔細看過instrumentationtestrunner的官方文檔你就不會問了。接著除了native的,也許會碰見自定義控件的自動化,最后還有webview和h5的自動化等。那么這些前提是你要先去了解這個自定義控件以及webview到底是什么吧,而不是直接拿robotium自定義的api直接食用,然后抱怨說,啊呀這個怎么跑不通。最后記得一定要結合業務去做設計和斷言。
接著很多人還會覺得很牛逼的去找到BDD的框架,gem安裝,套用cucumber和robotium。但是又會發現各種問題,在做這個事情之前繼續試問,ruby gem管理你去學習了么?cucumber是啥知道了么?BDD框架源碼結構有看過嗎?step怎么封裝知道嗎?官方的github的wiki和issue有過一遍嗎?都沒有?那么你還問啥,先去看再做討論。
為什么我那么強調學習能力和態度,因為移動互聯網的測試已經不是一個工具或者平臺能夠制霸的時代了。移動互聯網現在更多的是注重實用開源框架,注重靈活的使用工具和代碼來提升自己的效率,而不是拿來一個工具學會怎么用,然后就給你一個結果告訴你缺陷在什么地方。故而不是再去想什么“怎么做性能自動化測試”這種問題。無論你用360這種app也好,或者別的工具也罷,首先你拿到的數據并非是你公司團隊想要的,其次請問這個數據你知道是怎么獲取的嗎?這個工具告訴你,cpu,內存,電量,流量,GPU繪制消耗,或者crash信息你就信啊?那么請問要你有啥用?你說你連數據怎么來的如果都不知道這個信息你敢用來作為測試報告嗎?我們至少得自己去學習一下怎么獲取這些數據吧,然后你編寫service也好,使用shell也罷將這些做成自動化工具,那么也是有理有據。否則請問你真的會做自動化測試嗎?最后記得一定要結合業務,那么勢必要詳細的了解業務,請看上面。
接著來說安全測試也是一樣。不要去想“有什么工具能夠做安全測試啊?”。好了,這個問題我就不展開討論了額,否則很多人肯定會覺得我在鄙視他們的智商。安全的測試和大部分人知道的測試根本就是兩個領域,不要妄想你連上面幾點都不知道的情況下就去做安全測試,真的不是我看不起你們。
其實我們需要想象我們掌握的知識點是一個一個積木,而現在你先去看哪些積木你還沒有,你先去獲得。就比如java都不怎么會,然后就說自己要去做自動化,android都不了解就說要做自動化。沒有太大必要。積木一個一個去搭,然后方向自然而然的就有了。目前學習移動無線的應用測試沒有什么一定的路,每個人所在公司不同,所處業務不同,不要去問別人,最重要的是自己靜下心來,記住,是靜下心來問自己,自己真的不懂,如果自己是什么都不懂,那么就踏踏實實的從語言的學習,android本身的文檔,工具等一個一個去學,不要浮躁。只要踏實了,不會沒有方向,方向永遠在你的心中。
最后想強調一點的是,請眼光放長遠,站在更高的高度看問題,不要做了10年還在做UI自動化,而且還根本做的不深入。記住,UI只不過是自動化中的冰山一角,你要去看的還有很多。不要局限自己,不要讓公司局限你,除非你一輩子就打算在這個公司養老了。如果你不贊同我,那么隨意,本來我就不指望所有人都點贊。
posted on 2014-11-27 11:54 順其自然EVO 閱讀(258) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄