单元测试( 四 )


注:集成测试应由专门的测试小组来进行,测试小组由有经验的系统设计人员和程序员组成 。整个测试活动要在评审人员出席的情况下进行 。
系统测试
系统测试是将已经继承好的软件系统,作为计算机系统的一个元素,与计算机硬件、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的集成测试和确认测试 。
系统测试的目标是:通过与系统的需求规格说明进行比较,检查软件是否存在与系统规格说明不符合或与之矛盾的地方,从而验证软件系统的功能和性能等满足规格说明所制定的要求 。
系统测试分析
用户层:围绕用户界面的规范性、友好性、可操作性、系统对用户的支持,以及数据的安全性等方面展开 。另外,用户层的测试通常还应注意可维护性测试和安全性测试 。
应用层:主要是针对产品工程应用或行业应用的测试 。从应用软件系统的角度出发,模拟实际应用环境,对系统的兼容性、可靠性等进行测试 。针对整个系统的应用层测试,包含并发性能测试、负载测试、压力测试、强度测试、破坏性测试 。
功能层:检测系统是否已经实现需求规格说明中定义的功能,以及系统功能之间是否存在类似共享资源访问冲突的情况 。
子系统层:针对产品内部结构性能的测试 。
协议/指标层:针对系统所支持的协议,进行协议一致性测试和协议互通测试 。
系统测试的方法
功能测试:功能测试属于黑盒测试,是系统测试中最基本的测试 。功能测试主要根据产品的需求规格说明和测试需求列表,验证产品是否符合需求规格说明 。
协议一致性测试:主要用于分布式系统 。在分布式系统中,很多功能的实现是通过多台计算机相互协作来完成的,这要求计算机之间能相互交换信息,所以需要制定一些规则(协议) 。对协议进行测试,通常包括:协议一致性测试、协议性能测试、协议互操作性测试、协议健壮性测试 。
性能测试:主要用于实时系统和嵌入式系统,性能测试是指测试软件在集成系统中的运行性能,目标是量度系统的性能和预先定义的目标有多大差距 。一种典型的性能测试是压力测试,当系统同时接收极大数量的用户和用户请求时,需要测量系统的应对能力 。性能测试要有工具的支持,在某种情况下,测试人员必须自己开发专门的接口工具 。
压力测试:又称强度测试,是在各种超负荷的情况下观察系统的运行情况的测试 。
容量测试:在系统正常运行的范围内测试并确定系统能够处理的数据容量 。容量测试是面向数据的,主要目的就是检测系统可以处理目标内确定的数据容量 。
安全性测试:安全性测试就是要验证系统的保护机制是否抵御入侵者的攻击 。保护测试是安全性测试中一种常见的测试,主要用于测试系统的信息保护机制 。评价安全机制的性能与安全功能本身一样重要,其中安全性的性能主要包括:有效性、生存性、精确性、反应时间、吞吐量 。
失效恢复测试:验证系统从软件或者硬件失效中恢复的能力 。失效恢复测试采用各种人为干预方式使软件出错,造成人为的系统失效,进而检测系统的恢复能力 。如果恢复需要人为干预,则应考虑平均修复时间是否在限定的范围内 。
备份测试:备份测试是失效恢复测试的补充,目的是验证系统在软件或者硬件失效的实践中备份其数据的能力 。
GUI测试:GUI测试与用户友好性测试和可操作性测试有重复,但GUI测试更关注对图形界面的测试 。GUI测试分为两个部分,一方面是界面实现与界面设计的情况要符合;另一方面是要确认界面能够正确处理事件 。GUI测试设计测试用例一般要从以下4方面考虑: