軟體測試招聘方面基本上都有關於自動化測試的要求。了解 selenium、appium或者其他自動化測試框架至少熟悉一門面向對象開發語言,會使用JMeter、Postman等接口測試工具等等,這些相信在招聘信息上都看過,就不詳細列舉了。本文主要的目的就是科普一下什麼是自動化測試。
測試
測試:這個我們熟悉。測試的本質:過程。測試是為了發現軟體的錯誤,而執行的過程,這個過程可以是以下內容:運行被測試的軟體,執行軟體的功能運行其他工具,去檢查軟體的內部和外部。
自動化
自動化測試就是讓被測試的軟體自己運行起來,執行軟體的功能;或者就是讓其他的工具自己運行起來,去檢查軟體的內部和外部。
既然測試是一個過程,那麼自動化測試,就是自動的執行的過程。
不知道童鞋們有沒有思考過,機器怎麼知道人類的要求?好吧~ 關鍵點是程式語言。機器學習一個程式語言,輕鬆和簡單到令人髮指的地步:安裝上去,機器就學會了。好在人類學習程式語言也不是特別難的的事情。有了程式語言,就有了人機交流的橋梁,剩下的事情,是幫機器挑選工具。做對應的測試,找到對應的工具,這樣自動化就自動起來了。
接下來我們探討一下主流的自動化測試方案,無一例外,都有人機溝通的程式語言,加上機器操作的工具來組成。
功能自動化測試VBScript + QTP(HP UFT),商用功能自動化測試方案Python/PHP/Java/C#/JavaScprit/Ruby + Selenium/Appium + 單元測試框架,開源功能自動化測試方案這裡我們多介紹一點。
Selenium/Appium 本身不能算是測試工具,而只是機器用來操作瀏覽器的工具,並且這個工具能聽懂多種語言:Java,C# 這兩個重 (zhòng) 語言Python,Ruby 這兩個腳本輕語言PHP,JavaScript 這兩個專門處理 Web 的語言工具外加指定的語言,可以讓機器來操作瀏覽器,但是到此時還無法做到測試,於是才需要每個語言自己的單元測試框架,來一起完成這個功能自動化測試方案的構建。
此外,業界還一種暫時臨時的方案,就是 Python 2 + Robot Framework + Selenium Library 插件 + 單元測試框架構成的一種測試方案。
主要基於兩點:理念:這是一種基於關鍵字的方案,那麼關鍵字是 QTP(HP UFT)的特長,並不是Selenium的本意技術:Python 2 終究是要退出歷史舞臺的,如果從零開始做自動化測試,還是直接入手 Python 3 吧,然而 Robot Framework 不支持 Python 3……Python/Java/C#/JavaScprit/Ruby + Gauge,又一款開源的功能自動化測試方案Thoughtworks 的基於BDD理念的自動化測試工具Gauge 本身就是完整的測試方案Gauge 是從需求分析師(BA)到測試工程師(QA)都覆蓋的測試方案Java/Python + Macaca,阿里巴巴的功能自動化測試方案,缺點是文檔少JavaScript + TestCafe,DevExpress 的開源功能自動化測試方案pure node.js - TestCafe不使用Selenium,並且不需要插件來在實際瀏覽器中運行測試。
它建立在node.js的頂部,因此它與現代開發工具集成和工作良好無需額外的設置或配置- TestCafe是所有設置後立即運行測試npm install完整的測試工具 - 使用單個啟動命令,TestCafe啟動瀏覽器,運行測試,收集結果並生成報告JavaScript + Postman,免費的Web接口功能自動化測試方案Groovy + SoapUI,開源的Web接口功能自動化測試方案性能自動化測試Java/C + HP LoadRunner,商業版性能測試方案Java + JMeter,開源版性能測試方案Python + locust,開源版性能測試方案
事實上,自動化測試覆蓋了從 UI (功能測試)到契約(接口測試)以及底層代碼方法(單元測試)的整個過程,要想很好的掌握自動化測試,那麼的確需要以下三種領域的經驗積累:
程式語言,面向對象編程優先,因為大量的開源技術方案,都是基於面向對象的編程方式第三方測試工具和測試框架,這些主要通過官網的文檔學習測試的理念與設計,工具和語言,只是測試的手段,如何準備測試數據,如何設置測試的檢查點與測試步驟,這些決定了測試的成敗
前端與伺服器後端技術,是測試執行的保障。