1,系统测试的概念
系统测试是最后的测试,用于评价系统是否符合系统需求规格说明的各项需求,是否达到要验收的标准
系统测试的主要目的不是找出缺陷,而是确认其功能,性能和其他要求的质量属性
系统测试就是将已经集成的软件系统作为整个计算机系统中的某个元素,与计算机硬件,外围设备等其他系统元素结合在一起,在实际运行环境下对计算机系统进行一系列集成和确认的测试,因此测试设计人员应该主要根据需求规格说明来设计测试用例
2.系统测试的方法
(1)功能测试
功能测试属于黑盒测试,是系统测试中要进行的最基本的测试,其要求测试人员对被测系统的需求规格说明,业务功能都要非常熟悉
因为需求说明书是功能测试的基本输入,因此要对需求说明书进行详细的分析
(2)协议一致性测试
该测试在分布式系统中比较常见
因为使用分布式系统的软件要运行在多个不同的计算机上
为了实现不同的计算机之间互相通信,这些计算机需要遵守一些协议
但是因为协议是自然语言规定的,每个人对其理解都有可能不一样
所以要对协议进行测试,以确保所开发的系统能够正常工作
(3)性能测试
该测试就是要检查软件在集成系统中的运行性能
混合了黑盒和白盒测试的方法
主要的目标是度量系统的性能与预先定义的目标有多大的差距
通常与压力测试一起进行
(4)压力测试
压力测试又称为强度测试,是在各种资源超负荷情况下观察系统运行情况的测试
在该测试中,测试人员关注的主要是在有非正常资源占用的情况下系统的处理时间
(5)容量测试
该测试是在系统正常运行的范围内进行测试并确定系统能够处理的数据容量
容量测试是面向数据的,其目的是检查系统数据结构的设计是否能够最大限度的处理系统目标所期望的数据容量
(6)安全性测试
一个完善的系统应该具备低于非法或非正常途径的入侵者破坏系统正常工作活动的能力
安全性测试就是要验证系统内的保护机制能否抵御入侵者的攻击
在该测试中,测试人员需要模拟不同的入侵方式来攻击系统的安全机制,想尽一切办法来获取系统内的保密信息
只要有足够的事件和资源,好的安全性测试一定能够入侵一个系统
(7)失效恢复测试
很多基于计算机的系统在失效发生时必须能够在一定的时间内从失效中恢复过来,然后继续运行
也就是说,在运行过程中出错不能使得整个系统的功能都停止,而且一个系统的错误必须在一个特定的时间段内改正
失效恢复测试就是为了验证系统从软件或者硬件失效中恢复的能力
通过采取人工干预的方式使得软件出错进行测试
(8)备份测试
该测试是失效恢复测试的一个补充,并且应当是失效恢复测试的一个部分
验证系统在失效时间中备份其数据的能力
(9)GUI测试
GUI(Graphic User Interface)图形化用户界面
相当于软件产品的外观
GUI的好坏直接影响用户使用软件的效率和心情,为了让软件更好的服务用户,需要进行GUI测试
该测试分为两个部分:
一方面是界面的实现和界面设计是否相符
另一方面是要确认界面能够正确的处理事件
(10)健壮性测试
该测试又称为容错测试
用于测试系统出现故障时,是否能够自动回复或者忽略故障继续运行
这就要求设计人员在设计过程中要妥善的进行异常处理
一个好的软件必须在经过健壮性测试之后才能最终交付给用户
(11)兼容性测试
因为有时系统的出错是由于与其他系统不兼容而引起的
所以兼容性测试的目的就是眼见被测的软件系统对其他系统的兼容性
(12)可使用性测试
该测试是为了检验用户在使用和理解系统的时候是否方便
是面向用户的测试
和压力测试一样,可使用性测试最好在开发阶段就进行
如果所开发的系统不能被用户很好的使用,那么就要对系统进行重新设计
(13)安装测试
该测试是为了检验系统成功安装的能力
并且能够在安装过程中提供一些简单的,容易理解的信息来帮助用户完成安装过程
(14)文档测试
该测试主要是针对系统提交给用户的文档进行验证的
目的是验证用户文档是正确的并且保证操作手册的过程能够正确工作
(15)在线帮助测试
在线帮助给用户提供一种实时的资讯服务,一个完善的系统应该具备在线帮助的功能
(16)数据转换测试
在实际使用环境中,系统经常会遇到升级的情况
同时又要保证以前的数据不会丢失
这就需要进行数据转换测试
3.系统测试的实施
在完成集成测试之后
系统测试开始于集成软件的确认测试
确认测试包括功能测试和软件配置复查
在系统测试的过程中可能出现α测试和β测试
α测试是有一个用户在开发环境下进行的测试,由开发者陪同并记录下测试过程中出现的错误
β测试则是由多个软件用户在实际的使用环境中进行使用,然后将出现的错误返回给开发者,与α测试的主要不同是没有开发人员的陪同
在进行完确认测试之后就要进行验收测试,该测试是以用户为主的测试
进行完所有测试之后要对系统测试出现的问题进行总结和分析
4.做好系统测试的原则
(1)所有的测试都应追溯到用户需求
(2)在测试工作开始之前今早开始测试计划
(3)将Pareto原则应用与软件测试,Pareto原则表明测试发现的错误中80%的错误来源于程序模块中的20%,问题在与如何分离出这些可疑的模块进行彻底测试
(4)系统缺陷应记入文档中