选择区域语言: EN CN HK

更有效的方案性能评估测试探析

文/周迪

性能测试应该是个很普通的测试项吧?曾经我也这样认为,直到我面对那些工作量巨大、数据量庞大的解决方案性能评估测试才发现不那么简单。

单一领域的性能测试,例如网络性能测试,业务原理简单明了,手段成熟,而且有大量商业仪器可供选用;相比而言,解决方案性能评估测试更关注最终业务,原理复杂跨越多个领域,存在第三方黑盒设备,很少有直接的商业工具可供使用。于是遍历所有的测试点就成了一件相当挑战体力和耐力的事情。然而更大的困惑在于:如何确证测试结果的准确性?存有随机性因素时结论该如何发布?因物力、人力或时间有限而无法测试的性能点该如何处理?不符合预期的结果如何对待?

单一领域或单一指标的情况下这一切几乎都不是问题,但解决方案性能测试的特点却需要我们投入大量的精力做深入严密的逻辑分析和实验验证。这种分析和验证不仅存在于我们的测试执行中,也存在于测试设计中,还存在于分析问题的理念中,甚至还考验着我们处理细节时的哲学态度。笔者结合自己多年在解决方案性能评估测试方面的实践经验,试图在解决方案性能评估的准确性和测试效率的提升上进行一些总结。

压力模型的客观性

为保证测试数据的可靠性,测试人员(通常也包括方案设计者)往往倾向于向极端恶劣情形建立简化的压力模型。这样做确实比较保险,输出的性能数据比较可靠(自然也比较保守),测试压力模型也会简单很多。

但是一个好的理论应该能够充分解释观测到的所有现象,并给出符合观测结果的准确预言;同样一个好的压力模型应该能够准确的推出符合方案实际性能的测试结果。显然靠向极端情形的保守压力模型所给出的性能数据会低于方案的实际能力,这在另一方面也给公司的方案宣传带来不利影响。

我们做网络设备码流接入能力的摸底测试时考虑到多条码流分布的随机性,同时也受限于测试手段的缺乏,曾采用让所有码流同相叠加的极端压力模型。这种方案确实便于测试,却也带来了测试任务量的极度增加;更为严重的后果是,对于突发较大的码流,测试给出的网络设备接入能力要远低于其实际能力,这同时引发了市场对产品的误解。后来经过不懈的探索和反复的验证,我们巧妙地利用损伤仪的附带功能连同特制媒体服务器精心构建了一个流量产生网络,建立了贴近客观真实的流量压力模型,并进而发展和完善了性能推测理论,预测并验证了性能曲线,也提出了可保障方案性能表现的新特性。

推测理论的重要性

解决方案性能测试输出的结果往往显得不那么有规律,容易让人摸不着头绪。一堆散乱的数据会令人从潜意识里感觉到不安:这些测试数据是否可靠,存不存在测试错误,抑或产品自身存在着潜藏的错误?所以有必要为每个项目建立起一套基于严密分析和实验确证的性能推测理论。

建立性能推测理论有助于理顺庞大的性能数据;有助于检验测试数据的可信性,或者反过来完善性能推测理论;有助于从数据和理论的不相符现象中发现产品潜藏的问题;有助于使测试结果大为精简——好的测试结果应该能够用简约而优美的数学公式或曲线进行概括;更重要的是,性能推测理论的建立可以推算那些无法测试的性能点数据。

由于解决方案的复杂性,建立正确的推测理论其实并不容易,特别是当方案中存在第三方黑盒模块时。我们不必像学术研究那样建立复杂的数学模型,但需要将每一步的推测进行必要的实验验证。通常我们的做法是,先测试一组数据,然后进行讨论分析,建立一套初步的推测理论,其中的细节肯定存在多种可能性,然后通过相关实验进行进一步的检验和修正。一个好的理论应该能够准确预测新的实验现象,所以当它用来推测计划外的性能点数据时,必须对那些性能点进行采样测试以检验推测理论的准确性。

建立了正确的性能推测理论就可以免去大量的测试投入,包括人力、时间、物料和管理协调等的消耗;提高性能数据准确性的同时也加速性能数据的发布。

异常数据的处理

性能测试的结果中不可避免的存在不符合性能推测理论的异常数据。这些异常数据可能是由于操作不当或方法不正确而引入的错误或误差,这需要我们对相关数据进行仔细的重复摸底和修正,必要时对测试环境和测试方法,甚至推测理论本身进行反思和检验。

如果确认不是测试方法不当所致,就可让开发人员一起投入分析,因为很可能存在产品本身的错误。这是发掘产品潜在错误的绝好机会,对于异常数据千万不能简单的删除了之。

通过上述努力也许依旧无果,这通常发生在含有黑盒模块的时候,我们还可以采用一种变通的方法:多测试几组类似条件下的数据,如果它们的走势保持一致,说明数据符合其内在规律(只是我们暂时不清楚而已),此时可暂且认可测试结果的正确性,将原理分析和理论完善留后再研究——当然这样的走势曲线是不适合用于准确推测计划外的性能点数据的。

对于异常数据请切忌“雪藏”。历史上曾出现太多因先入为主的观念而忽略事实从而错失良机的事例,我们不能因为自己暂时的无力理解而否定客观事实的存在。

我们对网络设备码流接入能力“抛物曲线”的预想和实验确证对性能推测理论的完善起了决定性作用,其最初的蛛丝马迹就来自于对异常性能数据的深入反思。如果我们当初简单粗暴的无视“异常现象”的存在,那么今天的这个推测理论将会充满疑义,永远只能停留在学说阶段。

准确的评估解决方案的性能对于保障客户的投资和充分展现方案的实力具有重要的意义。合理的压力模型的选择和构建是确保方案性能得以准确评估的基础;而严谨的数据分析和预测则是保障测试结果的准确性和测试效率的提升的关键。

感谢您对本刊物的关注,如果您在阅读时有何感想,请点击反馈。