自動化測試

發表于:2014-02-25來源:豆瓣作者:@行知-追尋技術之美點擊數: 標簽:自動化測試
很長時間,一直都在做自動化相關的事情,包括測試框架,測試平臺,以及持續集成等等。但是這些的基礎還是依靠優秀的自動化測試代碼,下面的內容就是自動化測試的相關知識點,相信大家可以從這些點中可以找到很多的共鳴,然后擴展,方便大家更好的深入學習。

  很長時間,一直都在做自動化相關的事情,包括測試框架,測試平臺,以及持續集成等等。但是這些的基礎還是依靠優秀的自動化測試代碼,下面的內容就是自動化測試的相關知識點,相信大家可以從這些點中可以找到很多的共鳴,然后擴展,方便大家更好的深入學習。

  01 一些測試理論

  1. 測試分類的三維模型:

  以時間趨勢為基線的分類,如系統測試,集成測試…

  以測試方法為基線的分類,這種分類是面向質量體系的,如功能測試、性能測試、安全測試…

  以測試目標為基線的分類,如白盒測試、黑盒測試、灰盒測試。

  2. 白盒測試、黑盒測試以及灰盒測試的區別:

  黑盒測試是驗證應用程序行為準確性的測試;

  白盒測試是驗證應用程序結構準確性的測試;

  灰盒測試介于黑盒測試和白盒測試之間;

  黑盒測試和白盒測試,與是否需要寫代碼無關。

  3. 自動化測試的特點、目標

  特點:使用機器和程序的能力

  目標:減少資源消耗;擴大測試范圍;充分發揮人和機器的能力;

  4. 測試策略安排:

  風險優先;

  成本優先;

  5. 代碼評審的內容:

  檢查風格

  檢查設計

  發現代碼缺陷

  6. 關于測試覆蓋率:

  要被測試的代碼都需要被覆蓋到

  02 UI自動化測試

  1. UI自動化的應用:

  一般用于測試回歸;

  覆蓋越多的業務越好;

  衡量成本和收益:人工回歸與自動化方式的投入和效率對比

  2. UI自動化的缺陷:

  非視覺,即無法模擬人眼睛能夠看到的內容,如長度超出、不適當的留白或換行。

  3. UI自動化的方案:

  3.1 基于Javascript的方案

  優點:跨瀏覽器; 缺點:無法操作瀏覽器本身;

  selenium core : 腳本必須與被測應用放在同一域名下;

  selenium RC : 請求發送到seleniumServer,seleniumServer轉換請求客戶端的域名為被測應用的域名,被測應用響應后,seleniumServer再轉換被測應用的域名為請求客戶端的域名;

  3.2 基于瀏覽器的方案

  優點:對瀏覽器操作性好; 缺點: 瀏覽器兼容性差;

  方案實現工具: webDriver 、watir 、pamIe

  4. 工具簡介:

  webDriver : 支持非標準組件; 容易捕獲模式窗口; 可以設置代理服務器;

  selenium 2.0 : 集成了Javascript和webDriver兩種方式;

  5. UI自動化測試的級別:

  5.1 Dom級別

  操作方式:parse頁面獲取dom屬性;

  訪問dom對象的方法:根據xpath訪問;根據id屬性訪問;根據name屬性訪問;

  IE6對xpath的訪問方式支持性極差;

  dom級別的缺點:不能校驗用戶體驗細節,如重疊、超出范圍、不合適的留白等;

  5.2 基于圖像的級別

  限制條件:使用模板針對頁面布局的校驗;人工判斷圖像差異性;頁面上需要保持固定的數據;針對頁面上的固定區域;提供靈活的圖片解析算法;

  基于mask的圖片比較:將不需要比較的圖片區域用黑色覆蓋;

  判斷圖片是否存在于頁面的某個位置;

  排除字體和顯示差異:允許圖片縮放、用ocr識別文本、設計和實現字體識別;

  鏤空文字保留圖像以便比較布局;提取頁面文字以便校驗數據;

  6. Diff技術:

  6.1 Diff技術的應用

  發現變化;

  基于人工判斷該變化是否是預期的變化;

  根據diff結果,決定變化的技術和方法;

  6.2 Diff的工作原理

  通過同時發送相同請求到不同版本的同一個應用,對比發現兩者之間的變化,確定測試范圍;

  對比時屏蔽一些已知的、明顯的不同;

  對比時屏蔽噪音(即無用的信息);

  7. 支持多瀏覽器的手工測試:

  在不同的瀏覽器中展示相同的頁面,發現不同;

  在其它瀏覽器上重現操作;

  基于實時交互的方案:多臺機器各安裝不同的瀏覽器,并安裝seleniumServer;另外一臺seleniumClient分別發送請求到各server;使用VNC等多屏幕方式觀察server運行結果;

  8. UI自動化測試的執行測略:

  不依賴IDE;

  和持續集成、構建腳本一起工作;

  運行失敗時截圖,直接查看失敗細節;

  使用selenium集群,通過統一接口訪問多臺server.

  專門的圖片比較服務器;

  避免內外有別:測試結果盡量和用戶結果一致;測試可以從線上發起,在線上建立proxy server,根據規則決定訪問線上還是測試環境;

  9. 經驗分享:

  識別應用特點:用了哪些技術,哪些是易變的,哪些是穩定的,哪些可以使用自動化方法;

  在設計時考慮測試,設計評審時的可測性考慮,良好的應用隔離,清晰的分層結構,易于控制,具備標識;

  圖片比較方式經驗談,圖像比較測試、基于圖像diff發現改變,在發生異常時截屏,以圖像記錄結果。

  03 單元測試

  1.自動化測試的哲學:

  事先測試(TDD)與事后測試

  針對狀態的測試和針對行為的測試;

  狀態測試: 校驗應用起始和結束的正確性;

  行為測試: 校驗所依賴的對象行為是否正確;

  2.單元測試基礎知識:

  2.1 測試對象

  類的公有方法;

  2.2 單元測試中的白盒測試和黑盒測試

  參看01 一些測試理論

  2.3 樁模塊和驅動模塊

  樁模塊: 為了讓目標類正確運行而設計的支持類;

  驅動模塊: 驅動目標類運行起來的類,比如junit。

原文轉自:http://www.wangyuxiong.com/archives/52292

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97