零基礎,開始轉行做軟體測試,我該從哪方面入手學?求大神指教·
對於其他人來說,我應該是幸運的,一個偶然的機會有了進入一個上市公司的機會並且加入他們的軟體測試部,可是我之前是學文的,對計算機可以說是蒙的,給我配了個師傅因為她比較忙,幫我下載一寫個必備的軟體後讓我了解安卓手機4.0以上版本的區別和之前他們寫的基礎用例和邏輯用例後就去忙他的了,後來包括需求文檔說明的都給我看,可我根本不知從何看起,面對一堆需要學的東西比較茫然,還請各位大神賜教,如何快速進入狀態,理解需求文檔,了解軟體···謝謝!
謝邀請。先從軟體測試的方法,理論。還有編程技術這幾個切入點開始
---
增加個人補充,雖然是移動互聯網的,但道理是通用的作者:陳曄鏈接:如何做好移動互聯網應用測試 - 大話軟體測試 - 知乎專欄來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。現在不會做測試的拚命到處問怎麼做測試,現在在手動測試的拚命問怎麼做自動化,現在做自動化的拚命問怎麼寫測試框架,現在寫測試框架的拚命讓團隊使用,現在寫框架並且讓團隊使用的拚命問除了維護框架還有什麼別的可以做,現在沒有事情做的拚命在問到底測試做什麼呢?
不知道每天會有多少人,每秒鐘會有多少人會去問怎麼做自動化,多少人會去問自己發展方向是什麼,學習方向又是什麼。我很明確的說,你沒有方向原因在於你的無知,人最大的敵人就是恐懼和無知,兩者相輔相成,最終就是一事無成。你問那麼多有什麼用,踏踏實實的先開始學有什麼不好。 比如你要學習移動互聯網的無線應用測試了,比如你要開始學習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只不過是自動化中的冰山一角,你要去看的還有很多。不要局限自己,不要讓公司局限你,除非你一輩子就打算在這個公司養老了。如果你不贊同我,那麼隨意,本來我就不指望所有人都點贊。
by monkey
我覺得應該從細節處著手,比如把題目里的基本改成基礎先,好的測試一定要關注細節。
先了解一下測試基礎,學一下測試用例設計,然後跟個小項目,可關注公眾號iTesting,測試基礎部分,希望可以幫到你
推薦閱讀: