在软件测试的领域里,有颗非常耀眼的明珠“性能测试”。做这个非常苦的,老老实实积累个几年,没天分也很难出什么成果,最近圈内两位好友陈绍英和段念分别出了各自的性能测试书籍,分别恭喜恭喜。
今天首先推出老段同志对于性能测试的一些珠玑之言供大家参考学习。所有文字出自老段的新书《软件性能测试过程详解与案例分析》,大家多多捧场!
什么是软件性能?
当我们提到软件性能测试的时候,有一点是很明确的:测试关注的重点是“性能”。那么,本书要解决的第一个问题就是:究竟什么是“软件性能”?一般来说,性能是一种指标,表明软件系统或构件对于其及时性要求的符合程度;其次,性能是软件产品的一种特性,可以用时间来进行度量。性能的及时性用响应时间或者吞吐量来衡量。响应时间是对请求作出响应所需要的时间。
对于单个事务,响应时间就是完成事务所需的时间;对于用户任务,响应时间体现为端到端的时间。比如, “用户单击OK按钮后2秒内收到结果”就是一个对用户任务响应时间的描述,具体到这个用户任务中,可能有多个具体的事务需要完成,每个事务都有其单独的响应时间。
对交互式的应用(例如典型的Web应用)来说,我们一般以用户感受到的响应时间来描述系统的性能,而对非交互式应用(嵌入式系统或是银行等的业务处理系统)而言,响应时间是指系统对事件产生响应所需要的时间。
通常,对软件性能的关注是多个层面的:用户关注软件性能,管理员关注软件性能,产品的开发人员也关注软件性能,那么这些不同的关注者所关注的“性能”的具体内容是不是都完全相同呢?如果不同,这些不同又在哪里?最后,作为软件性能测试工程师,不同层面的软件性能都需要关注,在关注全部这些层面的性能体现的时候,又应该注意哪些内容呢?下面我们从3个不同层面来对软件性能进行阐述。
用户视角的软件性能
从用户的角度来说,软件性能就是软件对用户操作的响应时间。说得更明确一点,对用户来说,当用户单击一个按钮、发出一条指令或是在Web页面上单击一个链接,从用户单击开始到应用系统把本次操作的结果以用户能察觉的方式展示出来,这个过程所消耗的时间就是用户对软件性能的直观印象。
必须要说明的是,用户所体会到的“响应时间”既有客观的成分,也有主观的成分。例如,用户执行了某个操作,该操作返回大量数据,从客观的角度来说,事务的结束应该是系统返回所有的数据,响应时间应该是从用户操作开始到所有数据返回完成的整个耗时;但从用户的主观感知来说,如果采用一种优化的数据呈现策略,当少部分数据返回之后就立刻将数据呈现在用户面前,则用户感受到的响应时间就会远远小于实际的事务响应时间(顺便说一下,这种技巧是在C/S结构的管理系统中开发人员常用的一种技巧)。