文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
目前市场主流的测试工具和管理软件,如Rational和Mercury的系列产品,大多比较昂贵。
商业软件的优势主要表现在其售后服务和工具本身的强大和易用性上,而作为技术基础相对较好的测试人员,也可考虑使用开源的软件,这将为公司节省一大笔开支,必要时也有更好的扩展自由度。
开源测试工具——功能测试工具
Linux Test Project
工具描述:
Linux Test Project是一个测试Linux内核和内核相关特性的工具集合。该工具的目的是通过把测试自动化引入到Linux内核测试,提高Linux的内核质量。
使用环境: Linux
MaxQ
工具描述:
MaxQ是一个免费的功能测试工具。它包括一个HTTP代理工具,可以录制测试脚本,并提供回放测试过程的命令行工具。测试结果的统计图表类似于商用测试工具,比如Astra QuickTest和Empirix e-Test,这些商用工具都很昂贵。MaxQ希望能够提供一些关键的功能,比如HTTP测试录制回放功能,并支持脚本。
使用环境: Java 1.2以上版本
WebInject
工具描述:
WebInject是一个针对Web应用程序和服务的免费测试工具。 它可以通过HTTP接口测试任意一个单独的系统组件。可以作为测试框架管理功能自动化测试和回归自动化测试的测试套。
使用环境: Windows, OS Independent, Linux
开源测试工具——性能测试工具
Apache JMeter
1文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
/
工具描述:
Apache JMeter是100%的Java桌面应用程序,它被设计用来加载被测试软件功能特性、度量被测试软件的性能。设计Jmeter的初衷是测试Web应用,后来又扩充了其它的功能。Jmeter可以完成针对静态资源和动态资源(讹误女监, Servlets, Perl脚本, Java对象, 数据查询s, FTP服务等)的性能测试。。 Jmeter可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能。Jmeter提供图形化的性能分析。
使用环境: Solaris, Linux, Windows (98, NT, 2000). JDK1.4以上.
DBMonster
工具描述:
DBMonster是一个生成随机数据,用来测试SQL数据库的压力测试工具。
使用环境: OS Independent
OpenSTA (Open System Testing Architecture)
工具描述:
基于CORBA的分布式软件测试构架。使用OpenSTA,测试人员可以模拟大量的虚拟用户。 OpenSTA的结果分析包括虚拟用户响应时间、web服务器的资源使用情况、数据库服务器的使用情况,可以精确的度量负载测试的结果。
使用环境: OS Independent
TPTEST
工具描述:
TPTest的提供测试Internet连接速度的简单方法。
使用环境: MacOS/Carbon、 Win32
Web Application Load Simulator /index.html
2文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
工具描述:
LoadSim是一个网络应用程序的负载模拟器。
使用环境: JDK 1.3以上
开源测试工具——缺陷管理工具
Mantis
工具描述:
Mantis是一款基于WEB的软件缺陷管理工具,配置和使用都很简单,适合中小型软件开发团队,关于Mantis的介绍文章参见51testing软件测试网顾问蔡琰的文章 《使用开源软件 Mantis 实施缺陷跟踪的成功实践》
使用环境: MySQL, PHP
Bugzilla /bugzilla/
工具描述:
一款不错的软件缺陷管理工具。
使用环境: TBC
开源测试工具——测试管理工具
TestLink /testLink.php
工具描述:
基于WEB的测试管理和执行系统。测试小组在系统中可以创建、管理、执行、跟踪测试用例,并且提供在测试计划中安排测试用例的方法。
使用环境: Apache, MySQL, PHP
Bugzilla Test Runner /testrunner/
工具描述:
3文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
Bugzilla Test Runner基于Bugzilla缺陷管理系统的测试用例管理系统。
使用环境: Bugzilla 2.16.3 or above 代码实践
下图展示了两段相同功能的代码,在重构前后的结构示意图。
ProfileConf直接使用了第三方SNMP协议包,而ProfileConfNew则使用了封装后的SNMP协议软件包。进行协议封装的目的一是为了隔离第三方软件包,另一个目的是为了简化客户端使用SNMP协议栈的操作。改造完成后,我们使用Together自带的软件测量工具进行了数据测量。选择Together菜单中tools——>metrics,里面提供了大量的测量指标。
我们选择了几个比较关注的指标,对新旧代码进行了测量,下面是测量结果。
下表对测量指标做简单说明。
通过数据可以看出,改进以后,编写的代码有所减少,大约节省三分之一的代码;耦合度有所降低,但并不是特别明显,因为我们把对第三方协议包的依赖转为对自己编织的协议包的依赖了;代码复杂度大大降低,这是因为我们自己编写的协议包更符合实际使用情况,因而使代码编写难度大大降低,非常容易学习,修改和维护。数据说明了一切。
总结
软件度量最终的目标是要提供统一衡量软件质量的标准,并促使软件质量的不断提高,这项任务被人称为是“寻找圣杯的任务”。但是,无数的科学事实都说明,如果因为目标太难达到就不作任何工作,就不可能有任何进步。在达到最终目标之前的过程中,会有很多有益的
小发现,这些发现又在不断促进新的发现,最后使不可能变成可能。
软件度量科学的发展同样在追求最终目标的过程中为我们带来了众多的有益发现,让我们用更加科学和严谨的态度来看待软件质量问题;让我们对代码的认识从定性描述阶段,进入到定量描述阶段;让我们感受到科学和美学的统一所展现出的巨大魅力。。
4文档收集于互联网,如有不妥请联系删除.
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
三、CheckStyle的最佳实践
3.1. Sun’s Code Conventions的修改
在CheckStyle的最新发布版本中,有一个对于Sun的Java编码规范的配置文件信息。但是,其中有很多条目并不一定符合项目开发的需要。就算是对于很多优秀的开源项目,按照这个规范来进行检查,也会出现成千上万的错误。
下面提出的一些修改意见,是从实际项目执行过程中总结出来的,可以作为大家的参考。我们以CheckStyle3.0配置文件的顺序来介绍:
1. 去除对于每个包都有一个package.html文件的限制;
<!--<module name=\>--> 2. 修改对于JavaDoc Comments的限定:对于很多使用Code Generator的项目来说,需要将手写代码与生成代码、单元测试代码的检查分开进行; 3. 修改对于体积大小的限制:目前,很多显示器都是17寸,而且打印方面的限制也比以前有所改善,同时,由于代码中Factory等模式的运用,以及有意义的方法名称等约定,默认每行代码的长度(80)是远远不能满足要求;对于方法长度等等,也应该根据项目情况自行决定: <module name=\> <module name=\> <property name=\> </module> <module name=\> <property name=\> </module> <module name=\> 4. 修改对于Throws的的限制:允许Throws Unchecked Exception以及Throws Subclass Of Another Declared Exception。 <module name=\> <property name=\> <property name=\> </module> 5文档收集于互联网,如有不妥请联系删除.