寫給想要作自動化測試的人(更新篇)

  接觸了很多同行,因爲他們以前一直作手工測試,如今很迫切但願作自動化測試,其中不乏工做5年以上的人。 本人從事軟件自動化測試已經近5年,從server端到web端,從API到mobile,切身體會到自動化帶來的好處與痛楚,在此分享一下我的體會。css

 

想作自動化,首先得了解一下自動化測試的一些常見問題:html


自動化測試一些問題 

  1. 什麼是自動化測試? 
     自動化測試,顧名思義,自動完成測試工做。經過一些自動化測試工具或本身造輪子實現模擬以前人工點點/寫寫的工做並驗證其結果完成整個測試過程,這樣的測試過程,即是自動化測試。自動化測試,看上去很美,感受好像是第一次工業革命,它開創了以機器代替手工勞動的時代,實則否則.由於每個自動化測試的case都是從手工測試作起的,若是沒有手工測試的基礎,是無法進行自動化測試。

     

  2. 爲何要進行自動化測試
    爲何進行自動化測試,答案要從自動測試的收益和人肉測試的成本提及:
     a. 自動化測試節約成本(根據項目)
           畢竟自動化測試確實解放了一批人力(人力成本纔是IT公司最大的成本),可讓機器沒日沒夜的執行一些重複勞動.
    
     b.有些測試項目手工很難實現(手工成本較高)
           好比12306的壓力測試、負載測試,同時找那麼多人去測試不現實能夠經過機器去模擬.
    c.項目質量流程須要
    好比版本管理須要build verify,以保證check in的code不會影響版本庫。相似於smoke test

     

  3. 自動化測試的優缺點
    優勢
      避免測試人員因重複勞動產生厭倦
       提升測試效率
       保證每次測試地一致性和可重複性
       更好的利用無人值守時間
       進行一些手工沒法進行的測試
    維護成本相對比較高 缺點 系統開發時間不必定能縮短 沒有手工測試發現缺陷多
    UI layout issue 不容易發現

     

  4. 什麼樣的項目適合作自動化測試(dev手一抖,auto忙一宿)
    有如下幾個特色的項目比較適合自動化測試:
    1. 項目變更少
    2. 週期長
    3. 項目資源足夠(自動化不是一我的完成的,須要一幫人長期維護)

    舉例說明:
    互聯網項目,一週內要上線,你不上線別人上線人家就不用你的,項目週期短,變更快,你自動化還沒作好,項目說不定就下線了。好比某寶雙12活動相關項目,一週以內就下線了。
    適合作自動化測試的項目,好比某寶客戶端,每一個release,大部分功能都不變,而且3-5年內項目不會下線,這個就比較適合自動化.

     

  5. 什麼樣的人適合作自動化測試?
    這個問題是寫給想要作自動化測試的人,或許你覺得軟件測試的門檻很低,低到任何人均可以作,隨便點點就能夠了,這個行業太low了,因此你想作自動化測試,提高本身的逼格,我想說手工測試並不low,若是讓一個什麼都不懂,一點業務基礎都沒有的人去作測試,能測出來問題嗎?不要忽略你的業務知識儲備.
    你的業務知識儲備的積累能讓你成爲不可替代的行業專家,而作自動化的碼農會由於一個時代的更迭被小鮮肉替代。
    
    扯了這麼多,究竟什麼什麼樣的人能作自動化測試?
    個人理解分一下幾點:
     a. 擁有代碼能力
        掌握一門開發語言,java、Python、ruby、c#
     b. 熟悉被測系統
      好比你是web測試,你就得懂js、css、html、xpath
      你是移動端測試,你就得具有Android 開發基礎和iOS開發基礎,會debug app
      你是 C/S測試你就要很熟悉TCP、IP協議
     c. 掌握一套自動化測試框架(工具)
        好比 selenium/appium 
                nunit/testng
               robot framework/cucumber
     
     d. 善於學習,達到知其然知其因此然
        IT行業變化太快,每隔一段時間就會出現一些新興的東西,也會出現原來很火的東西逐漸沒落,誰也沒法預測。
        曾經諾基亞仍是手機霸主,靠塞班一統天下,然而不思進取,落得個賣身求生存.
        曾經qtp很火,曾經selenium也很火,如今appium也很火
        軟件行業從桌面軟件到web端,又從web端遷移到移動端,誰也不知道下一個是什麼。而咱們做爲軟件行業的從業者,不能由於那些很火的東西不火了而讓本身沒落,一我的最爲核     心的能力就是學習能力,若是你善於學習,你就沒必要擔憂這些變遷,由於你能夠毫無壓力的遷移,selenium的原理你掌握了,學習appium簡直小菜一碟,由於appium使用的是
    selenium WebDriver protocol .若是你能作到知其然知其因此然,你也能夠造輪子,改造appium,畢竟如今不少功能須要完善。 若是你沒有達到以上的幾點,建議你仍是作手工測試吧。

     

  6. 若是你有代碼基礎,想要從事自動化測試怎麼去學習?
    不少初學者很糾結,學qtp仍是學selenium
    個人建議是學selenium,開源的,免費的,你能夠下載源碼研究,去了解其原理,再者如今selenium的資料不要太多,隨便搜搜一大堆,學起來比較輕鬆。
    不建議學selenium IDE錄製,固然你能夠經過錄制一些而後轉換爲相應的腳本去學習,等你學好了selenium, 再去學appium你會有一種自然的似曾相識。爲何不建議學QTP/UFT?由於收費/臃腫/如今作桌面軟件測試的工做已經不太多了。
    關於買書,不建議買書,不少書已通過時了,而且質量渣渣,你買了那些書中的code已經不能用了,若是你真的想學,就去官網找example,去相應的社區和羣交流,或者直接看API/源碼.

     

 


 總結: java

 

        新人學習自動化測試要:web

    •  掌握一門門開發語言
    •  掌握一些基礎的知識
    •  少買書,多看測試框架的document,多去社區交流
    •  不斷學習,提高本身發現問題,解決問題的能力(不作伸手黨,多動手)
相關文章
相關標籤/搜索