側重說明由測試工具自動地執行某項軟件測試任務,自動化處理范圍比較小。測試計劃,設計和管理由其他手工完成
測試自動化(Test Automation)
側重說米國整個測試過程由計算機系統自動完成,體現更理想 的自動化思想。不僅要求工具完成測試的執行,而且要求測試的設計和管理也有系統自動完成。
測試環境的搭建和設置,自動上傳軟件包到服務器并完成安裝
腳本自動生成,根據UML狀態圖,時序圖等生成可運行的測試腳本
測試數據的自動產生,可以通過SQL語句在數據庫產生大量的數據,用于測試
測試操作步驟的自動執行,包括軟件系統的模擬操作,測試執行過程的監控
測試結果分析,實際輸出和預期輸出的自動對比分析
測試流程的自動處理,包括測試計劃復審和批準,測試任務安排和執行,缺陷生命周期自動化處理
當然,以測試人員的目標來說,測試自動化是追求的理想境界,雖然說不現實,但是我們每時每刻都在努力著。
不同的測試任務,選用的自動化解決方案是不同的,。單元測試和開發結合非常密切,其自動化測試一般建立在繼承開發環境上。功能測試和系統測試有較大的區別,功能測試需要關注圖形用戶界面(GUI),性能測試采用底層通信或應用程序接口(application programming Interface ,API)等方式來實現和系統的交互作用。
在自動化測試過程中,需要遵循一個有效的原則才能到達所期望的目標
自動測試反問的考量
自動化無法處理一些模糊結論的判斷和驗證,適合非常明確的任務,來解決某個特定的問題;
自動化測試比較不適合新功能的測試,比較適合回歸測試;
單元測試測試中,自動化測試工具和開發工具集成一起,自動化測試程度比較高且全面----xnuit
集成測試階段,自動化測試工具的作用是間接的,一般通過基本功能的驗證來驗證系統的集成
系統測試階段,一般進行壓力測試,性能測試,可靠性測試;功能測試的邏輯,數據,API驗證比較適合自動化測試;GUI,易用性比較適合手工完成
驗收測試,一般手工完成測試
軟件測試自動化實現的原理和方法:直接對代碼進行靜態和動態分析,測試過程的捕獲和回放,測試腳本技術,虛擬用戶技術以及測試管理技術
1.代碼分析(靜態,動態分析。Selenium IDE采用JavaScript 代碼對web頁面DOM元素進行操作,從而實現對頁面的自動化測試。所有命令對應的API都是通過Selenium這個對象的原型方式(prototype)進行定義或者擴展的。)
eg:Selenium API 中doClick代碼(this.browserbot是很重要的對象)
Selenium.prototpe.doClick=function(locator){
/**
*Clicks on a link,button,checkbox or radio button.If the click action causes a new
*page to load (like a link usually does),call waitForPageToLoad.
*
*@param locator an element locator
*
*/
var element=this.browserbot.findElement(locator);
this.browserbot.clickElement(element);
}
1.2代碼擴展
解壓selenium-ide.jar然后用以下代碼保存為selenium-api.js代替原來的同名文件。
///Create a sample for hello world
Selenium.prototype.doHelloworld=function(){
throw new SeleniumError("Hello world");
};
Selenium RC 設置HTTP代理(HTTP Proxy).測試機向代理服務器發出請求,然后代理服務器向應用服務器轉發請求,并接受服務器的響應,傳送給測試機。欺騙瀏覽器。
要是用selenium RC server 能夠運行HTTPS,IE需要配置,firefox有自己的配置文件(Profile).
Selenium RC 證書selenium-1.0-beta-1\sslSupport下的cybervillainsCA.cer倒入到IE
2.GUI對象識別
3.DOM對象識別 (ieinspector)
4.腳本技術(線性,結構化,關鍵字,數據驅動)
5.自動化比較技術(自動化測試時,預期輸入是事先定義的,要么在腳本或數據庫中,將捕獲的結果和預期結果進行比較)
原文轉自:http://www.cnblogs.com/cloud-test/p/3530221.html