|
系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方。系统测试是根据系统分析说明书来设计测试用例的,常见的系统测试主要有以下内容:
|
|
|
(1)恢复测试(Recovery Testing)。
|
|
|
恢复测试将检测系统的容错能力。检测方法是采用各种方法让系统出现故障,检验系统是否能按照要求从故障中恢复过来,并在预定的时间内开始处理事务,而且不对系统造成任何损害。如果系统的恢复是自动的(由系统自动完成),则需要验证重新初始化、检查点、数据恢复等是否正确。如果恢复需要人工干预,就要对恢复的平均时间进行评估并判断它是否在允许的范围内。
|
|
|
(2)安全性测试(Security Testing)。
|
|
|
系统的安全性测试用于检测系统的安全机制、保密措施是否完善且没有漏洞。主要是为了验证系统的防范能力。测试的方法是测试人员模拟非法入侵者,采用各种方法冲破防线。例如,以系统的输入作为突破口,利用输入的容错性进行正面攻击;故意使系统出错,利用系统恢复的过程,窃取密码或其他有用的信息;想方设法截取或破译密码;利用浏览非保密数据,获取所需信息,等等。从理论上说,只要时间和资源允许,没有进入不了的系统。所以,系统安全性设计准则是使非法入侵者所花费的代价比进入系统后所得到的好处要大,此时非法入侵已无利可图。
|
|
|
|
强度测试是对系统在异常情况下的承受能力的测试,是检查系统在极限状态下运行的情况下,性能下降的幅度是否在被允许的范围内。因此,强度测试要求系统在非正常数量、频率或容量的情况下运行,例如,运行使系统处理超过设计能力的最大允许值的测试用例;设计测试用例使系统传输超过设计最大能力的数据,包括内存的写入和读出,外部设备等;对磁盘保留的数据,设计产生过度搜索的测试用例;等等。强度测试主要是为了发现,在有效的输入数据中可能引起的不稳定或不正确的数据组合。
|
|
|
(4)性能测试(Performance Test)。
|
|
|
性能测试用于检查系统是否满足系统分析说明书对性能的要求。特别是实时系统或嵌入式系统,即使软件的功能满足需求,但性能达不到要求也是不行的。性能测试覆盖了软件测试的各阶段,而不是等到系统的各部分所有都组装之后,才确定系统的真正性能。通常与强度测试结合起来进行,并同时对软件、硬件进行测试。软件方面主要从响应时间、处理速度、吞吐量、处理精度等方面来检测。
|
|
|
(5)可靠性测试(Reliability Testing)。
|
|
|
对于系统分析说明书中提出了可靠性要求时,要对系统的可靠性进行测试。通常使用以下几个指标来衡量系统的可靠性:
|
|
|
.平均失效间隔时间(Mean Time Between Failures MTBF)是否超过了规定的时限。
|
|
|
.因故障而停机时间(Mean Time To Repairs MTTR)在一年中应不超过多少时间。
|
|
|
(6)安装测试(Installation Testing)。
|
|
|
在安装软件系统时,会有多种选择。安装测试就是为了检测在安装过程中是否有误、是否易操作等。主要检测:系统的每一个部分是否齐全;硬件的配置是否合理;安装中需要产生的文件和数据库是否已产生,其内容是否正确等。
|
|
|
最后再强调一下,信息系统的开发过程通常为系统分析、设计、编码实现等阶段。而每个阶段都有可能出现错误,测试过程正好与开发过程相反,其开发和测试的关系如下图所示,单元测试主要是发现编码阶段的错误。组装测试主要用于发现设计阶段产生的错误,如果在确认测试中发现系统分析有错误,这就需要重新修改系统分析、设计和编码。这说明越早犯的错误要到最后才能被发现,因此要重视开发的前期工作。
|
|
|
|
|