软件测试教程(华为培训专用)第6章PPT文件格式下载.ppt

上传人:b****2 文档编号:15449566 上传时间:2022-10-31 格式:PPT 页数:295 大小:1.02MB
下载 相关 举报
软件测试教程(华为培训专用)第6章PPT文件格式下载.ppt_第1页
第1页 / 共295页
软件测试教程(华为培训专用)第6章PPT文件格式下载.ppt_第2页
第2页 / 共295页
软件测试教程(华为培训专用)第6章PPT文件格式下载.ppt_第3页
第3页 / 共295页
软件测试教程(华为培训专用)第6章PPT文件格式下载.ppt_第4页
第4页 / 共295页
软件测试教程(华为培训专用)第6章PPT文件格式下载.ppt_第5页
第5页 / 共295页
点击查看更多>>
下载资源
资源描述

软件测试教程(华为培训专用)第6章PPT文件格式下载.ppt

《软件测试教程(华为培训专用)第6章PPT文件格式下载.ppt》由会员分享,可在线阅读,更多相关《软件测试教程(华为培训专用)第6章PPT文件格式下载.ppt(295页珍藏版)》请在冰豆网上搜索。

软件测试教程(华为培训专用)第6章PPT文件格式下载.ppt

n并发用户数一般是指同一时间段内访问系统的用户数量。

n吞吐量指单位时间内系统处理的客户请求数量。

n性能计数器描述服务器或操作系统性能的一些数据指标,比如Windows系统资源管理器。

6.1.2性能测试执行分为三个阶段:

n1计划阶段n2测试阶段n3分析阶段计划阶段n定义目标并设置期望值n收集系统和测试要求n定义工作负载n选择要收集的性能度量值n标出要运行的测试并决定什么时候运行它们n决定工具选项和生成负载n编写测试计划,设计用户场景并创建测试脚本测试阶段n做准备工作(如建立测试服务器或布置其他设备)n运行测试n收集数据分析阶段n分析结果n改变系统以优化性能n设计新的测试6.1.3性能测试案例分析n一个数据库应用系统性能测试的具体应用n目前有许多用于功能测试的自动化测试工具可供用户使用来节省测试时间、提高测试效率。

n结合现在比较流行的JMeter这一开源的自动化测试工具介绍一下数据库系统的性能测试。

n

(1)系统介绍n被测系统是一个分布式数据库系统Testbase。

该数据库采用Oracle数据库,Testbase里包括三张表,这里仅取其中一张名为City的表来说明测试过程,表的创建语句如下:

createtableCity(Countryvarchar(20)notnull,Namevarchar(20)notnull,Desvarchar(20)notnull)n

(2)测试目的测试Testbase数据库的查询性能。

n(3)测试工具的选择Jmeter。

JMetern(4)测试步骤n安装必要的JDBC驱动(数据生成可以使用工具DataFactory)n准备好Jmeter测试工具n建立测试计划n配置与数据库的连接n设置结果的查看方式n用JMeter分析了Oracle数据库的查询性能图6.4配置数据库连接图6.5测试结果6.2压力测试(负载测试、并发测试)6.2.1压力测试的基本概念n压力测试(StressTesting)是指模拟巨大的工作负荷,以查看系统在峰值使用情况下是否可以正常运行。

n压力测试是通过逐步增加系统负载来测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统性能提供的最大服务级别的测试。

压力测试方法具有如下特点:

n

(1)压力测试是检查系统处于压力情况下的能力表现。

n比如,通过增加并发用户的数量,检测系统的服务能力和水平;

通过增加文件记录数来检测数据处理的能力和水平等等。

n

(2)压力测试一般通过模拟方法进行。

n通常在系统对内存和CPU利用率上进行模拟,以获得测量结果。

如将压力的基准设定为:

内存使用率达到75%以上、CPU使用率达到75%以上,并在此观测系统响应时间、系统有无错误产生。

n除了对内存和CPU的使用率进行设定外,数据库的连接数量、数据库服务器的CPU利用率等等也都可以作为压力测试的依据。

n(3)压力测试一般用于测试系统的稳定性。

n如果一个系统能够在压力环境下稳定运行一段时间,那么该系统在普遍的运行环境下就应该可以达到令人满意的稳定程度。

