答疑:软件性能测试过程详解与案例剖析

问题:

我是XX公司XX部门负责软件性能测试的一名工程师,您曾经来我们公司做过内训,我们见过(可能您已经不记得了,呵呵)。拜读过您的大作《软件性能测试过程与案例剖析》一书,对我的启发很大。您在2.1.6节介绍的可靠性测试我很感兴 趣,但这一节只是对可靠性测试做了一个简单介绍,我想问问您有没有什么具体的项目进行讲解一下。比如在需求阶段提出的可靠 性需求是什么?如何转化为可测试的可靠性指标?如何确定系统的峰值压力?测试过程中都需要关注系统的哪些运行状况等等。

热切期待您的答复!

你的名字我还有印象,可惜不太记得你的具体模样了,呵呵:)
其实“可靠性测试”是一个很大的课题,《软件可靠性工程》(http://www.china-pub.com/12565&ref=ps) 这本书上对软件可靠性有比较详尽的描述。在此有针对性的回答你提出的问题:
1,需求阶段提出的可靠性需求是什么?
可靠性需求一般表示为对程序结构,平均故障时间/平均无故障时间等的需求,从可靠性本身的角度来说,可靠性分析模型主要是 基于缺陷的分析模型。
2,如何将可靠性需求转化为可测试的指标?
通常,可靠性分析是依靠特定的缺陷分析模型来进行的,在具体的可靠性模型中,有如何得到模型数据和如何使用模型数据的指 引。
3,如何确定系统的峰值压力?
其实,一个常用的验证系统是否稳定可靠的工程方法是:
* 为系统设定一个接近峰值的压力(较大的压力),这个可以通过数学上的统计模型来决定,例如,假设用户访问在整个时间段 内是服从正态分布的,设置信区间为3西格玛,则峰值可以选择为C+3×根号下西格玛;或者,也可以通过服务器负载来决定这个峰值,例 如,设定峰值为“保持服务器CPU使用率为80%”。
* 持续较长时间的压力,通常为3-14天;

* 检查运行过程中有无系统不稳定的征兆,例如应用抛出异常,

系统可用资源持续减少,应用响应时间持续变长等。

问题2:

非常感谢你的回答!

我想问问你回答的这些问题在《软件可靠性工程》这本书上都能找到答案吗?最近公司在改进这部分的测试流程,我也查了一 些相关的资料,感觉现在的软件可靠性在总体来说都发展的不是很成熟,理论和实际相差挺大。您在第三问里所说的工程方法是来 源于某一个模型还是工程实践里总结出来的呢?

《软件可靠性工程》中可以找到你问的部分问题的答案,这本书介绍的是可靠性工程的主要方法,包括可靠性评估手段,场景方法 的应用等,但肯定不能全部回答你提出的问题。
软件可靠性目前为止是一个较为成熟的理论,从方法论的角度来说,还是比较确定的,但是具体的方法论在软件开发过程中的实现则不那么容易 得到好的应用,也因此在软件可靠性要求较高的产品开发中,使用了一些特定的过程来保证产品的可靠性(例如,净室软件工程 等)。理论和实践总是有差距的;)
有一定的理论基础,但主要是工程实践总结出来的。它不能直接对应在软件可靠性模 型中,但可以在某种程度上体现软件是否稳定。

Posted at 五月 21st, 2010.

Leave a Reply