1 / 20
文档名称:

软件性能与性能测试精.doc

格式:doc   大小:369KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件性能与性能测试精.doc

上传人:wz_198614 2019/6/22 文件大小:369 KB

下载得到文件列表

软件性能与性能测试精.doc

相关文档

文档介绍

文档介绍:软件性能与性能测试教程第1部分中国软件评测中心陈兵本系列教程对软件性能与性能测试这个主题进行了较为全面的介绍和分析。教程分为三个部分:在第1部分,讲解了软件性能的基本知识,介绍了常用的软件性能指标,在分析影响软件性能因素的同时,以实例清晰讲解了如何提高软件的性能及性能的可扩展性等问题;在第2部分,首先给出了性能测试的基础知识,然后侧重于从性能工程的角度提出开展性能测试工作的流程,和进行性能测试工作的策略,以及如何分析性能测试数据;在第3部分,从开发的(而不是第3方测试角度,以实例为引导,一步一步地分析讲解在开发环境下进行性能测试的策略、方法和手段(采用的工具。本系列教程可以用作软件开发人员、软件测试人员、软件项目经理、软件质量人员和需要了解软件性能测试的各级软件管理人员的工作参考手册,也可作为有志于软件开发和软件性能测试领域人员的参考资料。...在20世纪60年代,计算机资源还十分有限,效率是被关心的最重要问题。到了70年代计算机迅速发展,程序员意识过分专注于性能会损害程序的可读性和维护性。因而软件性能和代码调整受到的重视程度有所下降,随着80年代微型计算机的革命,性能限制又把效率问题提出来。在整个90年代中它被人们关注的程度则逐渐下降。21世纪初,移动电话和PDA等设备上嵌入式软件受到的内存限制,以及解释型代码的执行时间过长,使效率再度成为了一个热点话题。,覆盖面非常广泛,对一个软件系统而言,包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等。一般来说,性能是一种指标,表明软件系统或构件对于其及时性要求的符合程度;其次性能是软件产品的一种特性,可以用时间来进行度量。通常,对于软件性能的关注是多个层面,用户关注软件性能,系统管理员关注软件性能,软件开发人员也关注软件性能,那么这些不同的关注者所关注的“软件性能”的具体内容是不是都完全相同呢?如过不同,那么不同点在哪里?下面我们从三个不同的层面对软件性能做一个简要的介绍。(1用户视角的软件性能从用户角度来说,软件性能就是软件对用户操作的响应时间。(2管理员视角的软件性能从系统管理员的角度来看,所重点关注的软件系统性能是:系统的响应时间;系统运行时服务器的状态,如CPU利用情况、内存使用情况等;系统是否能够实现扩展;系统支持多少用户访问;系统性能可能的瓶颈在哪里;系统是否支持7*24小时的业务访问等。(3产品开发人员视角的软件性能这也是本文的视角,即本文从开发人员的角度来讨论软件性能与性能测试。从开发人员的角度来说,会关心主要的用户感受—响应时间,因为这毕竟是用户的直接体验;另外,开发人员也会关心系统的扩展性等系统管理员所关心的内容,这里指的是性能而不是功能的可扩展性,这个问题本文的后面讨论;但对开发人员来说,最想知道的是“如何通过调整设计和代码等等方法来提高软件的性能表现”和“如何发现并解决软件设计和开发过程中产生的由于多用户访问引起的缺陷”等等,参见表1。表1给出了开发视角的软件性能关注内容。开发人员关心的问题问题所属环节架构设计是否合理?系统架构数据库设计是否合理?数据库设计代码是否存在性能方面的问题?代码系统中是否有不合理的内存使用方式?代码系统中是否存在不合理的线程同步方式?设计与代码系统中是否存在不合理的资源竞争?设计与代码从表1中可以看到,问题所属的关键环节是在代码构建上面。从开发人员的角度来看,可以用如下五个方面来作为评判性能的标准:1运算的性能——哪一个算法的执行性能最好?2内存的分配——程序运行时需要耗费多少内存?3启动的时间——程序启动需要多长时间?这在Web项目中的影响不大,但要注意部分程序需要部署或运行在客户端时的情形(比如Applet程序。4程序的可伸缩性——在压力负载的情况下,程序的性能如何?5性能的感知——用户在什么情况下会觉得程序的性能不好?以上五个方面,在具体的使用场景可以有选择的去评判。关于如何提高系统性能的问题,我们在下节进行讨论。,我们可以从以下几个方面着手,使用高性能、速度快的硬件--$$$=速度使用恰当的编程语言和进行编译器优化设计可扩展的应用程序架构设计方面选择正确的数据结构和算法代码调整避免使用较慢的OSAPIs调整、测量(注意是测量而不是测试、再调整、再测量…(1从上面的几个方法来看,使用高性能、速度快的硬件很容易理解,也是决大多数人在碰到性能问题的时候首先会想到的办法。采取这样的方法总是很有效的吗?(2使用恰当的编程语言和进行编译器优化也是提高软件性能的方式之一。例如在使用IntelC++编译器时,编译器选项可以组合。每种优化各有其特点,尝试着各种优化选项的效果,有时各种优化选项组合使用可能效果更好。使用时,这些选项加