2009-2010天津城市建设学院电子与信息工程系唐国峰第二部分软件测试技术第八节系统测试8.1系统测试的概念2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试系统测试(SystemTesting)是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和多角度的确认测试。8.1.1系统测试的目的2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计的标准和规定。系统测试的测试用例应该根据需求规格说明书来设计。2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试制定测试计划和设计测试用例活动的进入准则是:产品需求文档完成之后,系统测试小组就可提前开始制定测试计划和设计测试用例,不必等到“实现与测试”阶段结束,以提高系统测试效率。2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试8.1.2角色与职责编号角色名称岗位映射职责描述1项目经理小组组长组建系统测试小组,并指定一名成员任测试组长。2测试组长测试负责人制定测试计划,对测试小组人员相关工作进行管理。3测试人员测试人员设计测试用例、执行测试,并撰写相应的文档。4开发人员开发人员及时消除测试人员发现的缺陷。5配置管理员CM对系统测试过程中产生的所有代码和有价值的文档进行配置管理。6质量保证工程师QA根据小组选定的软件开发过程及教师要求的测试过程,审核过程的符合性7文档人员文档人员完善系统的各类文档,比如:用户手册,安装手册,联机帮助文档等。2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试测试小组来源•委托外部测试机构进行测试,比如:软件测评中心;•与项目组独立的测试小组或测试部门人员;•邀请其他项目的开发人员参与测试;2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试测试小组来源•本项目的部分开发人员(但绝对不能以本项目开发人员为主进行系统测试)•技术支持或工程实施人员(更能清楚了解用户的实际使用环境及需求)。•注意:此处的测试与验证中的测试有很大区别。2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试系统测试流程图输入输出系统测试开始1.制定测试计划2.设计测试用例3.执行系统测试4.缺陷管理和改错系统测试用例系统测试结束测试是否通过?是否项目计划需求规格说明书接口设计模块设计数据库设计用户界面设计缺陷管理列表缺陷统计报告系统测试报告系统测试计划系统测试用例系统测试计划系统测试计划8.2系统测试的过程8.2.1制定系统测试计划2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试系统测试计划主要包括:测试目标测试范围测试方法测试环境与辅助工具测试完成准则人员与任务表8.2.2系统测试计划的评审2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试《系统测试计划》根据情况进行正式或非正式评审8.2.3系统测试用例的设计系统测试人员根据《系统测试计划》和指定的模板,设计《系统测试用例》并进行同行评审;《系统测试用例》的编写要参照提供的模板及编写指导。测试组长邀请开发人员和同行专家,对《系统测试用例》进行技术评审。该测试用例通过技术评审后,进入下一步工作,根据测试用例执行系统测试。8.2.4执行系统测试2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试系统测试人员依据《系统测试计划》和《系统测试用例》执行系统测试,并对测试过程中发现的缺陷进行跟踪,及时解决验证。将测试结果记录在《系统测试报告》中,用《缺陷管理列表》或专门的缺陷管理工具来记录所发现的缺陷,并及时通报给开发人员。在系统通过系统测试之后,一般可以进入如下阶段:安装到客户使用环境下试运行、发布Beta版;系统验收。8.2.5系统测试结束标准2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试例:在如下情况可以结束系统测试活动:对于非严格系统可以采用“基于测试用例”的准则:功能性测试用例通过率达到100%;非功能性测试用例通过率达到95%。对于严格系统,应当补充“基于缺陷密度”的规则:相邻n个CPU小时内“测试期缺陷密度”全部低于某个值m。具体值根据项目的类型来确定。8.2.6文档编写2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试《系统测试报告》《缺陷管理报告》8.3系统测试的内容2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试1、用户层,主要是面向产品最终的使用操作者的测试,重点突出的是从操作者的角度,测试系统对用户支持的情况,用户界面的规范性、友好性、可操作性,以及数据的安全性。8.3系统测试的内容2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试用户支持测试,用户手册、使用帮助、支持客户的其他产品技术手册是否正确、是否易于理解、是否人性化。用户界面测试,在确保用户界面能够通过测试对象控件或入口得到相应访问的情况下,测试用户界面的风格是否满足用户要求,例如:界面是否美观、界面是否直观、操作是否友好、是否人性化、易操作性是否较好。8.3系统测试的内容2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试可维护性测试,可维护性是系统软、硬件实施和维护功能的方便性。目的是降低维护功能对系统正常运行带来的影响。例如:对支持远程维护系统的功能或工具的测试。安全性测试,安全性主要包括了两部分:数据的安全性和操作的安全性。验证只有规定的数据才可以访问系统,其他不符合规定的数据不能够访问系统;验证只有规定的操作权限才可以访问系统,其他不符合要求的操作权限不能够访问系统。8.3系统测试的内容2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试2、应用层,针对产品应用的测试,重点在系统应用的角度,模拟实际应用环境,对系统的兼容性、可靠性、性能等进行的测试。8.3系统测试的内容2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试系统性能测试,针对整个系统的测试,包含并发性能测试、负载测试、压力测试、强度测试、破坏性测试。系统可靠性、稳定性测试,一定负荷的长期使用环境下,系统可靠性、稳定性。8.3系统测试的内容2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试系统兼容性测试,系统中软件与各种硬件设备兼容性,与操作系统兼容性、与支撑软件的兼容性。系统网络测试,网络环境下,系统软件对接入设备的支持情况。包括功能实现及群集性能。8.3系统测试的内容2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试系统安装升级测试,安装测试的目的是确保该软件在正常和异常的不同情况下进行安装时都能按预期目标来处理。例如,正常情况下,第一次安装或升级、完整的或自定义的安装都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。还有一个目的是核实软件在安装后可立即正常运行。另外对安装手册、安装脚本等也需要关注。8.3系统测试的内容2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试3、功能层,针对产品具体功能实现的测试。业务功能的覆盖,关注需求规格定义的功能系统是否都已实现。业务功能的分解,通过对系统进行黑盒分析,分解测试项及每个测试项关注的测试类型。业务功能的组合,主要关注相关联的功能项的组合功能的实现情况。业务功能的冲突,业务功能间存在的功能冲突情况。比如:共享资源访问等。8.3系统测试的内容2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试4、子系统层,针对产品内部结构性能的测试,关注子系统内部的性能,模块间接口的瓶颈。单个子系统的性能,应用层关注的是整个系统各种软、硬件、接口配合情况下的整体性能,这里关注单个子系统。子系统间的接口瓶颈,例如:子系统间通讯请求包的并发瓶颈。子系统间的相互影响,子系统的工作状态变化对其他子系统的影响。8.3系统测试的内容2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试5、协议/指标层,针对系统支持的协议、指标的测试(主要是测试协议或指标的一致性及互通性)。8.3.1功能测试2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试功能测试(FunctionalTesting)是系统测试中最基本的测试,他不管软件内部的实现逻辑,主要根据产品的需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品的需求规格。8.3.1功能测试2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试功能测试主要是为了发现以下几类错误:(1)是否有不正确或遗漏了的功能(2)功能实现是否满足用户需求和系统设计的隐藏需求(3)能否正确地接受输入,能否正确地输出结果?8.3.2性能测试2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试性能测试(PerformanceTesting)是用来测试软件在集成系统中的运行性能的,只有当整个系统的所有成分都集成到一起之后,才能检查一个系统的真正性能。一个主要的性能测试就是压力测试。8.3.3压力测试我们能将系统折腾到什么程度而不出错?2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试压力测试(StressTesting)试图耗尽诸如缓冲区、队列、表和端口等方面的资源限制,从而评价系统的性能。压力测试是对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。例如测试一个Web站点在大量的负荷下,何时系统的响应会退化或失败。现在的网络游戏中也常用到这个词汇。8.3.4安全性测试2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试安全性测试(SecurityTesting)是用来验证集成在系统内的保护机制是否能够在实际中保护系统不受到非法的侵入。在安全测试中,测试人员扮演的是一个试图攻击系统的角色,目标是尝试各种手段来侵入系统,控制系统。有趣的比喻:黑客是最有业绩的软件测试人员。8.3.5健壮性测试2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试健壮性测试(RobustnessTesting)又叫做容错性测试。其目的是验证系统在出现错误时,从软件或者硬件失败中恢复的能力。这种测试验证了系统在应用处理过程中处理中断的能力。在健壮性测试中,测试人员采用各种人工干预方式来使软件在执行过程中出错(来自软件的或者硬件的),而不能正常工作,以达到检验目的。8.3.6兼容性测试2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试兼容性测试(CompatibilityTesting)的目的是测试应用对其它应用或者系统的兼容性。这方面的错误的原因通常很难发现。而且,因为外界元素很多,通常很难被完全测试。8.3.6可安装性测试2009年11月9日天津城市建设学院电子与信息工程系唐国峰第八节系统测试可安装测试(InstallationTesting)的目的是要验证成功安装软件系统的能力。试想一下,用户如果安装了你的软件失败导致用户不得不重新安装系统,甚至数据整个崩溃的后果?2009年11月9日天津城市建设学院电子与信息工程系唐国峰本节课程结束,谢谢!第七节集成测试