验收测试中的各项

Posted on 2006-06-14 14:59  M.H.Y  阅读(460)  评论(0)    收藏  举报
摘 要任何一项软件工程项目,在软件开发
完成,准备交付用户使用之前及在软件交付用户试
运行一段时间之后,都必须对软件进行严格的测
试,验收测试是软件工程项目最关键的环节,也是
决定软件开发是否成功的关键。本文简要介绍软
件测试的含义和重要性,重点介绍软件工程项目验
收阶段的测试项目和内容,这是笔者多年参与软件
工程项目验收、评审、鉴定的经验总结,仅供参考。
关键词 软件工程 软件测试 软件验收测

引言
任何软件工程项目在软件开发编码过程中,为
了保证软件的质量,提高可靠性,必须分阶段对软
件进行测试,目的是尽可能找出软件存在的错误,
并加以改正,使软件达到原来确定的设计要求,才
能交付用户试用。在用户对软件试运行中,仍可能
发现一些错误,必须及时改正并测试。软件试用一
段时间后,必须组织有关专家,对软件工程项目进
行验收测试,验收测试主要是确认软件的功能、性
能及其他特性是否满足软件需求规格说明书中列
出的需求,是否符合软件开发商与用户签订的合同
的要求。本文从软件测试的基本概念人手,简要介
绍软件测试的含义和重要性,然后结合自身多年参
与软件工程项目的验收、评审及鉴定的实践,着重
介绍软件工程项目验收测试应该做的测试项目和
内容,仅供参考。

