漫谈软件性能测试技术

1、引言

  随着我国加入WTO,各行各业都面临更多的机遇和挑战。如何提高产品的质量,增 强市场竞争力,日益成为企业发展必须解决的迫切问题,对软件企业来说尤为重要。软件企业要直接参与国际软件市场的竞争,首要问题就是要保证软件的质量,同 时要加快软件产品的发布与交付使用。因此,如何提高软件质量,越来越成为当前软件产业发展中一个迫在眉睫的问题。本文只针对软件质量的性能方面,做一些探 讨。

  2、软件质量

  质量保证能力的强弱直接影响着软件业的发展和生存。那么,到底 什么是软件的质量呢?《GB/T 16260 信息技术 软件产品评价 质量特性及其使用指南》明确定义:软件质量是软件产品具有满足明确的或隐含需求能力的特征和特性总和。具体包括以下六个方面的质量特性:

  1)功能性

  与一组功能及其指定的性质有关的一组属性。这里的功能是指满足明确或隐含的需求的那些功能。

  2)易用性

  与一组规定或潜在的用户为使用软件所需作的努力和对这样的使用所作的评价有关的一组属性。

  3)可靠性

  与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性。

  4)效率

  与在规定的条件下,软件的性能水平与所使用资源量之间关系有关的一组属性。

  5)可维护性

  与进行指定的修改所需的努力有关的一组属性。

  6)可移植性

  与软件可从某一环境转移到另一环境的能力有关的一组属性。

  因此,为了评价软件产品的质量,需要对软件质量的每个特性实施和执行测试. 随着现代软件构架技术的发展,特别是WEB技术的发展,与软件可靠性、效率质量特性相关的软件性能问题越来越受到包括软件从业人员、专家学者以及软件使用者的重视,软件的性能指标的好坏已直接影响到软件的质量。

  3、软件性能测试技术

  软件性能的测试一般包括三个方面,即性能评测、负载测试和强度测试。每一方面的测试都有其不同的测试目标、测试技术、完成标准,具体如下:

  3.1 性能评测

  针对响应时间、事务处理速率和其他与时间相关的需求进行评测和评估。目标是验证性能需求是否都已满足。

  测试目标:

  验证所指定的事务或业务功能在以下情况下的性能行为:

  (1)正常的预期工作量

  (2)预期的最繁重工作量

  测试技术:

  使用为功能或业务周期测试制定的测试过程。

  (1)通过修改数据文件来增加事务数量,或通过修改脚本来增加每项事务的迭代数量。

  (2)脚本应该在一台计算机上运行(最好是以单个用户、单个事务为基准),并在多个客户机(虚拟的或实际的客户机)上重复。

  完成标准:

  (1)单个事务或单个用户:在每个事务所预期或要求的时间范围内成功地完成测试脚本,没有发生任何故障。

  (2)多个事务或多个用户:在可接受的时间范围内成功地完成测试脚本,没有发生任何故障。

  注意事项:

  综合的性能测试还包括在服务器上添加后台工作量。 可采用多种方法来执行此操作,其中包括:

  (1)直接将“事务强行分配到”服务器上,这通常以“结构化查询语言”(SQL) 调用的形式来实现。

  (2)通过创建“虚拟的”用户负载来模拟许多个(通常为数百个)客户机。此负载可通过“远程终端仿真”(Remote Terminal Emulation) 工具来实现。此技术还可用于在网络中加载“流量”。

  (3)使用多台实际客户机在系统上添加负载。

  (4)性能测试应该在专用的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。

  (5)性能测试所用的数据库应该是实际大小或相同缩放比例的数据库。

 3.2 负载测试
  负载测试通过使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行,以及软件的性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。

  测试目标:

  验证所指定的事务在不同的工作量条件下的性能行为时间。

  测试技术:

  使用为功能或业务周期测试制定的测试。通过修改数据文件来增加事务数量,或通过修改测试来增加每项事务发生的次数。

  完成标准:

  多个事务或多个用户:在可接受的时间范围内成功地完成测试,没有发生任何故障。

  注意事项:

  (1)负载测试应该在专用的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。

  (2)负载测试所用的数据库应该是实际大小或相同缩放比例的数据库。

  3.3 强度测试

  强度测试目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。

  测试目标:

  验证测试对象能够在以下强度条件下正常运行,不会出现任何错误:

  (1)服务器上几乎没有或根本没有可用的内存(内存和磁盘空间)

  (2)连接或模拟了最大实际(实际允许)数量的客户机

  (3)多个用户对相同的数据或账户执行相同的事务

  (4)最繁重的事务量或最差的事务组合

  注:强度测试的目标可表述为确定和记录那些使系统无法继续正常运行的的情况或条件。

  测试技术:

  (1)使用为性能评测或负载测试制定的测试。要对有限的资源进行测试,就应该在一台计算机上运行测试,而且应该减少或限制服务器上的内存和磁盘空间。

  (2)对于其他强度测试,应该使用多台客户机来运行相同的测试或互补的测试,以产生最繁重的事务量或最差的事务组合。

  完成标准:

  所计划的测试已全部执行,并且在达到或超出指定的系统限制时没有出现任何软件故障,或者导致系统出现故障的条件并不在指定的条件范围之内。

  注意事项:

  (1)如果要增加网络工作强度,可能会需要使用网络工具来给网络加载消息或信息包。

  (2)应该暂时减少用于系统的磁盘空间,以限制数据库可用空间的增长。

  (3)使多个客户机对相同的记录或数据账户同时进行的访问达到同步。

  4、结束语

  软件质量的保证,不仅需要科学的测试策略,更要处理好整个软件生命周期中其他如需求、分析、设计、实现各阶段中出现的问题。只有对软件质量进行全面、全过程的质量控制,才能最终保证软件产品的质量,提高企业的竞争力。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-07-31 01:29:17

