自動化測試概述

自動化測試概述

1   自動化測試介紹

         什麼是自動化測試,通常說來全部能替代人工測試的方式都屬於自動化測試,即經過工具和腳原本模擬人執行用例的過程,其特色就是效率高,大數據覆蓋,時間短。java

2   自動化測試做用

      可能有人會說,咱們手工測試也能夠保證質量,爲何要進行自動化測試呢,的確手動測試確實某些範圍是比較實用的,但當項目功能積累到必定量且還須要往下迭代,且迭代週期愈來愈短,但測試用例卻愈來愈多了,這樣對手工測試將是一場噩夢。除了上面的,自動化測試還能夠爲咱們帶來方方面面的便利,總結下幾點:python

  •      避免手工測試錯誤率

              一、正確率會有誤差,就是說總會有那麼幾回是不當心就忘了一些什麼東西,致使測試結果誤差;
          二、注意力被其餘事物所分散,尤爲在並行任務較多的時候很容易發生考慮不周全或者忽視了一些比較隱蔽的問題;
          三、不夠耐心細緻,上節說到反反覆覆的測試,或者受心情影響,使得測試人員產生懈怠的情況,這樣測試出來的結果很難保證就是沒有問題的;mysql

  • 避免重複工做

              自動化測試的好處就能替代人去作一些反反覆覆的工做,能夠不眠不休不厭倦;這樣能夠解放出一部分測試執行人員,這樣其它測試人員能夠去完善測試代碼,持續優化整個測試及項目相關環節。web

  • 提升測試效率

             持續迭代中版本的發佈週期短,整個開發週期只有幾個月,測試期間基本是每一兩天就要發佈測試版本,一個系統以前全部功能點有兩千多或更多個,這是手工測試是很是的耗時,這樣必然會使測試效率低下,而若是採用了自動化測試將縮短這個週期。sql

  • 解決測試與開發之間的矛盾

            一般在開發的末期,進入集成測試階段, 因爲每發佈一個版本的初期,測試系統的錯誤比較少,這時開發人員有等待測試人員測試出錯誤的時間. 事實上在疊代週期很短的開發模式中,存在更多的矛盾, 但自動化測試能夠解決其中的主要矛盾。 編程

  • 將煩瑣的業務流程轉化爲自動化測試

            大量重複的測試是很是繁瑣的,而且須要消耗 大量的人力纔可以完成。自動測試可以很好的解決這個問題,不須要繁瑣的勞動,不須要大量的人員。json

  • 利用空閒資源(周未/晚上)

           公司資源有限,通常正常工做時段資源都比較緊張,但到了晚上或週末,資源出現了空閒,而自動化測試在晚上和週末也能進行,大大利用了空閒資源。瀏覽器

3    自動化測試難點

         既然自動化測試有那麼多好處,爲何不少公司都沒有實施自動化測試呢,由於實施自動測試除了有些項目自身不適應外,還有一些難點,總結下主要有如下幾點:websocket

  • 測試腳本維護工做量大

           自動化測試在編寫腳本或寫測試用例的時候須要跟開發人員人間做深刻的溝通, 瞭解軟件的邏輯實現和模塊之間的接口, 如UI的控件實現方式變化以後,開發人員應及時通知測試開發人員, 對測試的腳本進行調整和維護, 對開發人員提交文檔的規範性有更高的要求。框架

  • 測試人員有較好開發能力

            目前國內測試行業起步較晚,不少測試人員都不寫代碼,致使招聘人員上存在一些困難,因此企業要推行軟件自動化測試,不是一件容易的事, 領導不但須要支持創建測試開發團隊,並且須要招聘有經驗的自動化測試人員,並樹立自動化測試部門的權威性,真正給企業帶來效益,下降人工測試的成本。

  • 投入週期長

           有些項目上線週期很短,可能某個需求開發完成後,自動化測試腳本可能尚未寫好或覆蓋的用例不全或自動化腳本自身存在問題,這樣致使了自動化測試在前期很難體現出做用;可是,當一個項目通過屢次迭代後,測試用例可能已經成千上萬了,每一次版本提測都須要把全部用例執行一遍,這時候自動化測試才體現出來價值,因此自動化測試適合迭代次數多且週期比較長的項目,這樣必然要求自動化測試投入週期長,且前期效果不明顯。

4  自動化測試工具介紹

         目前比較流行的web頁面自動化測試工具備QTP,Selenium:

         其中QTP,商業工具,笨重,可是功能強大,易上手,是一套完整的自動化解決方案,且適用於C/S,B/S結構
對象屬性和對象定位的策略,測試對象和運行時對象,如何作些對象遞歸操做,VBS,最大的缺點是VBS語法體系,不太適合寫大項目,並且效率很低,因此QTP如今很容易被代替。
         selenium2,開源工具,輕量級,適合多種語言編寫,能在多種主流瀏覽器上運行,可是隻支持B/S系統,且須要必定的編程基礎,上手比較難。

         開源測試框架:python有Unittest,Robot Framework ,doctest,Test Discovery ,pytest等,java開源測試框架有jmeter,junit,testNG,Powermock,EasyMock等。

         測試開發常見模塊包,java有 httpunit ,(Apache HttpClient 4.5.3 API)NIO,MINA ,protobuf-java,mysql-connector-java,javax.websocket,fastjson,json,xmlParserAPIs;python 有urllib2,httplib,os,shutil,struct.pack,MySQLdb,sqlite3,websocket等。

         再加持續集成工具jenkins,其提供了自動編譯,構建,打包,部署,自動測試,發佈測試報告,郵件通知相關功能。如下是自動測試流程結合工具常見的模型,其參見圖:

      

         由上圖能夠看出,加入自動化測試後,開發測試活動的各個環節將無縫自動鏈接,很好的節省了時間。在收到測試報告後,若有測試失敗的狀況,分析緣由後修改開發代碼或測試代碼後,整個流程從新自動來一遍便可。

相關文章
相關標籤/搜索