本篇文章轉自網絡,學習收藏,轉載請聯系原作者。
原文出處:http://www.cnblogs.com/TankXiao/p/3316355.html#automationDisplin
自動化測試是我們進階軟體測試人員必備的技能。進階軟體測試人員不光會做測試,還會做開發。
我從自己8年的經驗出發,總結了下我對自動化測試的看法。如有不對的地方, 還請大家糾正。
閱讀目錄
- 軟體自動化測試的學習步驟
- 自動化測試的本質
- 自動化測試學習的誤區
- 自動化測試的職位
- 自動化測試分類
- Web自動化測試分類
- 自動化測試的知識點
- 自動化測試的書籍推薦
- 自動化測試工具
大概步驟如下:
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自動化測試分兩類:
第一類是:模拟使用者真實操作,比如,模拟點選滑鼠,鍵盤輸入,等,去操作浏覽器上的控件。 (代表架構有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