当前位置:文档之家› 非功能性测试的指南

非功能性测试的指南

非功能性测试指南文档名称:非功能性测试指南状态: 初始版本
版本号: 1.0
版本提交日期: 2012/08/13
- 文档信息-
- 变更记录–
- 审批人–
- 评审记录–
目录
1目的和范围 (4)
2术语和缩写 (4)
3参考资料 (4)
4角色对应关系 (5)
5非功能性测试类型及其测试方法 (5)
5.1安全性测试 (5)
5.2安装测试 (8)
5.3配置和兼容性测试 (8)
5.4易用性测试 (9)
5.5数据和数据库完整性测试 (11)
5.6接口测试 (11)
5.7文档测试 (12)
5.8失效恢复测试 (13)
1 目的和范围
本文档阐述了常用的非功能性测试类型及其测试方法,供相关测试人员安排测试计划、设计测试和执行测试时参考。

功能测试、回归测试和性能测试不在本文档讨论范围,另有专门文档讨论。

本文档适用于上海银行信息技术部所有测试服务的非功能性测试工作。

2 术语和缩写
3 参考资料
4 角色对应关系
5 非功能性测试类型及其测试方法
5.1 安全性测试
软件安全性轻则造成操作的不方便,重则造成数据的破坏或丢失甚至系统的崩溃和人身的安全,因此,软件安全性是一个不容忽视的重要问题,我们可以简单地把软件的安全性作为一个或多个特定的功能来考虑,从而在软件生命周期的早期就加以考虑。

为了帮助设计一个安全的信息系统,在产品设计的最开始就必须注意安全的问题,比如需求中应有安全性的相关项目、设计和代码评审应有专门针对安全性的内容等等,然后才是测试。

测试员仅仅能测试验证软件的安全性。

当然,对于没有在软件需求书上标明的可能影响系统运行安全的隐性需求测试人员也要努力的发现,这也是一个有经验的安全性测试人员的可贵之处。

当然,理论上没有任何一个信息系统是安全的,因为只要进行攻击,任何系统都能被攻破,只不过付出的代价的大小。

而我们一般说某个信息系统是安全的就是基于如果要攻破该系统所必须付出的代价要高于或远远高于攻破系统后获得的利益。

软件安全性测试详细策略参考:
软件安全性测试包括应用软件、网络系统、数据库和系统软件安全性测试。

根据系统安全指标不同测试策略也不同。

1.用户认证安全的测试要考虑问题:
●系统中是否有不同的用户使用权限
●系统会不会因用户的权限的改变造成混乱
●系统中会不会出现用户冲突
●用户登陆密码是否可见、可复制
●是否可以通过绝对路径登陆系统(拷贝用户登陆后的链接直接进入系统)
●用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通
过输入口令进入系统
2.应用方面安全的测试要考虑问题:
●缓冲区溢出
●无效的数据类型
●关键信息是否采用加密技术
●是否可以通过绝对路径进入系统
●使用的端口号
●远程进入服务(如有)
●文件完整性检查
●日志评审
●模拟黑客攻击
3.系统网络安全的测试要考虑问题
●物理连接上的安全,包括无线部分(如有)
●防火墙、防病毒软件的安全
●测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
●模拟非授权攻击,看防护系统是否坚固
●采用成熟的网络漏洞检查工具检查系统相关漏洞
●入侵网络监察系统和防护系统
●采用各种木马检查工具检查系统木马情况
●采用各种防外挂工具检查系统各组程序的外挂漏洞
4.数据库安全考虑问题:
●系统数据是否机密
●系统数据的完整性
●系统数据可管理性
●系统数据的独立性
●系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否
可以完整)
5.系统级别软件安全考虑问题:
●系统级别软件(如操作系统、数据库系统和中间件系统等)是否最新的,
尤其如果使用开源软件或免费软件
●系统软件是否有相应的补丁,尤其是安全性方面的补丁包
●从安全性考虑,系统级别软件是否是最可靠的(如使用Tomcat还是
Weblogic)
●从安全性考虑,系统级别软件是否匹配应用设计技术
5.2 安装测试
安装测试有两个目的。