在压力测试中,通常会考察系统在压力下是否会出现错误等方面的问题。

压力测试与性能测试的联系与区别:

n压力测试是用来保证产品发布后系统能否满足用户需求,关注的重点是系统整体;

n性能测试可以发生在各个测试阶段,即使是在单元层,一个单独模块的性能也可以进行评估。

n压力测试是通过确定一个系统的瓶颈,来获得系统能提供的最大服务级别的测试。

n性能测试是检测系统在一定负荷下的表现,是正常能力的表现;

而压力测试是极端情况下的系统能力的表现。

n例如对一个网站进行测试,模拟10到50个用户同时在线并观测系统表现,就是在进行常规性能测试;

当用户增加到系统出项瓶颈时,如1000乃至上万个用户时,就变成了压力测试。

压力测试和负载测试(LoadTest):

n负载测试是通过逐步增加系统工作量,测试系统能力的变化,并最终确定在满足功能指标的情况下,系统所能承受的最大工作量的测试。

n压力测试实质上就是一种特定类型的负载测试。

压力测试和并发性测试:

n并发性测试是一种测试手段,在压力测试中可以利用并发测试来进行压力测试。

6.2.2压力测试方法n压力测试应该尽可能逼真的模拟系统环境。

对于实时系统,测试者应该以正常和超常的速度输入要处理的事务从而进行压力测试。

批处理的压力测试可以利用大批量的批事务进行,被测事务中应该包括错误条件。

压力测试中使用事务获得途径n测试数据生成器;

n由测试小组创建的测试事务;

n原来在系统环境中处理过的事务。

n压力测试中应该模拟真实的运行环境。

n测试者应该使用标准文档,输入事务的人员或者系统使用人员应该和系统产品化之后的参与人员一样。

实时系统应该测试其扩展的时间段,批处理系统应该使用多于一个事务的批量进行测试。

有效的压力测试将可采用以下测试手段:

n

(1)重复(Repetition)测试:

n重复测试就是一遍又一遍地执行某个操作或功能,比如重复调用一个Web服务。

压力测试的一项任务就是确定在极端情况下一个操作能否正常执行,并且能否持续不断地在每次执行时都正常。

这对于推断一个产品是否适用于某种生产情况至关重要,客户通常会重复使用产品。

重复测试往往与其它测试手段一并使用。

n

(2)并发(Concurrency)测试:

n并发是同时执行多个操作的行为,即在同一时间执行多个测试线程。

例如,在同一个服务器上同时调用许多Web服务。

并发测试原则上不一定适用于所有产品(比如无状态服务),但多数软件都具有某个并发行为或多线程行为元素,这一点只能通过执行多个代码测试用例才能得到测试结果。

n(3)量级(Magnitude)增加:

n压力测试可以重复执行一个操作,但是操作自身也要尽量给产品增加负担。

例如一个Web服务允许客户机输入一条消息,测试人员可以通过模拟输入超长消息来使操作进行高强度的使用,即增加这个操作的量级。

这个量级的确定总是与应用系统有关,可以通过查找产品的可配置参数来确定量级。

n(4)随机变化:

该手段是指对上述测试手段进行随机组合,以便获得最佳的测试效果。

随机变化n使用重复时,在重新启动或重新连接服务之前,可以改变重复操作间的时间间隔、重复的次数,或者也可以改变被重复的Web服务的顺序;

n使用并发时,可以改变一起执行的Web服务、同一时间运行的Web服务数目,也可以改变关于是运行许多不同的服务还是运行许多同样的实例的决定。

n量级测试时,每次重复测试时都可以更改应用程序中出现的变量(例如发送各种大小的消息或数字输入值)。

n如果测试完全随机的话,因为很难一致地重现压力下的错误,所以一些系统使用基于一个固定随机种子的随机变化。

这样,用同一个种子,重现错误的机会就会更大。

6.2.3压力测试执行n可以设计压力测试用例来测试应用系统的整体或部分能力。

压力测试用例选取可以从以下几个方面考虑:

n输入待处理事务来检查是否有足够的磁盘空间;

n创造极端的网络负载;

n制造系统溢出条件;

n当应用系统所能正常处理的工作量并不确定时需要使用压力测试。