漫谈软件性能测试技术的相关文章

云计算环境下软件性能测试技术研究

云计算环境下软件性能测试技术研究 王立群  李兆翠  孙庆波 / 山东协和学院计算机学院 随着互联网.物联网.虚拟化等技术的发展,云计算给软件性能测试带来了新的机遇与挑战.本文以软件性能测试为落脚点,分析云计算环境下软件性能测试的可行性,阐述了云计算环境下软件性能测试的优势和其面临的挑战,在此基础上,对云计算环境下软件性能测试进行展望,提出下一步需要研究解决的问题. 云计算环境下软件性能测试技术研究

《精通软件性能测试与LoadRunner最佳实战》—第2章2.节

内 容 提 要 精通软件性能测试与LoadRunner最佳实战 本书在介绍软件性能测试概念的基础上,结合对实际测试案例的剖析,重点讲解了性能测试实战技术.LoadRunner工具的使用技巧和实践工作中的问题解答. 全书分为15章,内容从测试项目实战需求出发,讲述了软件测试的分类以及测试的流程等,还重点讲述了性能测试技术和LoadRunner 11.0工具应用的实战知识.为了有效地解决工作中遇到的问题,将实践中经常遇到的问题进行总结汇总成几十个解决方案.详细的项目案例.完整的性能测试方案.计划.用

软件性能测试的本质

  淘宝网每年的双11 活 动都是对其服务器性能的挑战.因为在这一天所有商品半价,购物的用户量剧增.做为淘宝网的高层更多的关心在线用户数,用户交易量,总交易金额等,做为一名 技术人员,我们可能更关心当天系统的吞吐量.每秒钟点击率以及系统资源的消耗情况等,对!这就是系统的性能.那么性能的本质是什么呢?我试抓住一些点来解 释.   基于用户体验的性能测试   但对于一个用户来说,他可以不关心上面这些(系统的性能参数),大约有一部分的消费者会因为网站过于技术化或者性能问题而选择了离开.换言之,如果你的

《精通软件性能测试与LoadRunner最佳实战》—第1章1.4节软件测试的分类