、软件测试的含义和重要性
在IEEE提出的软件工程标准术语中,对软件
测试作了如下定义:“软件测试是使用人工或自动
手段来运行或测试某个系统的过程,目的在于检验
· 56·2/2 0 0 5 汕头科技
它是否满足规定的需求或弄清预期结果与实际结
果之间的差别”。
MYERS 在《THE ART OF SOFTWARE
TEsTING》一书中认为:“软件测试是为了发现错
误而执行程序的过程”。
以上两种观点并不矛盾,因为软件在不同阶
段,由于测试的目的不同,必须做不同层次的测试,
比如在软件代码编写阶段,必须进行单元测试、集
成测试、有效性测试、系统测试,多数采用白盒测试
的方法,软件测试的工作量约占软件开发总工作量
的4O 左右,目的是尽可能多的找出软件存在的
错误并加以改正。而在软件验收阶段,主要是对软
件进行确认测试,可以在实际运行环境中进行测
试,也可以在模拟环境下,运用黑盒方法进行测试,
目的是验证软件的功能、性能及其它特性是否满足
需求规格说明书的规定,是否符合合同的条款。
由此看来,软件测试在任何软件工程项目中是
最关键的环节,如果软件开发过程中,对测试环节
把关不严,将不可能开发出高质量及符合应用需求
的软件,存在的问题也必将在应用过程中逐步暴露
出来,轻者需长期对软件进行修改,影响用户的实
际应用,重者软件无法应用,导致整个工程项目失
败。如果交付用户使用前不进行验收测试,用户需
求能满足到什么程度?软件还存在多少隐患?不
得而知。尤其是有一些隐患,若不通过测试,是很
难一下表现出来的,等到有朝一日在实际运行中暴
露出来,可能已经给用户带来了巨大的损失。
二、软件在验收阶段的测试项目
软件验收测试尽可能在现场进行实际运行测
试,如果受条件限制,也可以在模拟环境中进行测
试,无论何种测试方式,都必须事先制定测试计划
规定要做的测试种类,并制定相应的测试步骤和具
体的测试用例。
一般软件工程项目验收测试的项目有:文档审
查、功能测试、性能测试、安装测试、界面测试、配置
测试、加载测试、恢复测试、安全测试等等。凡是需
求规格说明书中有要求的,都要进行测试,确认是
否满足。
三、软件验收测试的主要内容
1.文档审查
软件项目验收应提供的文档有:项目研制总结
报告、项目技术、经济分析报告、软件需求规格说明
书、测试总结报告、用户使用操作手册及维护手册
等,主要审查文档的完整性、正确性和可理解性,编
写是否规范。文档如果不齐全或描述不清甚至错
误,将给用户使用带来不必要的麻烦,甚至阻碍软
件的升级。
2.安装测试
安装测试第一个目的是验证软件在最基本要
求的配置情况下安装后能否正常运行?第二个目
的是检验软件在非正常条件下安装,非正常条件包
括磁盘空间不足、内存不够、缺乏创建目录的特权
等,在这种情况下,安装程序能否给用户足够的提
示。
3.功能测试
功能测试是按照软件需求规格说明书规定的
功能需求,逐项检验软件功能是否正确,有无严重
错误。测试时,一般事先准备好测试用例,检验是
否得到期望的输出。测试用例至少要包含以下情
况:合法数据、边界数据和非法数据。
4.性能测试
性能测试是检查系统是否满足需求规格说明
书中规定的性能要求,一般主要测试软件的运行速
度和对资源的利用率。性能主要表现在以下几个
方面:响应时间、吞吐量、辅助存储区(如缓冲区、工
作区)的大小,处理精度等。
性能测试中很重要的一项是极限测试,因为很
多软件系统会在极限状态下崩溃。例如连续不停
地向服务器发出请求,测试服务器是否会陷人死锁
状态;给系统输人特别大的数据后,检测程序的运
信息化应用研究
行状况等。
5.界面测试
界面测试是检查软件界面所关联的对象是否
正确,运行是否正常;界面之间的链接是否合理;界
面是否符合相关标准和用户习惯;界面是否美观、
友好等。
6.加载测试
加载测试是要检查软件在超正常数据量情况
下,软件系统的反应。例如在B/S体系结构中,对
WEB服务器和数据库服务器的加载测试,通常是
利用测试工具软件产生虚拟用户负载,逐步增加虚
拟用户数量,并使每个虚拟用户运行相同脚本或不
同的脚本,考察软件系统的运行状况。
7.配置测试
配置测试是要验证在不同的硬件和软件配置
下软件的运行状况,特别是对最大和最小配置要进
行测试。其中,软件配置参数有网络内存的大小,
不同的操作系统版本和网络软件。系统表格的大
小及可使用的规程等。硬件配置参数有节点的数
量,主机及外设的配置、数量和类型,网络拓朴结构
等。
8.恢复测试
恢复测试是通常采用人工干预的手段,模拟硬
件故障或故意造成软件出错,考察软件系统的反
应,系统能否正常地继续进行工作,并不对系统无
故障部分造成任何损害。
9.安全性测试
安全性测试对于接人互联网的系统尤为重要,
一般着重考察用户权限的限制。用户登陆的有效
性检查,系统认证加密机制的有效性,网络安全保
密性能检测,人侵监控、数据备份等。其中,网络安
全保密性能检测主要是检测网络是否存在安全性
漏洞,例如:以系统输人为突破口,利用输人的容错
性进行正面攻击;申请和占用过多的资源压跨系
统,以破坏安全措施从而进人系统;故意使系统出
错,利用系统恢复过程,窃取用户口令及其他有用
信息;浏览系统中残留的垃圾信息,以获取口令、安
全码、译码关键字等。人侵监控是一旦发现攻击,
能发出警报,并采取相应措施(如阻断、跟踪和反
击),记录人侵过程,为系统恢复和追查攻击的来源
提供依据。
如果软件工程项目是属涉及国家秘密系统,必
须从物理安全,网络运行安全,信息保密安全,安全
保密管理等诸多方面进行严格的测试和审查,而且
必须由国家安全保密部门指定的相关机构进行测
试和审查,测试和审查合格后,方准投人运行。
四、结束语
软件工程项目在进行诸多项目的内容测试之
后,必须客观、公正、如实地编写软件验收测试报
告,报告中必须说明测试的环境条件、测试的内容
及软件符合需求规格说明书中规定的需求情况,对
软件中突出的功能、性能及创新性或采用的先进技
术,应给予充分肯定,软件中哪些未能满足需求规
格说明书的需求也应如实反映,使测试报告真正成
为项目评审、鉴定的重要依据。
综上所述,软件工程项目的验收测试,是软件
工程中最重要、最关键的环节,无论是软件开发商
还是用户,都必须给予足够的重视。

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3