首页 > 代码库 > 软件测试方法之系统测试
软件测试方法之系统测试
系统测试
一. 系统测试基本概念
定义
系统测试(System Testing)是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机进行一系列的组装测试和确认测试。
目的
系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方,以验证软件系统的功能和性能等满足其规约所指定的要求。系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下来运行。
方法
软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。
二、系统测试的类型
(1)功能测试
功能测试的概念
功能测试:是系统测试中最基本的测试,它不管软件内部的实现逻辑,主要跟句产品的需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品的需求规格。
功能测试发现的错误类型
功能测试主要是为了发现以下几类错误:
是否有不正确或遗漏了的功能?
功能实现是否满足产品用户需求和系统设计的隐藏需求?
能否正确的接受输入? 能否正确的输出结果?
功能测试要求测试设计者对产品的规格说明、需求文档、产品业务功能都非常熟悉,同时对测试用例的设计方法也有一定掌握,才能设计出好的测试方案和测试用例,高效地进行功能测试。
对需求规格说明书分析的步骤
在进行功能测试的时候,首先需要对需求规格说明进行分析,因为这是功能测试的基本输入。对需求规格的分析可以分为几个步骤:
1、对每个明确的功能需求进行标号:(对于在需求规格文档中已经有标号的可以直接引用)。
2、对每个可能隐含的功能进行标号;
3、对于可能出现的异常功能进行分了分析,并标号;
4、对于前面三个步骤获得的功能需求进行分级——关键功能和非关键功能;其中关键功能是指那些对用户来说必不可少的功能,这类功能的丧失将导致用户拒绝产品。而非关键功能主要是那些对产品可用性有贡献的功能,有时这类功能的缺失用户可能不满意,但不会导致拒绝产品。
5、对每个功能进行测试分析,分析其是否可测试,如何测试,可能的输入,可能的输出等。
6、脚本化和自动化。
功能测试要点
功能测试需要注意一下几点:
1、多考虑用户在什么情况下如何使用该功能,比如网络断掉的是否访问网站,用键盘进行操作等等。
2、多考虑用户对多个功能的组合运用。
3、对服务器软件多考虑多用户同时访问、操作的情况,需要检查用户的同时使用是否会导致功能的失效。
(2)性能测试
基本概念
性能测试(Performance Testing)就是用来测试软件在集成系统中的运行性能的。性能测试可以发生在测试过程中的所有步骤中,即使在单元层,一个单独模块的性能也可以使用白盒测试来进行评估,然而,只有当这个系统的所有成分都集成到一起之后,才能检查一个系统的真正性能。
性能测试的目标是度量系统相对于预定义目标的差距。需要的性能级别针对于实际的性能进行比较,并把其中的差距文档化下来。
一些感兴趣的性能信息
CUP使用情况
IO使用情况
每个指令的IO数量
信道使用情况
主要存储内存使用情况
第二存储内存使用情况
每个模块执行时间百分比
一个模块等待IO完工的百分比时间
模块使用在主存储上的时间百分比
指令随时间的跟踪路径
控制从一个模块到另一个模块的次数
遇到每一组指令等待的次数
每一组指令页换入和换出的次数
系统反应时间
系统吞吐量,即,每个时间单元的处理数量
所有主要指令的单位执行时间。
任何性能测试研究方面建议的步骤:
1、文档化性能测试目标,例如,确切的性能度量标准必须被验证;
2、定义测试驱动或者用于驱动系统的输入源;
3、定义要使用的性能方法或者工具;
4、定义性能研究如何被进行,例如,什么是基线,什么是变化,当可重复的时候如何可以被检验,如何可以知道何时研究被完成了?
5、定义报告过程,例如,技术和工具。
性能测试时一个较大的范畴,包括测试在各种业务场景下的性能测试表现,包括响应时间、资源使用情况、系统极限容量等;负载测试、压力测试和容量测试只是从不同角度来测试的一种性能测试而已。
软件测试方法之系统测试