开源软件运动正在获得很大成功,正在改变软件业的开发模式、运营方法等,也自然改变着软件测试的方法,
借助开源软件测试工具完全可以构造一个完整的测试解决方案,从单元测试、功能测试到性能测试,从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进行扩展。