首页 > 代码库 > 软件测试方法之系统测试

软件测试方法之系统测试

系统测试

一. 系统测试基本概念

定义

         系统测试(System Testing)是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机进行一系列的组装测试确认测试

目的

        系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方,以验证软件系统的功能和性能等满足其规约所指定的要求。系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下来运行。

方法

        软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。

 

二、系统测试的类型

(1)功能测试

       功能测试的概念

        功能测试:是系统测试中最基本的测试,它不管软件内部的实现逻辑,主要跟句产品的需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品的需求规格。

        功能测试发现的错误类型

        功能测试主要是为了发现以下几类错误:

        是否有不正确或遗漏了的功能?

        功能实现是否满足产品用户需求和系统设计的隐藏需求?

        能否正确的接受输入? 能否正确的输出结果?

 

        功能测试要求测试设计者对产品的规格说明、需求文档、产品业务功能都非常熟悉,同时对测试用例的设计方法也有一定掌握,才能设计出好的测试方案和测试用例,高效地进行功能测试。

        对需求规格说明书分析的步骤

        在进行功能测试的时候,首先需要对需求规格说明进行分析,因为这是功能测试的基本输入。对需求规格的分析可以分为几个步骤:

         1、对每个明确的功能需求进行标号:(对于在需求规格文档中已经有标号的可以直接引用)。

         2、对每个可能隐含的功能进行标号;

         3、对于可能出现的异常功能进行分了分析,并标号;

         4、对于前面三个步骤获得的功能需求进行分级——关键功能非关键功能;其中关键功能是指那些对用户来说必不可少的功能,这类功能的丧失将导致用户拒绝产品。而非关键功能主要是那些对产品可用性有贡献的功能,有时这类功能的缺失用户可能不满意,但不会导致拒绝产品。

         5、对每个功能进行测试分析,分析其是否可测试,如何测试,可能的输入,可能的输出等。

         6、脚本化和自动化。

        功能测试要点

        功能测试需要注意一下几点:

        1、多考虑用户在什么情况下如何使用该功能,比如网络断掉的是否访问网站,用键盘进行操作等等。

        2、多考虑用户对多个功能的组合运用。

        3、对服务器软件多考虑多用户同时访问、操作的情况,需要检查用户的同时使用是否会导致功能的失效。

 

(2)性能测试

         基本概念

性能测试(Performance Testing)就是用来测试软件在集成系统中的运行性能的。性能测试可以发生在测试过程中的所有步骤中,即使在单元层,一个单独模块的性能也可以使用白盒测试来进行评估,然而,只有当这个系统的所有成分都集成到一起之后,才能检查一个系统的真正性能。

性能测试的目标是度量系统相对于预定义目标的差距。需要的性能级别针对于实际的性能进行比较,并把其中的差距文档化下来。

         一些感兴趣的性能信息

        CUP使用情况

         IO使用情况

        每个指令的IO数量

        信道使用情况

        主要存储内存使用情况

        第二存储内存使用情况

        每个模块执行时间百分比

        一个模块等待IO完工的百分比时间

        模块使用在主存储上的时间百分比

        指令随时间的跟踪路径

        控制从一个模块到另一个模块的次数

        遇到每一组指令等待的次数

        每一组指令页换入和换出的次数

        系统反应时间

        系统吞吐量,即,每个时间单元的处理数量

        所有主要指令的单位执行时间。

       任何性能测试研究方面建议的步骤:

        1、文档化性能测试目标,例如,确切的性能度量标准必须被验证;

        2、定义测试驱动或者用于驱动系统的输入源;

        3、定义要使用的性能方法或者工具;

        4、定义性能研究如何被进行,例如,什么是基线,什么是变化,当可重复的时候如何可以被检验,如何可以知道何时研究被完成了?

        5、定义报告过程,例如,技术和工具。

        性能测试时一个较大的范畴,包括测试在各种业务场景下的性能测试表现,包括响应时间、资源使用情况、系统极限容量等;负载测试、压力测试和容量测试只是从不同角度来测试的一种性能测试而已。

 

软件测试方法之系统测试