第一个目的是确保软件能够在不同的条件下进行安装,例如,首次安装、升级安装、完整或自定义安装;在正常和异常条件下的安装。

异常条件例如磁盘空间不足、安装用户缺少目录创建权限等。

第二个目的是验证软件在安装后能正确操作。

这通常意味着要运行大量为功能测试开发的测试用例。

建议对于安装测试,其重点应该放在第一个目的上,对于第二个目的可以根据需要和实际情况穿插在后续的测试,如冒烟测试、功能测试中体现。

5.3 配置和兼容性测试
配置和兼容性测试验证被测软件在不同的软硬件配置下的操作和表现。

在大多数生产环境中,特定的硬件规格,如客户端工作站、网络情况、服务器配置甚至型号都会不同。

另外,不同客户端工作站上也许有不同的软件负载,如不同的应用软件、不同的浏览器、浏览器的不同版本的插件、驱动程序等等;甚者不同的操作系统,如Windows XP, Windows Vista等等;服务器软件也会不一致,如数据库软件,如Oracle, Microsoft SQLServer、中间件软件等等。

该类测试对产品显得尤其重要。

对于项目来说也有巨大的指导作用,如项目经理为了最优化配置(从成本和实用的角度等),就需要进行不同软硬件情况下的配置和兼容性测试。

该类测试也往往和性能测试相结合以决定在不同软硬件情况下的最优化配置(如从成本和实用的角度等)。

5.4 易用性测试
易用性是人类工程学的目标。

软件的易用性是一个比较有特点的问题,会随着具体产品或项目的特征和要求而有巨大差异,比如手机软件和一般Windows平台下的软件易用性相差很大,又如一核反应堆的关闭序列和一语音信箱的菜单系统的易用性有着天壤之别。

即使对于同一个软件,不同的用户也会有不同的感受。

当然,我们也不是说对软件的易用性就毫无测试办法和标准,对于同一类软件还是有它的通用性可言的。

因此下面尝试从一些比较通用的方面讨论之。

易用性主要考虑软件使用时人的因素和感受,因此我们先介绍两个概念。

用户与程序相互交互的介质称为用户接口(User Interface - UI),用户接口对不同软件种类也会有巨大的差异,对于PC来说,我们现在有了精致的完善的图形用户接口
(Graphical User Interface - GUI)。

很快我们可以对着我们的PC听和说,那时又会有新的UI。

另外,Accessibility testing也属于易用性测试范畴。

这种测试一般针对对软件有特殊要求的群体,比如部分残疾人。

5.5 数据和数据库完整性测试
在整个系统测试过程中,数据库和数据库过程应作为系统的子系统进行测试。

这些测试不使用用户界面作为数据进入界面进行测试。

对不同的数据库管理系统,可能存在不同的工具和技术,如Oracle和Microsoft SQLServer。

5.6 接口测试
在集成测试过程中,接口测试显得特别重要,首先要确认被测软件是否集成了规定的单元或子系统、外部系统(如有);其次,对相应的接口要进行详细的测试;
最后也应该对集成后的所有功能进行相应的测试以确保集成后整个系统功能的正确性,当然这一步属于功能测试的范畴,本文不予讨论。

5.7 文档测试
文档也是发布的软件产品的重要组成部分,因此也应该对文档进行相应的测试,尤其对安装手册(前面已有所述)、用户使用手册和在线帮助手册要进行重点测试。

正确的文档能减少维护费用和提高软件的可维护性、改善软件易用性、减少责任等。

5.8 失效恢复测试
失效恢复测试保证被测软件能成功地从硬件、软件或网络故障中失效恢复而不会有数据或事务的丢失。

对于必须时刻保持运行的系统,失效备援测试保证当一个失效备援条件发生时,替代或备份系统正确地接管失败的系统而不会有数据或事务的丢失。

恢复测试是一种对立的测试过程,让应用或系统遭受极端或仿真条件来引起一个故障,例如设备的输入、输出错误或无效的数据库指针和键。

调用恢复过程、监控和检查应用或系统来验证已完成正确的应用、系统和数据恢复。

相关主题