開源軟件運動正在獲得很大成功,正在改變軟件業的開發模式、運營方法等,也自然改變著軟件測試的方法,
借助開源軟件測試工具完全可以構造一個完整的測試解決方案,從單元測試、功能測試到性能測試,從Web頁面測試到VoIP/Telephony等一些多媒體應用的測試,直至測試的管理平臺和缺陷跟蹤系統,能覆蓋整個測試工作領域。
開源工具的優劣勢
對比 優勢 劣勢
開源工具
免費:投入少、見效快
小巧、輕便,在自己擅長的領域可以提供優秀的解決方案
有更好的擴展自由度
資源豐富
功能簡單
各個軟件之間的集成度不高
主流商業測試工具 工具本身功能強大
有完善的售后服務
成體系:集成度高
功能強大
有一定費用
需要專業系統地學習
市場主流測試工具與開源工具的對應列表
測試工具類型 開源工具 市場主流工具
測試管理工具 TestLink TestDirect
配置管理工具 CVS、VSS、SVN ClearCase
BUG管理工具 Bugzilla、BugFree TD、ClearQuest、
單元測試工具 Junit、Jmeter JTest
功能測試工具 WATIR、Selenium WinRunner、SilkTest、QTP
性能測試工具 HTTP-LOAD、ab LoadRunner 、 QALoad
YAHOO開源工具–對 Bugzilla的擴展
Bugs 改名為Tickets
界面做了改進,操作起來更方便快捷
增加了產品組的概念
把版本細分為原版本和目的版本
改進了產品選擇功能
YAHOO開源工具的應用--TestLink
TestLink用于測試過程中的管理,它可以將測試過程從測試需求、測試設計、到測試執行完整的管理起來,同時,它還提供了好多種測試結果的統計和分析,幫助我們管理測試工作和分析測試結果。作為基于web的測試管理系統。
YAHOO開源工具—TestLink主要功能
根據不同的項目管理不同的測試計劃,測試用例,測試構建相互之間獨立
根據樹狀的項目,組件,分類,測試用例,設計測試用例
可以基于關鍵字搜索測試用例。
可以將現有測試用例簡單修改后復用,
同一項目可以制定不同的測試計劃,然后將相同的測試用例分配給測試計劃 (可以實現測試用例的復用,篩選)
可以設定執行測試的狀態(通過,失敗,鎖定,尚未執行),失敗的測試用例可以和 bugzilla 中的 bug 關聯,每個測試用例執行的時候,可以填寫相關說明。
測試結果分析(可以實現按照需求,按照測試計劃,按照測試用例狀態,按照版本,統計測試結果)
自定義角色,通過角色控制用戶權限
測試結果可以導出為 excel 表格
測試用例可以導出為 csv , html 格式
通過超連接,可以將文本格式的需求,計劃關聯
可以將測試用例和測試需求對應。測試可以根據優先級指派給測試員,定義里程碑
YAHOO開源工具—TestLink需改進的功能
不能根據優先級篩選用例,如果需要優先級,必須通過關鍵字來實現
不能設定測試用例的種類,如果需要必須通過關鍵字來實現
如果測試用例需要大量的數據,創建測試用例時不方便
需與第三方缺陷管理工具集成,例BUGZILLA
YAHOO開源工具的應用--WATIR
Watir 是一個使用 Ruby 實現的開源Web 自動化測試框架,相對于那些龐大的商業工具來說,它很小巧,也很靈活,提供的功能也足夠用。 主要優勢:
1.因為是操作IE,而不是直接抓http,所以更加接近真實用戶結果,很適合GUI功能測試
2.其開發語言ruby非常靈活,而且簡單,易學,所以它也具有這些特性
3.活躍而友好的開發隊伍和郵件組,很快的響應你所遇到的問題
4.提供了一些簡單的framework,log等等,而且都是比較輕量級的封裝,很容易就可以customized
YAHOO開源工具應用實例—WATIR
require 'watir'
ie1=Watir::IE.start('yahoo.com.cn')
ie1.text_field(:name,'p').set('yahoo')
ie1.button(:value,'全網搜索').click
if ie1.link(:text,'雅虎首頁').href=='http://www.yahoo.com.cn/'
puts 'ok!'
else
puts 'Failed!'
end
YAHOO開源工具應用成果實例
a、冒煙測試;
在多個產品中應用實WATIR實現了冒煙測試,確保產品基本功能正常,降低了驗證產品的成本,縮短了驗證時間;
b、數據正確性測試;
當需要對大批量數據進行正確性驗證時,替代手工機械勞動;在較短的時間內,完成手工所不能完成的正確性驗證;
c、功能回歸測試;
在產品開發的同時,開發相應的回歸測試腳本,通過前期的工作,提高后期回歸測試執行的效率;
d、UI驗證;
保證UI展現的正確性;
如:如web頁面展現檢查工具
E、通過定時任務和watir測試腳本的結合,可實現無需人工干預的自動化測試
F、使用ruby進行接口測試
利用了ruby簡單易用的特點,快速開發接口測試腳本,提高接口測試的效率和可靠性;
G、前端測試與接口測試的結合
以接口數據為依據,驗證前端展現;
HTTP_LOAD簡介
HTTP_LOAD是基于UNIX平臺的一種性能測工具,用于測試WEB頁面的性能。
http_load -h
usage: http_load [-cookie http_cookie]
-parallel N | -rate N [-jitter]
-fetches N | -seconds N
url_file
One start specifier, either -parallel or -rate, is required.
One end specifier, either -fetches or -seconds, is required
HTTP_LOAD例子---例1
測試網站在一定壓力下,系統的響應能力
http_load -parallel 50 -s 10 urls.txt
這段命令行是同時使用50個進程,隨機訪問urls.txt中的網址列表,總共訪問10秒。
HTTP_LOAD例子---例1運行結果
718 fetches, 50 max parallel, 9.98164e+07 bytes, in 10 seconds
139020 mean bytes/connection
71.8 fetches/sec, 9.98163e+06 bytes/sec
msecs/connect: 40.4491 mean, 86.291 max, 0.279 min
msecs/first-response: 355.15 mean, 4243.9 max, 7.016 min
HTTP response codes:
code 200 -- 718
YAHOO開源工具的應用--Junit
JUnit ——是一個開發源代碼的Java測試框架,用于編寫和運行可重復的測試。他是用于單元測試框架體系xUnit的一個實例(用于java語言)。主要用于白盒測試,回歸測試。
好處:
A、可以使測試代碼與產品代碼分開。
B、針對某一個類的測試代碼通過較少的改動便可以應用于另一個類的測試。
C、易于集成到測試人員的構建過程中,JUnit和Ant的結合可以實施增量開發。
D、JUnit是公開源代碼的,可以進行二次開發。
C、可以方便地對JUnit進行擴展。
文章來源于領測軟件測試網 http://www.kjueaiud.com/