1. 程式人生 > 實用技巧 >該如何學習自動化測試

該如何學習自動化測試

在這裡插入圖片描述

很多做軟體測試的朋友談論,如何學習自動化測試(Automation test)。 有些人說平常的測試工作很枯燥無味,沒有技術含量,迷失了方向。 還有的說閒得要命,想學點自動化測試。

自動化測試是我們高階軟體測試人員必備的技能。高階軟體測試人員不光會做測試,還會做開發。

我從自己的經驗出發,總結了下我對自動化測試的看法。如有不對的地方, 還請大家糾正。

軟體自動化測試的學習步驟

  1. 做好手工測試(瞭解各種測試的知識)

  2. 學習程式語言

  3. 學習Web基礎(HTML,HTTP,CSS,DOM,Javascript)或者 學習Winform

  4. 學習自動化測試工具

  5. 學習自動化測試框架

  6. 實現自動化測試用例

  7. 開發自動化測試工具

  8. 開發自動化測試框架

自動化測試的最高境界是: 開發測試工具,設計自動化測試框架, 讓別人用。

自動化測試的本質

自動化測試的本質是:用程式測試程式。 也就是說學習“程式語言”是學習自動化測試的基礎。

很多人問小坦克我學自動化測試,應該去學什麼自動化工具。 我的回答是,第一步:應該先學習程式語言,以後再去學自動化測試工具

自動化測試是一定要寫程式碼的, 程式語言水平的高低決定了自動化測試水平的高低, 有了紮實的程式設計技術,幹什麼都可以。

學習程式語言時, 要把自己當做開發人員, 系統地學習各種程式設計知識。

自動化測試學習的誤區

很多新手一開始,就學習複雜的自動化測試工具, 我覺得這樣是本末倒置了。

如果不先理解HTTP協議, 就不會理解Jemeter, LoadRunner, Fiddler, SoapUI這些工具的。

如果不先理解HTML,DOM, 就不會理解Firebug 這種工具的

如果不先理解Win32 API, 就不會理解Windows 窗體自動化測試的原理的。

如果自己沒有開發過網站, 就不會理解網站的各個方面,測試起來難免有遺漏。

總之學習自動化測試,需要循序漸進, 把基礎打好。

自動化測試的職位

自動化測試工程師的職位叫做: (SDET) Software Development Engineer in Test. 專注於自動化測試

手動測試工程師叫:(STE)Software test enginer. 專注於手動測試

在微軟有很多SDET的職位,但是沒有STE的職位, STE職位一般都是外包給外包公司的, 目前自動化測試還是非常吃香的。

自動化測試分類

自動化測試也有非常多的種類:

  • 對Web UI 的自動化測試程式
  • 對Windows 窗體UI的自動化測試程式
  • API測試, 比如(測試WCF service, Web API 等)
  • 資料庫測試, 比如測試儲存過程
  • 介面測試 (這種只能用自動化測)
  • 單元測試
  • 效能測試, 效能測試都需要用到自動化

Web自動化測試分類

目前大部分專案都是Web的, 所以我們說的自動化測試,大部分都是針對Web程式的自動化測試, Web自動化測試分兩類:

第一類是: 模擬使用者真實操作,比如,模擬點選滑鼠,鍵盤輸入,等,去操作瀏覽器上的控制元件。 (代表框架有selenium-webdriver, VS Coded UI)

這類的自動化測試的是通過高階語言(C#, JAVA, Python 等)來呼叫selenium的一些工具來操作瀏覽器,幫助我們實行Web UI自動化

第二類是: 模擬HTTP請求。 類似於這種【12306火車票網站自動登入工具】, 這方面的知識,目前市面上資料比較少。 (以後我會出一個系列的教程)

自動化測試的知識點

應該像開發人員一樣的心態去學習技術, 自動化測試需要掌握以下的知識:

瞭解Javascript, CSS的知識。

熟練掌握DOM和HTML知識, (用來解析Web介面)

熟練掌握XML技術,(需要用XML儲存測試資料,用XML展現測試報告)

熟練使用C# P/inoke技術呼叫Windows API (可以用來操作Winform 視窗)

熟練掌握窗體"控制代碼"的概念

熟練使用C# 操作Windows 登錄檔

熟練使用C# 中的Process 類

熟練掌握資料庫的基本操作語句 (測試資料庫肯定要用到)

熟練掌握HTTP協議的知識 (請參考我的 HTTP系列部落格 [HTTP協議詳解])

熟練掌握C# 中的HttpWebRequest 類的用法 (用於模擬HTTP請求)

熟練掌握正則表示式

自動化測試的書籍推薦

關於軟體自動化測試的書,真心不多, 我查過市面上所有關於自動化測試的書,只找到下面這邊書, 掌握了這邊書,基本上自動化測試就入門了。

在這裡插入圖片描述

自動化測試工具

測試套件工具: JUnit, Nunit, MSTest, 這幾個工具功能都一樣學起來比較簡單。

效能測試工具: JMeter, VSTS 負載測試, LoadRunner(收費), QTP(收費)

Web UI 測試框架:WebDriver/Selenium, VSTS Coded UI, Watri

Windows UI 測試框架:VSTS Coded UI

其他工具: firebug, Fiddler

在這裡插入圖片描述

在這裡插入圖片描述
上面是我收集的一些視訊資源,在這個過程中幫到了我很多。如果你不想再體驗一次自學時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以加入我們扣扣群【313782132 】,裡面有各種軟體測試資源和技術討論。
在這裡插入圖片描述
當然還有面試,面試一般分為技術面和hr面,形式的話很少有群面,少部分企業可能會有一個交叉面,不過總的來說,技術面基本就是考察你的專業技術水平的,hr面的話主要是看這個人的綜合素質以及家庭情況符不符合公司要求,一般來講,技術的話只要通過了技術面hr面基本上是沒有問題(也有少數企業hr面會刷很多人)
我們主要來說技術面,技術面的話主要是考察專業技術知識和水平,上面也是我整理好的精選面試題。

趕快進來學習瞭解與交流吧。