一提到软件性能,很多人不能说的很明白,本人也不能完全说明了!但根据国人的习惯,还是先说概念吧!
一般来说,性能是一种指标,表明软件系统或者构成对于其及时性要求的符合程度;其次,性能是软件的一种特性,可以用时间来进度度量。
性能的及时性用响应时间或者吞吐量来衡量。响应时间是对请求作出响应所需要的时间。对于单个事务,响应时间就是完成事务所需的时间;对于用户任务,响应时间体现为端到端的时间。对于交互式的应用(例如典型的Web应用)来说,我们一般以用户感受到的响应时间来描述系统的性能,而对非交互式应用(嵌入式系统或者银行等的业务处理系统)而言,响应时间是指系统对事件产生响应所需要的时间。
通常,我们应该能感受到软件的性能的关注是多个层面的:有用户关注的软件性能,有测试人员关注的软件性能,有产品开发人员也关注的软件性能。当然这些不同关注者所关注的“性能”的具体内容是不完全相同的。
用户关注的软件性能
从用户的角度来说,一般来说软件性能就是软件对用户操作的响应时间。比如当用户单击一个按钮、发出一条指令或是在Web页面上单击一个链接,从用户单击开始到应用系统把本次操作的结果以用户能察觉到的方式展示出来,这个过程所消耗的时间就是用户对软件性能的直观印象。如下图以一个web系统为例,说明了用户的这个印象。
测试人员关注的软件性能
从测试人员的角度来看,软件系统的性能首先表现在系统的响应时间上,这一个和用户是一样的,但是测试人员除了关注一般用户的体现之外,还会关心和系统状态相关的信息,比如某个业务响应时系统状态如使用状况合理吗?
应用服务器和数据库的资源使用状况合理吗?
系统是否能实现扩展
系统最多能支持多少用户的访问?系统最大的业务处理量是多少
系统性能可能的瓶颈在哪里
更换哪些设备能提高系统性能
系统能否支持7x24小时的业务处理
开发关注的软件性能
开发人员会关于用户和测试人员的所有关注点(用户是直接感受性能的,测试人员是要测试性能的),因为对他们来说,用户和测试人员都是开发后产品的面向对象。除此之外,开发人员还想知道是如何通过调整设计和代码实现,或是如何通过调整系统设置等方法来提高软件的性能表现和如何发现并解决软件设计和开发过程中产生的由于大量用户访问或者长时间使用时引发的软件故障,所有使软件性能表现不佳的因素和性能相关故障,还有相关的性能瓶颈。
架构设计是否合理
数据库设计是否存在问题
代码是否存在性能方面的问题
系统中是否有不合理的内存使用方式
系统中是否存在不合理的线程同步方式
系统中是否存在不合理的资源竞争
软件性能的几个主要术语
1、响应时间 上文说到了,即系统对请求作出响应所需要的时间。例如,从单击登录按钮到登录完成返回登录成功页面需要消耗1秒,那个这个操作的响应时间为1秒。
2、吞吐量 反映单位时间内能够处理的事务数目。例如,对于系to统来说一个用户登录需要1秒,如果系统同时支持10个用户登录,且响应时间是1秒,那么系统的吞吐量就是10个/秒。
3、性能计数哭器 描述服务器或者操作系统性能的一些数据指标。例如,对于windows系统来说,使用内存数,进程时间、CPU的占用率等。
我们作为测试人员,当然关心的软件性能测试,以给用户良好合理的软件性能体现。关于软件性能测试的分类、方法和工具后面再整体啦!