一、系统测试的定义
系统测试,英文是System Testing。是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。
二、系统测试的类型及内容
能测试、GUI测试、性能测试、压力测试、容量测试、健壮性测试、安全性测试、可靠性测试、恢复测试与备份测试、协议一致性测试、兼容性测试、安装性测试、可用性测试、配置性测试、文档性测试、验收测试、回归测试
(1)功能测试
1.功能测试是系统测试中最基本的测试,他不管软件内部的实现逻辑,主要根据产品的需求规格说明书和测试需求列表,验证产品的功能实现是否 符合产品的需求规格。
2.发现错误有: 是否有不正确或遗漏的功能; 功能实现是否满足用户需求和系统设计的隐藏需求 ;能否正确地接受输入、能否正确地输出结果。
3.分析方法:
a.对每个明确的功能需求进行标号
b.对每个可能隐藏的功能需求进行标号
c.对于可能出现的功能异常进行分类分析,并标号
d.对以上3个步骤获得的功能需求进行分级(关键、非关键)
e.对每个功能进行分析(是否可测、如何测试、可能的输入、可能的输出)
f.脚本化、自动化
4.用例设计方法
a.等价类划分
b.边界值分析
c.因果图
e.决策表
f.错误猜测法
(2) GUI测试
1.GUI测试是功能测试的一种表现形式。不仅要考虑GUI本身的测试,也要考虑GUI所表现的系统功能的测试
2.GUI应具有的要素:符合标准和规范 、直观性 、一致性 、灵活性 、舒适性 、正确性 、实用性
(3)性能测试概念
1.性能(Performance)测试主要检验软件是否达到需求规格说明书中规定的各类性能指标,并满足一些性能相关的约束和限制条件
2.性能测试内容
评估系统的能力。测试中得到的负荷和响应时间等数据可以被用于验证所计划的模型的能力,并帮助做出决策。 识别系统中的弱点。受控的负荷 可以被增加到一个极端的水平并突破它,从而修复系统的瓶颈或薄弱的地方。 系统调优。重复运行测试,验证调整系统的活动得到了预期的结 果,从而改进性能,检测软件中的问题。
(4)压力测试
压力测试(负载测试、并发测试)( Stress Testing)是指模拟巨大的工作负荷,以查看系统在峰值使用情况下是否可以正常运行。 压力测试是 通过逐步增加系统负载来测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统性能提供的最大服务级别的 测试。
(5)容量测试
所谓的容量测试( Capacity Testing)是指,采用特定的手段测试系统能够承载处理任务的极限值所从事的测试工作。 这里的特定手段是指,测 试人员根据实际运行中可能出现极限,制造相对应的任务组合,来激发系统出现极限的情况。
(6)健壮性测试
健壮性测试(Robustness Testing)主要用于测试系统抵御错误的能力。这里的错误通常指的是由于设计缺陷而带来的系统错误。测试的重点为 当出现故障时,是否能够自动恢复或忽略故障继续运行
(7)安全性测试
安全性测试是检查系统对非法侵入的防范能力,其目的是为了发现软件系统中是否存在安全漏洞。软件安全性是指在非正常条件下不发生安全事故 的能力。 安全性一般分为两个层次,即应用程序级的安全性和系统级别的安全性
(8)可靠性测试
在有使用代表性的环境中,为进行软件可靠性估计对该软件进行的功能测试。 软件可靠性 在规定条件下,在规定时间内,软件不引起系统失效的 概率。该概率是系统输入和系统使用的函数,也是软件中存在故障的函数,系统输入将确定是否会遇到存在的故障。
(9)恢复测试与备份测试
恢复性测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。 备份测试是恢复性测试的一个补充,也 是恢复性测试的一个部分。备份测试的目的是验证系统在软件或者硬件失败时备份数据的能力。、
(10)协议一致性测试
主要测试协议实现是否严格遵循相应的协议描述;互操作性测试关注的是对于同一个协议标准,不同协议实现之间的互连通问题。
(11)兼容性测试
兼容性测试是指检查软件之间是否能够正确地进行交互和共享信息。对新软件进行软件兼容性测试,需要解决:
1.软件设计要求与何种其它平台和应用软件保持兼容?
2.如果要测试的软件是一个平台,那么设计要求什么应用程序在其上运行?
3.应该遵守何种定义软件之间交互当地标准或者规范?
4.软件使用何种数据与其它平台和软件交互和共享信息?
(12)安装性测试
软件如要实现其功能(除嵌入式软件外),第一步是安装操作。理想情况下,一个软件的安装程序应当可以较好的与已有系统相兼容,并有相应的 提示界面供用户参考,安装完毕并实现其功能。若事先没有正确的安装测试,导致软件安装错误或失败,则软件根本就谈不上正确的执行,因此安 装测试就显得相当重要。 安装性测试的目的就是要验证系统成功安装的能力,并保证程序安装后能正常运行。因此清晰且简单的安装过程是系统 文档中最重要的部分。
(13)可用性测试
可用性测试 (Usability Testing) 是对于用户友好性的测试,是指在设计过程中被用来改善易用性的一系列方法。