1 概述
在一个软件项目开发中,系统测试是保证整体项目质量的重要一环,本文将就网站的测试技术及相应的自动测试工具做一个简要的介绍。主要就如下几个方面进行探讨:
- 功能测试
- 性能测试
- 安全性测试
- 稳定性测试
- 浏览器兼容性测试
- 可用性/易用性测试
- 链接测试
- 代码合法性测试
2 测试内容
2.1 功能测试
在实际工作中,功能在每一个系统中的具有其不确定性,而我们不可能采用穷举的方法进行测试,因而导致了功能测试较为困难,我们依据80/20原则(即80%的错误存在于系统的20%的部分)对于测试用例的设计采用如下两种方法
2.1.1 白盒测试
白盒测试即使用程序设计的控制结构导出测试用例。基于目前的现状我们采用基本路径测试方法进行白盒测试,此种方法简单高效。基本路径测试方法的简单说明如下:
¨ 首先通过系统设计的流程图导出数据流图
¨ 根据数据流图计算其环形复杂性
V(G)=E-N+2
或 V(G)=P+1
V(G):环形负责性
E :流图中边的数量
N :流图中节点的数量
P :流图中判定节点的数量
¨ 我们设定V(G)条路径
¨ 我们设计V(G)条路径的模拟数据
¨ 根据数据进行相应的测试
2.1.2 黑盒测试
黑盒测试即派生出执行程序所有功能需求的输入条件,从而导出测试用例,进行测试的方法,黑盒测试用于辅助白盒测试。
我们采用等价划分的方法进行测试,即为将程序的输入域划分为数据类,以便导出测试用例。一般情况下输入条件为:一个特定的数值、一个数值域、一组相关值或者一个布尔条件。
2.1.3 网站功能测试
对于网站的测试而言,每一个独立的功能模块需要单独的测试用例的设计导出,主要依据为《需求分析》,对于应用程序模块需要设计者提供基本路径测试法的测试用例
具有测试用例后可以采用OpenSTA(Open System Testing Architecture)进行自动化测试
2.2 性能测试
网站的性能测试对于网站的运行而言异常重要,但是目前对于网站的性能测试做的不够,我们在进行系统设计时也没有一个很好的基准可以参考,因而建立网站的性能测试的一整套的测试方案将是至关重要的。
网站的性能测试主要从两个方面进行:负荷测试(Load)和压力测试(Stress),负荷测试指的是进行一些边界数据的测试,压力测试更像是恶意测试,压力测试倾向应该是致使整个系统崩溃。
性能测试可以采用相应的工具进行自动化测试,我们目前采用如下工具
ab -----Apache 的测试工具
OpenSTA?开发系统测试架构
2.3 安全性测试
目前网络安全问题日益重要,特别对于有交互信息的网站及进行电子商务活动的网站尤其重要。目前我们的测试没有涵盖网站的安全性的测试,我们拟定采用工具来测定,工具如下
SAINT------- Security Administrator/'s Integrated Network Tool
此工具能够测出网站系统的相应的安全问题,并且能够给出安全漏洞的解决方案,不过是一些较为常见的漏洞解决方案。
2.4 稳定性测试
网站的稳定性测试是指网站的运行中整个系统是否运行正常,目前没有更好的测试方案,主要采用将测试服务器长时间运转进行测试。
2.5 浏览器兼容性测试
通过白盒测试或者黑盒测试导出的测试用例,采用相应的工具进行测试,可以采用OpenSTA进行测试,此测试工具可以采用不同的浏览器进行测试。
2.6 可用性/易用性测试
可用性/易用性方面目前我们只能采用手工测试的方法进行评判,而且缺乏一个很好的评判基准进行,此一方面需要大家共同讨论。
2.7 链接测试
超级链接对于网站用户而言意味着能不能流畅的使用整个网站提供的服务,因而链接将作为一个独立的项目进行测试。目前我们已经有了一个测试工具
Xenu------主要测试链接的正确性的工具
可惜的是对于动态生成的页面的测试会出现一些错误。
2.8 代码合法性测试
代码合法性测试主要包括2个部分:程序代码合法性检查与显示代码合法性检查
¨ 程序代码合法性检查
程序代码合法性检查主要标准为《intergrp小组编程规范》,目前采用由SCM管理员进行规范的检查,未来期望能够有相应的工具进行测试。
¨ 显示代码合法性检查
显示代码的合法性检查,主要分为Html、JavaScript、Css代码检查,目前采用
HTML代码检查------采用CSE HTML Validator进行测试
JavaScript、Css也可以在网上下载相应的测试工具。
3 测试工具 - OpenSTA
主要做性能测试的负荷及压力测试,使用比较方便,可以编写测试脚本,也可以先行自动生成测试脚本,而后对于应用测试脚本进行测试。 - SAINT
网站安全性测试,能够对于指定网站进行安全性测试,并可以提供安全问题的解决方案。 - CSE HTML Validator
一个有用的对于HTML代码进行合法性检查的工具 - Ab(Apache Bench)
Apache自带的对于性能测试方面的工具,功能不是很多,但是非常实用。 - Crash-me
Mysql自带的测试数据库性能的工具,能够测试多种数据库的性能。
上述工具除Ab及Crash-me外均可在以下目录中找得到
//smbserver/apps/linuxapp/intergrp
ab及Crash-me请至相应的网站上察看相应的资料}
4 后记
此文只是对于网站的测试方面做了一个简单的介绍,提供的工具比较少,但是可以保证能够使用(当然都是可以从网上免费得到的),另外还有很多测试工具是需要Money的,大家有兴趣可以试用,对于上述提到的测试工具我也只是做了一个初步的调研,详细的功能说明请察看相关的说明文档。
对于网站的测试中比较重要的还有一个部分就是对于数据库的测试,由于对于数据库性能测试较好的工具需要一些Money因而我们采用Mysql的Crash-me,但是同时也存在一个问题就是对于不同的数据库的测试采用第三方的工具较好。因而大家可以对于其他数据库性能测试的工具进行研究。
5 参考资料
(1)《软件工程-实践者的研究方法》-----Roger S.Pressman
(2) http://www.softwareqatest.com
(3) http://www.soft.com/
(4) http://www.qaforums.com
(5) http://www.opensta.org