软件性能测试重要性的下滑将改变工作重心
如今,高速 服务器 几乎可以处理任何单独的工作负担。仅用几千美元,凑个整数可能为5 000美元,你就足以配置一套几乎可以执行任何工作负担的系统。因为这一点, 性能测试 已成为很少有人能负担得起的奢侈之物。 当然,也有一些机构的应用程序不能在单独一台或
如今,高速
服务器几乎可以处理任何单独的工作负担。仅用几千美元,凑个整数可能为5 000美元,你就足以配置一套几乎可以执行任何工作负担的系统。因为这一点,
性能测试已成为很少有人能负担得起的奢侈之物。
当然,也有一些机构的应用程序不能在单独一台或少数几台服务器上运行。所要执行的任务极为庞大复杂,没有单独的服务器能满足这一
需求。但是,有这类需求的机构已显著地减少。
通过本文你会了解到:系统性能与可扩张性测试重要性的下滑与其带来的有限回报,为何会降低你安排这些活动的优先级。
个人性能记录
我还清楚地记得我编写的一个
性能测试应用程序。这是一个旨在同时阅读八台电话交换机的输入信号的程序。每部交换机以9 600波特的速率与应用程序进行数据通信。
应用程序必须验证记录格式,将有效记录与无效记录分别写入两个文件。它的另一任务是在
网络发生故障时,将记录上述文件的网络共享文件转移到本地驱动器上,并在网络恢复时将文件返回过去。
此系统在一台安装DOS操作系统的25兆赫80486SX计算机上运行。如果不发生故障,它可以全速处理所有八台交换机。在网络故障期,它的最大负荷也达到五台。这一能力已超出它能够全速支持3到4台交换机的设计目标。那样,公司处理数据流的能力会在当前基础上增加数倍。
由于错误引起的额外处理负担会产生连锁反应,使系统迅速退化。丧失一个特性就会产生额外的处理负担,这样又会使其它的特性丧失。
如果系统不能正常运行,收入就会降低,因此有必要测试系统的性能。但是,即使那样,硬件的性能也会偏离普通公司的性能目标。
为何要做性能测试?
进行性能测试有两个原因:一是为了保证系统能够满足公司当前或短期的计划需求。也就是说,要确定能够从当前的系统中获得最大的性能。
第二个原因是:为了支持更大的负载,要就何时对系统进行改造做出规划。这包括重新编写
解决方案片断、重建解决方案或添置更多的硬件。这样,进行性能测试就有助于了解:要想超越现有的系统性能,我们该做出哪些努力。
何为性能测试?
谈论性能测试时,我们并不仅仅是谈论性能测试本身。相反,我们谈论的是响应速度、处理能力与可扩充性。这三项指标之间关系密切,每一项都不能孤立起来进行评估。
响应速度很容易量化。任何人用一块秒表就可以迅速地测量出某一程序的响应速度。当然,甚至简单的
自动化测试方法还更为精确。不过,事实上,某一程序的响应速度是性能测试的最基本的组成部分,即使在处理能力最低的情况下,也可以进行直接观测。发出请求到产生响应,这一过程所耗费的时间即为系统的响应速度。
处理能力是指系统在同一时间内所能处理的业务量大小。不同的业务类型对处理能力有特别的限制。某一系统每秒可能只能完成20宗业务。不管你给系统多少业务,在指定的时间内,它只能完成其最大处理能力内的业务量。
响应速度测量完成一宗业务所需的时间(秒)。例如,假定测量的响应速度为每宗业务3秒。处理能力则正好相反,它测量每秒处理的业务量。结合起来说,如果系统每秒最多可完成20宗业务,而每宗业务的响应速度为3秒,那么在任何时间,系统都同时在处理60宗业务。
响应速度与处理能力关系密切的一个原因是:系统处理的业务数量增加,则系统的响应速度就会降低。过去只花不到一秒就可完成的业务现在要花两到三秒,甚至更长时间。更让人沮丧的是,一般如果系统所接受的业务量超过某一速率,总体的处理能力就会下降。如果系统每秒能够处理20宗业务,而业务以每秒25宗的速率进入系统,则系统的总体业务处理能力可能会下降到17宗每秒。正因为这样,当我所编写的交换机阅读程序开始失去更多的特性时,也发生了这种情况。由额外业务引发的额外处理负担开始引发超时、重发及其它降低总体处理能力的后果。
原文转自:http://www.ltesting.net