压力测试意图通过对系统施加超负载事务量来达到破坏系统的目的。

n压力测试和在线应用程序非常类似,因为很难利用其他测试技术来模拟高容量的事务。

n压力测试的弱点在于准备测试的时间与在测试的实际执行过程中所消耗的资源数量都非常庞大。

通常在应用程序投入使用之前这种消耗的衡量是无法进行的。

【例例6.4】某个电话通信系统的测试n测试采用压力测试方法。

在正常情况下,每天的电话数目大约2000个,一天24小时服从正态分布。

在系统第1年使用时,系统的平均无故障时间大约1个月左右。

分析表明,系统的出错原因主要来源于单位时间内电话数量比较大的情况下,为此,对系统采用压力测试,测试时将每天电话的数目增加10倍,即20000个左右,分布采用均匀和正态两种分布,测试大约进行了4个月,共发现了314个错误,修复这些错误大约花费了6个月的时间,修复后的系统运行了近2年,尚未出现问题。

6.3容量测试6.3.1容量测试基本概念n所谓的容量测试(VolumeTesting)是指,采用特定的手段测试系统能够承载处理任务的极限值所从事的测试工作。

n这里的特定手段是指,测试人员根据实际运行中可能出现极限,制造相对应的任务组合,来激发系统出现极限的情况。

n容量测试的目的n容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理,通过测试,预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),确定系统在其极限值状态下是否还能保持主要功能正常运行。

容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。

n对软件容量的测试,能让软件开发商或用户了解该软件系统的承载能力或提供服务的能力,如电子商务网站所能承受的、同时进行交易或结算的在线用户数。

知道了系统的实际容量,如果不能满足设计要求,就应该寻求新的技术解决方案,以提高系统的容量。

有了对软件负载的准确预测,不仅能对软件系统在实际使用中的性能状况充满信心,同时也可以帮助用户经济地规划应用系统,优化系统的部署。

容量测试与压力测试的区别n与容量测试十分相近的概念是压力测试。

二者都是检测系统在特定情况下,能够承担的极限值。

n然而两者的侧重点有所不同,压力测试主要是使系统承受速度方面的超额负载,例如一个短时间之内的吞吐量。

n容量测试关注的是数据方面的承受能力,并且它的目的是显示系统可以处理的数据容量。

n容量测试往往应用于数据库方面的测试n数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。

压力测试、容量测试和性能测试的区别n更确切的说,压力测试可以看作是容量测试、性能测试和可靠性测试的一种手段,不是直接的测试目标。

n压力测试的重点在于发现功能性测试所不易发现的系统方面的缺陷,而容量测试和性能测试是系统测试的主要目标内容,也就是确定软件产品或系统的非功能性方面的质量特征,包括具体的特征值。

n容量测试和性能测试更着力于提供性能与容量方面的数据,为软件系统部署、维护、质量改进服务,并可以帮助市场定位、销售人员对客户的解释、广告宣传等服务。

n压力测试、容量测试和性能测试的测试方法相通,在实际测试工作中,往往结合起来进行以提高测试效率。

一般会设置专门的性能测试实验室完成这些工作,即使用虚拟的手段模拟实际操作,所需要的客户端有时还是很大,所以性能测试实验室的投资较大。

对于许多中小型软件公司,可以委托第三方完成性能测试,可以在很大程度上降低成本。

6.3.2容量测试方法n进行容量测试的首要任务就是确定被测系统数据量的极限,即容量极限。

这些数据可以是数据库所能容纳的最大值,可以是一次处理所能允许的最大数据量等等。

系统出现问题,通常是发生在极限数据量产生或临界产生的情况下,这时容易造成磁盘数据的丢失、缓冲区溢出等一些问题。

资源利用率、响应时间、用户负载关系图n为了更清楚的说明如何确定容量的极限值,参看图6.6(资源利用率、响应时间、用户负载关系图):

n图中反映了资源利用率、响应时间与用户负载之间的关系。

可以看到,用户负载增加,响应时间也缓慢的增加,而资源利用率几乎是线形增长。

这是因为应用做更多的工作,它需要更多的资源。

n一旦资源利用率接近百分之百时,出现一个有趣的现象,就是响应以指数曲线方

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1