1.4 软件测试的分类 精通软件性能测试与LoadRunner最佳实战 软件测试按照测试阶段.是否运行程序.是否查看源代码以及其他方式,可以用图1-1所示来描述软件测试的各种分类. 黑盒测试.白盒测试与灰盒测试 1.黑盒测试 黑盒测试(Black-box Testing)是软件测试的主要方法之一,也可以称为功能测试.数据驱动测试或基于规格说明的测试.测试者不了解程序的内部情况,只知道程序的输入.输出和系统的功能,这是从用户的角度对程序进行的测试.软件的黑盒测试意味着测试要在软件的接口处进行.这种

从用户感知谈软件性能测试

虽然,有一段时间没关注性能测试,但时常还能看到有同学讨论性能,对于一些概念的理解很想深入讨论,但三言两语说不清,于是,还是花点时间写写吧! 今天有一个同学问:"一个小的系统,用户并发数为20个,那事务平均响应时间大概在什么范围内?" 怕麻烦直接告诉他2/5/8原则,钻牛角尖的话,需要进一步确认什么样的小系统?提供的什么类型的业务?用户行为是什么样的?用户对系统的使用频率?就算同响应时时间一样,前端通过不同展现方法,用户的感知可能完全不一样.下面就真对这个问题延伸讨论一下从用户感知的角度

《精通软件性能测试与LoadRunner最佳实战》—第1章1.1节软件测试基础

第1章 软件测试概述 精通软件性能测试与LoadRunner最佳实战 1.1 软件测试基础 精通软件性能测试与LoadRunner最佳实战 本书的主要内容是关于软件性能测试相关理论和工具应用方面的知识,但考虑到有很多阅读本书的读者刚开始从事测试工作,这里用一章的内容,对软件测试的基础内容进行了概括性的介绍,如果您已经熟悉了这些基本知识可以略过此章,直接阅读后续章节. 1.朝阳行业--软件测试 随着软件行业的蓬勃发展,市场竞争也越来越激烈,软件质量越来越受到软件企业的重视.软件测试是软件质量的重要

《精通软件性能测试与LoadRunner最佳实战》—第2章2.10节系统性能调优

2.10 系统性能调优 精通软件性能测试与LoadRunner最佳实战 性能测试分析人员经过对结果的分析以后,有可能提出系统存在性能瓶颈.这时相关开发人员.数据库管理员.系统管理员.网络管理员等就需要根据性能测试分析人员提出的意见同性能分析人员共同分析确定更细节的内容,相关人员对系统进行调整以后,性能测试人员继续进行第二轮.第三轮--的测试,与以前的测试结果进行对比,从而确定经过调整以后系统的性能是否有提升.有一点需要提醒大家,就是在进行性能调整的时候,最好一次只调整一项内容或者一类内容,避免一

这些年,我的软件性能测试

很早之前就说好好总结一下自己的职业,一直忙于一些乱七八糟的事,现在这个时间难得偷得空闲,趁着有感觉,赶紧进行敲下"这些年,我的软件性能测试"来祭奠我这IT行业的几年...... 记得第一次做性能测试项目,心情是忐忑的,觉得,性能测试,做不好就背包滚蛋了都可能,不过当时带我做项目的老大给了我很大的信心和支撑,我在做的过程中,遇到的疑问,他都会耐心的给我以解答或者给我一个方向,让我去前行,解决,随着一个个问题的出现和解决,自己每一天也过的感觉很充实.也是在这个项目里面,这个老大告诉我,作为

《精通软件性能测试与LoadRunner最佳实战》—第1章1.5节软件开发与软件测试的关系

1.5 软件开发与软件测试的关系精通软件性能测试与LoadRunner最佳实战前面已经提到软件生命周期,大家已经清楚软件从无到有是需要需求人员.研发人员.测试人员.实施维护等人员相互协作的.作为软件测试人员,在从事软件测试工作的同时,最好对软件的研发过程有一个整体的了解.随着信息技术和各行各业的蓬勃发展,现在的软件系统通常都比较复杂,一个新的软件产品研发过程少则需要几个人,多则需要几百人.数千人来协同完成,下面我们就来看一看软件的开发模式. 常见的几种软件开发模式从开始构思到正式发布软件产品的过