系统测试是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。这种测试可以发现系统分析和设计中的错误。如安全测试是测试安全措施是否完善,能不能保证系统不受非法侵入。
系统测试,英文是 System Testing。是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。这种测试可以发现系统分析和设计中的错误。如安全测试是测试安全措施是否完善,能不能保证系统不受非法侵入。再例如,压力测试是测试系统在正常数据量以及超负荷量(如多个用户同时存取) 等情况下是否还能正常地工作。
内容
系统测试是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。
流程如图 1 所示。系统测试的目的是验证最终软件系统是否满足用户规定的需求。
主要内容包括:
功能测试。即测试软件系统的功能是否正确,其依据是需求文档,如《产品需求规格说明书》。由于正确性是软件最重要的质量因素,所以功能测试必不可少。
健壮性测试。即测试软件系统在异常情况下能否正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力
分类
比较常见的、典型的系统测试包括恢复测试、安全测试、压力测试。下面对这几种测试进行一一介绍:
1)恢复测试
恢复测试作为一种系统测试,主要关注导致软件运行失败的各种条件,并验证其恢复过程能否正确执行。在特定情况下,系统需具备容错能力。另外,系统失效必须在规定时间段内被更正,否则将会导致严重的经济损失。
2)安全测试
安全测试用来验证系统内部的保护机制,以防止非法侵入。在安全测试中,测试人员扮演试图侵入系统的角色,采用各种办法试图突破防线。因此系统安全设计的准则是要想方设法使侵入系统所需的代价更加昂贵。
3)压力测试
压力测试是指在正常资源下使用异常的访问量、频率或数据量来执行系统。在压力测试中可执行以下测试:
①如果平均中断数量是每秒一到两次,那么设计特殊的测试用例产生每秒十次中断。
②输入数据量增加一个量级,确定输入功能将如何响应。
③在虚拟操作系统下,产生需要最大内存量或其它资源的测试用例,或产生需要过量磁盘存储的数据。
步骤
【Step1】 制定系统测试计划
系统测试小组各成员共同协商测试计划。测试组长按照指定的模板起草《系统测试计划》。该计划主要包括:
·测试范围(内容)
·测试方法
·测试环境与辅助工具
·测试完成准则
·人员与任务表
项目经理审批《系统测试计划》。该计划被批准后,转向【Step2】。
【Step2】 设计系统测试用例
·系统测试小组各成员依据《系统测试计划》、需求规格说明书、设计原型以及指定测试文档模板,设计(撰写)《测试需求分析》《系统测试用例》。
·测试组长邀请开发人员和同行专家,对《系统测试用例》进行技术评审。该测试用例通过技术评审后,转向【Step3】。
【Step3】 执行系统测试
·系统测试小组各成员依据《系统测试计划》和《系统测试用例》执行系统测试。
·将测试结果记录在《系统测试报告》中,用“缺陷管理工具”来管理所发现的缺陷,并及时通报给开发人员。
【Step4】 缺陷管理与改错
·从【Step1】至【Step3】,任何人发现软件系统中的缺陷时都必须使用指定的“缺陷管理工具”。该工具将记录所有缺陷的状态信息,并可以自动产生《缺陷管理报告》。
·开发人员及时消除已经发现的缺陷。
·开发人员消除缺陷之后应当马上进行回归测试,以确保不会引入新的缺陷。
目标和原则
目标:
1、 确保系统测试的活动是按计划进行的;
2、 验证软件产品是否与系统需求用例不相符合或与之矛盾;
3、 建立完善的系统测试缺陷记录跟踪库;
4、 确保软件系统测试活动及其结果及时通知相关小组和个人。
原则:
1、测试机构要独立;
2、要精心设计测试计划,包括负载测试、压力测试、用户界面测试、可用性测试、逆向测试、安装测试、验收测试;
3、要进行回归测试;
4、测试要遵从经济性原则。