雖然功能測試是絕大多數(shù)軟件都無法回避的,但多數(shù)開發(fā)企業(yè)不諳其中滋味,所以,測試外包市場才會如此繁榮而且規(guī)模日益壯大。目前,功能測試已跨越了單靠手工敲敲鍵盤、點點鼠標就可以完成的階段,正朝著自動化和智能化方向發(fā)展。自動化是指各類測試工具已經(jīng)得到日益廣泛的應(yīng)用; 智能化是指測試人員從腳本編制、運行、調(diào)試到結(jié)果分析乃至測試方案改進,都需要有深入的了解。
而性能測試的重要性是隨著網(wǎng)絡(luò)應(yīng)用的發(fā)展而發(fā)展的,由于網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)庫環(huán)境、應(yīng)用服務(wù)器環(huán)境、系統(tǒng)平臺和技術(shù)等的復(fù)雜性和多樣性,軟件性能非常難于控制。雖然,改善系統(tǒng)性能不是單單依靠性能測試就能完成的,但性能測試至今仍是控制性能的非常有效的手段,在軟件的能力驗證、能力規(guī)劃、性能調(diào)優(yōu)、缺陷修復(fù)等方面都發(fā)揮著重要作用。
功能測試工具的選擇
那么,如何高效地完成功能測試?選擇一款合適的功能測試工具并培訓(xùn)一支高素質(zhì)的工具使用隊伍無疑是至關(guān)重要的。盡管現(xiàn)階段存在少數(shù)不采用任何功能測試工具,從事功能測試外包項目的軟件服務(wù)企業(yè)。短期來看,這類企業(yè)盈利狀況尚可,但長久來看,它們極有可能被自動化程度較高的軟件服務(wù)企業(yè)取代。
目前,用于功能測試的工具軟件有很多,針對不同架構(gòu)軟件的工具也不斷推陳出新。這里重點介紹的是其中一個較為典型自動化測試工具,即Mercury公司的WinRunner。
WinRunner是一種用于檢驗應(yīng)用程序能否如期運行的企業(yè)級軟件功能測試工具。通過自動捕獲、檢測和模擬用戶交互操作,WinRunner能識別出絕大多數(shù)軟件功能缺陷,從而確保那些跨越了多個功能點和數(shù)據(jù)庫的應(yīng)用程序在發(fā)布時盡量不出現(xiàn)功能性故障。
WinRunner的特點在于: 與傳統(tǒng)的手工測試相比,它能快速、批量地完成功能點測試; 能針對相同測試腳本,執(zhí)行相同的動作,從而消除人工測試所帶來的理解上的誤差; 此外,它還能重復(fù)執(zhí)行相同動作,測試工作中最枯燥的部分可交由機器完成; 它支持程序風格的測試腳本,一個高素質(zhì)的測試工程師能借助它完成流程極為復(fù)雜的測試,通過使用通配符、宏、條件語句、循環(huán)語句等,還能較好地完成測試腳本的重用; 它針對于大多數(shù)編程語言和Windows技術(shù),提供了較好的集成、支持環(huán)境,這對基于Windows平臺的應(yīng)用程序?qū)嵤┕δ軠y試而言帶來了極大的便利。
WinRunner的工作流程大致可以分為以下六個步驟:
1.識別應(yīng)用程序的GUI
在WinRunner中,我們可以使用GUI Spy來識別各種GUI對象,識別后,WinRunner會將其存儲到GUI Map File中。它提供兩種GUI Map File模式: Global GUI Map File和GUI Map File per Test。其最大區(qū)別是后者對每個測試腳本產(chǎn)生一個GUI文件,它能自動建立、存儲、加載,推薦初學者選用這種模式。但是,這種模式不易于描述對象的改變,其效率比較低,因此對于一個有經(jīng)驗的測試人員來說前者不失為一種更好的選擇,它只產(chǎn)生一個共享的GUI文件,這使得測試腳本更容易維護,且效率更高。
2.建立測試腳本
在建立測試腳本時,一般先進行錄制,然后在錄制形成的腳本中手工加入需要的TSL(與C語言類似的測試腳本語言)。錄制腳本有兩種模式: Context Sensitive和Analog,選擇依據(jù)主要在于是否對鼠標軌跡進行模擬,在需要回放時一般選用Analog。在錄制過程中這兩種模式可以通過F2鍵相互切換。
只要看看現(xiàn)代軟件的規(guī)模和功能點數(shù)就可以明白,功能測試早已跨越了單靠手工敲敲鍵盤、點點鼠標就可以完成的階段。而性能測試則是控制系統(tǒng)性能的有效手段,在軟件的能力驗證、能力規(guī)劃、性能調(diào)優(yōu)、缺陷修復(fù)等方面都發(fā)揮著重要作用。
3.對測試腳本除錯(debug)
在WinRunner中有專門一個Debug Toolbar用于測試腳本除錯?梢允褂胹tep、pause、breakpoint等來控制和跟蹤測試腳本和查看各種變量值。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |