第八讲系统测试案例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

系统测试第八讲系统测试系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求。系统测试过程制定测试计划(PLAN)按计划完成测试(Do)审核和评审测试文档(Check)维护测试文档(Action)测试计划《ANSI/IEEE软件测试文档标准829-1983》将测试计划定义为:“一个叙述了预定的测试活动的范围、途径、资源及进度安排的文档。它确认了测试项、被测特征、测试任务、人员安排,以及任何偶发事件的风险。”备注:ANSI/IEEE(美国国家标准学会/电气和电子工程师协会)测试计划内容确定系统测试类型确定系统测试进度确定系统测试人员确定系统测试环境确定系统测试工具如何做好测试计划明确测试的目标,增强测试计划的实用性坚持“5W1H”规则采用评审和更新机制,保证测试计划满足实际需求分别创建测试计划与测试详细规格、测试用例变更控制系统测试设计针对软件的不同层采用不同的测试方法。用户层应用层功能层子系统层协议层用户层用户界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。用户层测试方法用户支持测试用户手册、使用帮助、支持客户的其他产品技术手册是否正确、是否易于理解、是否人性化。用户界面测试在确保用户界面能够通过测试对象控件或入口得到相应访问的情况下,测试用户界面的风格是否满足用户要求,例如:界面是否美观、界面是否直观、操作是否友好、是否人性化、易操作性是否较好。用户层测试设计可维护性测试可维护性是系统软、硬件实施和维护功能的方便性。目的是降低维护功能对系统正常运行带来的影响。例如:对支持远程维护系统的功能或工具的测试。安全性测试安全性主要包括了两部分:数据的安全性和操作的安全性。核实只有规格规定的数据才可以访问系统,其他不符合规格的数据不能够访问系统;核实只有规格规定的操作权限才可以访问系统,其他不符合规格的操作权限不能够访问系统;应用层测试设计针对产品工程应用或行业应用的测试。重点站在系统应用的角度,模拟实际应用环境对系统的兼容性、可靠性等进行的测试。系统性能测试系统可靠性、稳定性测试系统兼容性测试系统组网测试系统安装升级测试功能层测试设计设计主要针对产品具体功能实现的测试。业务功能的覆盖:关注需求规格定义的功能系统是否都已实现。业务功能的分解:通过对系统进行黑盒分析,分解测试项及每个测试项关注的测试类型。业务功能的组合:主要关注相关联的功能项的组合功能的实现情况。业务功能的冲突:业务功能间存在的功能冲突情况。比如:共享资源访问等。子系统测试设计针对产品内部结构性能的测试。关注子系统内部的性能,模块间接口的瓶颈。单个子系统的性能:应用层关注的是整个系统各种软、硬件、接口配合情况下的整体性能,这里关注单个系统。子系统间的接口瓶颈:例如:子系统间通讯请求包的并发瓶颈。子系统间的相互影响:子系统的工作状态变化对其他子系统的影响。系统测试-性能测试基本概念性能测试主要检验软件是否达到需求规格说明书中规定的各类性能指标,并满足一些性能相关的约束和限制条件性能测试包括以下几个方面:评估系统的能力:测试中得到的负荷和响应时间等数据可以被用于验证所计划的模型的能力,并帮助做出决策识别系统中的弱点:受控的负荷可以被增加到一个极端的水平并突破它,从而修复系统的瓶颈或薄弱的地方系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能,检测软件中的问题系统测试-性能测试性能测试的基准大体有以下几方面:响应时间:从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间。合理的响应时间取决于实际的用户需求。并发用户数:一般是指同一时间段内访问系统的用户数量。吞吐量:指单位时间内系统处理的客户请求数量。性能计数器:描述服务器或操作系统性能的一些数据指标,比如Windows系统资源管理器。性能测试执行计划阶段测试阶段分析阶段定义目标并设置期望值收集系统和测试要求定义工作负载选择要收集的性能度量值标出要运行的测试并决定什么时候运行它们决定工具选项和生成负载编写测试计划,设计用户场景并创建测试脚本做准备工作(如建立测试服务器或布置其他设备)运行测试收集数据分析结果改变系统以优化性能设计新的测试系统测试-压力测试压力测试是指摸拟巨大的工作负荷,以查看系统在峰值使用情况下是否可以正常运行。压力测试是通过逐步增加系统负载来测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统性能提供的最大服务级别的测试。压力测试特点压力测试是检查系统处于压力情况下的能力表现通过增加并发用户的数量,检测系统的服务能力和水平;通过增加文件记录数来检测数据处理的能力和水平等等压力测试一般通过模拟方法进行通常在系统对内存使用率达到75%以上、CPU使用率达到75%以上,并在此观测系统响应时间、系统有无错误产生。除了对内存和CPU的使用率进行设定外,数据库的连接数量、数据库服务器的CPU利用率也都可以作为压力测试的依据。压力测试一般用于测试系统的稳定性。系统能够在压力环境下稳定运行一段时间,那么该系统在普遍的运行环境下就应该可以达到令人满意的稳定程度。压力测试与性能测试压力测试是用来保证产品发布后系统能否满足用户需求,关注的重点是系统整体;性能测试可以发生在各个测试阶段,即使是在单元层,一个单独模块的性能也可以进行评估。压力测试是通过确定一个系统的瓶颈,来获得系统能提供的最大服务级别的测试。性能测试是检测系统在一定负荷下的表现,是正常能力的表现;而压力测试是极端情况下的系统能力的表现。压力测试方法重复测试:重复测试就是一遍又一遍地执行某个操作或功能,比如重复调用一个Web服务。压力测试的一项任务就是确定在极端情况下一个操作能否正常执行,并且能否持续不断地在每次执行时都正常。这对于推断一个产品是否适用于某种生产情况至关重要,客户通常会重复使用产品。重复测试往往与其它测试手段一并使用。并发测试:并发是同时执行多个操作的行为,即在同一时间执行多个测试线程。例如,在同一个服务器上同时调用许多Web服务。并发测试原则上不一定适用于所有产品(比如无状态服务),但多数软件都具有某个并发行为或多线程行为元素,这一点只能通过执行多个代码测试用例才能得到测试结果。压力测试方法量级增加:压力测试可以重复执行一个操作,但是操作自身也要尽量给产品增加负担。例如一个Web服务允许客户机输入一条消息,测试人员可以通过模拟输入超长消息来使操作进行高强度的使用,即增加这个操作的量级。这个量级的确定总是与应用系统有关,可以通过查找产品的可配置参数来确定量级。随机变化:该手段是指对上述测试手段进行随机组合,以便获得最佳的测试效果。压力测试执行压力测试用例选取可以从以下几个方面考虑:输入待处理事务来检查是否有足够的磁盘空间;创造极端的网络负载;制造系统溢出条件;系统测试-容量测试所谓的容量测试(VolumeTesting)是指,采用特定的手段测试系统能够承载处理任务的极限值所从事的测试工作。这里的特定手段是指,测试人员根据实际运行中可能出现极限,制造相对应的任务组合,来激发系统出现极限的情况容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理,通过测试,预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),确定系统在其极限值状态下是否还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试方法进行容量测试的首要任务就是确定被测系统数据量的极限,即容量极限。这些数据可以是数据库所能容纳的最大值,可以是一次处理所能允许的最大数据量等等。系统出现问题,通常是发生在极限数据量产生或临界产生的情况下,这时容易造成磁盘数据的丢失、缓冲区溢出等一些问题容量测试方法图中反映了资源利用率、响应时间与用户负载之间的关系。可以看到,用户负载增加,响应时间也缓慢的增加,而资源利用率几乎是线形增长。这是因为应用做更多的工作,它需要更多的资源。一旦资源利用率接近百分之百时,出现一个有趣的现象,就是响应以指数曲线方式下降,这点在容量评估中被称作为饱和点。饱和点是指所有性能指标都不满足,随后应用发生恐慌的时间点。执行容量评估的目标是保证用户知道这点在哪,并且永远不要出现这种情况。在这种负载发生前,管理者应优化系统或者增加适当额外的硬件。容量测试方法为了确定容量极限,可以进行一些组合条件下的测试,如核实测试对象在以下高容量条件下能否正常运行:链接或模拟了最大(实际或实际允许)数量的客户机。所有客户机在长时间内执行相同的、可能性能不稳定的重要业务功能。已达到最大的数据库大小(实际的或按比例缩放的),而一起同时执行多个查询或报表事务。容量测试当然需要注意,不能简单地说在某一标准配置服务器上运行某软件的容量是多少,选用不同的加载策略可以反映不同状况下的容量。举个简单的例子,网上聊天室软件的容量是多少?在一个聊天室内有1000个用户,和100个聊天室每个聊天室内有10个用户,同样都是1000个用户,在性能表现上可能会出现很大的不同,在服务器端数据输出量、传输量更是截然不同的。在更复杂的系统内,就需要分别为多种情况提供相应的容量数据作为参考。容量测试执行获取测试需求容量需求通常出现在需求规格说明书中的基本性能指标、极限数据量要求和测试环境部分。用例设计方法规范导出法、边界值分析、错误猜测法容量测试执行步骤分析系统的外部数据源,并进行分类;对每类数据源分析可能的容量限制,对于记录类型数据需要分析记录长度限制,记录中每个域长度限制和记录数量限制;对每个类型数据源,构造大容量数据对系统进行测试;分析测试结果,并与期望值比较,确定目前系统的容量瓶颈;对系统进行优化并重复以上四步,直到系统达到期望的容量处理能力。健壮性测试健壮性的两层含义:一是高可靠性,二是从错误中恢复的能力。前者体现了软件系统的质量;后者体现了软件系统的适应性。二者也给测试工作提出了不同的测试要求,前者需要根据符合规格说明的数据选择测试用例,用于检测在正常情况下系统输出的正确性;后者需要在异常数据中选择测试用例,检测非正常情况下的系统行为。健壮性测试健壮性测试可以根据以下方面评价系统的健壮性:通过:系统调用运行输入的参数产生预期的正常结果。灾难性失效:这是系统健壮性测试中最严重的失效,这种失效只有通过系统重新引导才能得到解决。重启失效:一个系统函数的调用没有返回,使得调用它的程序挂起或停止。夭折失效:程序执行时由于异常输入,系统发出错误提示使程序中止。沉寂失效:异常输入时,系统应当发出错误提示,但是测试结果却没有发生异常。干扰失效:指系统异常时返回了错误的提示,但是该错误提示不是期望中的错误。健壮性测试的策略基于错误的策略:确认所有可能的错误源,为每一类错误开发错误注入技术;基于覆盖率的策略:接口覆盖的数量,故障位置覆盖的数量,例外覆盖的数量;基于失效的策略:用例设计故障是否被处理了,例外是否被处理了,一个组件中的失效是否影响另一个组件;试用例设计方法在进行健壮性测试时,常用的用例设计方法主要有三种:故障插入测试,变异测试和错误猜测法。健壮性测试方法通常需要构造一些不合理的输入来引诱软件出错,如输入错误的数据类型,输入定义域之外的数值等。安全性测试安全测试检查系统对非法侵入的防范能力。目的是为了发现软件系统中是否存在安全漏洞。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如想方设法截取或破译口令;专门定做软件破坏系统的保护机制;故意导致系统失败,企图趁恢复之机非法进入;试图通过浏览非保密数据,推导所需信息等等。理论

1 / 51
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功