【轉】如何作好移動互聯網應用測試

  首先很高興的是移動測試會第八期在ucloud的贊助下很是很是圓滿的成功了。人真的愈來愈多,妹子也愈來愈漂亮了。同時感謝小A和永達以及小馬試駕創業公司的支持。移動測試會雖然最先是我我的創立的,可是一我的的能力畢竟有限,因此這第八期說明了團結就是力量:),也但願以後你們更多的來支持咱們,本次活動的連接:http://www.douban.com/event/22861768/
 
  11月8號支付寶上海要開始一天的專場招聘,因此最近我面試也很是的頻繁。以前我寫過一篇吐槽文章——《面試要求真的不高》,見連接:http://testerhome.com/topics/1486。今天的活動我也遇見了一些朋友來諮詢我,因此在這裏我想小小的談論下如何進行移動無線應用的測試學習。
 
  爲何我定位移動無線互聯網的測試,仍是應用的測試呢,由於我我的就是作應用測試的,因此我係統測試也作過,不過不深刻,因此我就不想去討論本身不熟悉的領域了。其實在好久前我畫過一張技能樹的圖,也許比較粗糙,可是也仍是有價值的。blog連接見:http://blog.sina.com.cn/s/blog_7022adbf0101b31w.html
![](/photo/2014/9d538ddbf1c97b8c189ce15fb8520828.jpeg)
 
  在以前的文章中也已經提到過了行業中的幾類人,那麼咱們應該怎麼如何客觀的學習呢?請不要以爲本身已經工做不少時間就不肯意往下看了,反正看了你也很多塊肉。請跟着如下的文字慢慢閱讀,問問本身達到幾點,不要自欺欺人就好。
 
 
  如今不會作測試的拼命處處問怎麼作測試,如今在手動測試的拼命問怎麼作自動化,如今作自動化的拼命問怎麼寫測試框架,如今寫測試框架的拼命讓團隊使用,如今寫框架而且讓團隊使用的拼命問除了維護框架還有什麼別的能夠作,如今沒有事情作的拼命在問到底測試作什麼呢?
 
  不知道天天會有多少人,每秒鐘會有多少人會去問怎麼作自動化,多少人會去問本身發展方向是什麼,學習方向又是什麼。我很明確的說,你沒有方向緣由在於你的無知,人最大的敵人就是恐懼和無知,二者相輔相成,最終就是一事無成。你問那麼多有什麼用,踏踏實實的先開始學有什麼很差。
  好比你要學習移動互聯網的無線應用測試了,好比你要開始學習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也罷將這些作成自動化工具,那麼也是有理有據。不然請問你真的會作自動化測試嗎?最後記得必定要結合業務,那麼勢必要詳細的瞭解業務,請看上面。可詳見:https://github.com/monkeytest15/AndroidPerformanceTest_Python
 
  接着來講安全測試也是同樣。不要去想「有什麼工具可以作安全測試啊?」。好了,這個問題我就不展開討論了額,不然不少人確定會以爲我在鄙視他們的智商。安全的測試和大部分人知道的測試根本就是兩個領域,不要妄想你連上面幾點都不知道的狀況下就去作安全測試,真的不是我看不起大家。
 
  其實咱們須要想象咱們掌握的知識點是一個一個積木,而如今你先去看哪些積木你尚未,你先去得到。就好比java都不怎麼會,而後就說本身要去作自動化,android都不瞭解就說要作自動化。沒有太大必要。積木一個一個去搭,而後方向天然而然的就有了。目前學習移動無線的應用測試沒有什麼必定的路,每一個人所在公司不一樣,所處業務不一樣,不要去問別人,最重要的是本身靜下心來,記住,是靜下心來問本身,本身真的不懂,若是本身是什麼都不懂,那麼就踏踏實實的從語言的學習,android自己的文檔,工具等一個一個去學,不要浮躁。只要踏實了,不會沒有方向,方向永遠在你的心中。
 
最後想強調一點的是,請眼光放長遠,站在更高的高度看問題,不要作了10年還在作UI自動化,並且還根本作的不深刻。記住,UI只不過是自動化中的冰山一角,你要去看的還有不少。不要侷限本身,不要讓公司侷限你,除非你一生就打算在這個公司養老了。若是你不贊同我,那麼隨意,原本我就不期望全部人都點贊。
 
by monkey
相關文章
相關標籤/搜索