关闭

软件可靠性测试方法新探

发表于:2013-6-24 10:12

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:蔡建平    来源:51Testing软件测试网采编

  统计测试标识出频繁执行的部分,并相应地调整测试策略,针对这些频繁执行的部分进行详尽的测试。通过提高关键模块的安全性和可靠性,来提高整个系统的安全性和可靠性,以提高测试的性价比。统计测试进行的前提条件就是生成如实反映系统使用情况的使用模型。以往使用模型的建立主要是通过预测和估计得出的,不能如实地反映系统的真实情况。

  通过软件可靠性测试可以有效地发现程序中影响软件可靠性的缺陷,从而实现可靠性增长。由于软件可靠性很大程度上依赖条件的变化,特别是软件操作剖面的输入分布。因此,我们首先需要建立描述软件操作情况的操作剖面,然后在软件的操作剖面基础上按照概率统计方法设计输入的分布,最后利用操作剖面从所有软件操作中获得统计上正确的采样并对软件进行可靠性测试。这种测试方法也是惟一能直接对软件操作可靠性进行估算的统计方法。通过操作建模可以改进规格说明,得到规格说明的分析性描述,量化测试代价,通过统计测试为软件可靠性推断提供依据。

  事实上,软件可靠性测试方法就是一种黑盒测试方法,它面向需求、面向使用开展测试,不用了解程序的结构、程序的实现等问题。软件可靠性测试最好由独立的第三方测试机构来承担,主要是在系统测试、验收、交付阶段进行。

  总之,基于被测软件操作剖面的统计测试方法是在对软件的实际使用情况进行统计的基础上建立软件的操作剖面,并采用统计测试的方法进行测试。用这种方法所获得的测试数据与软件的实际运行数据比较接近,可直接用于软件可靠性估算。

  3、基于操作剖面的软件可靠性压力测试

  前述的软件可靠性测试是基于被测软件操作剖面的统计测试方法,这种方法在操作剖面确定后如何针对由于长期使用软件性能下降,甚至完全失效这种严重影响软件可靠性的问题上有一定的不足。例如,无休止的线程、无释放的文件锁闭、数据污染、存储空间的彻底分裂与积聚差错等。而这些问题的产生还是软件设计和逻辑实现带来的问题。如果这些问题解决了,就不会出现由于长期使用使软件性能下降的问题。而解决这一问题的有效方法就是基于操作剖面的压力测试或疲劳测试,即在一段时间内(经验上一般是连续72 小时)保持操作剖面上的某些点进行某些操作频繁使用,检查系统是否发生功能或者性能上的问题。

  通常现代大型软件的操作剖面很复杂,覆盖整个操作剖面进行压力测试是不现实的。如何在被测软件的操作剖面上确定压力测试的范围或测试点以及压力测试的类型是软件可靠性压力测试的重要研究内容。因此,在传统的操作剖面上结合软件可靠性统计测试方法,针对软件有别于硬件的自身特性,以及软件由于长期使用使软件性能下降,甚至完全失效这种严重影响软件可靠性的问题,采用操作剖面压力测试的方法,确定重要的压力测试点,并在这些压力测试点上分别进行相应类型的压力测试,以保证软件经过长时间运行后,性能不会下降,失效不会产生,来达到提高软件可靠性的目的。这种面点结合、互相补充的测试思想丰富了软件可靠性测试内容,解决了软件可靠性测试不仅要考虑操作剖面的功能统计测试问题,还要考虑操作剖面上的压力测试问题,并使操作剖面和操作剖面上的压力测试点成为相辅相成的软件可靠性测试方案。

  从以上方案可以看到,准确地寻找操作剖面上的各个压力测试点,有效地确定压力测试类型,设计相应的压力测试用例,并将这些测试用例纳入到被测软件的操作剖面的统计测试用例中是软件可靠性压力测试的关键,也是现代软件可靠性测试的关键。这需要在操作剖面的基础上对被测软件进行静态分析和动态测试,查找可能严重影响软件可靠性的因素,如:内存泄露、数据污染、线程死锁、文件冲突等,并将这些作为压力测试点的压力测试内容,确定相应的压力测试类型。

  由于软件自身的特点,软件可靠性与硬件可靠性相比内涵发生了根本的变化,软件可靠性估算必须以软件可靠性分析及软件可靠性测试等结果或缺陷数据为重要依据,软件可靠性估算模型及模型输入参数与软件可靠性测试结果紧密相连。为此,我们一定要抓住软件的特性,强调软件可靠性测试对于软件可靠性估算的重要支撑作用,研究软件可靠性测试方法和技术,特别是研究基于被测软件操作剖面的压力测试技术和基于软件可靠性分析和测试结果的软件可靠性估算模型是一个有理论价值和变革意义、并存在很大的难度且面临极大挑战的研究课题,这也是本文抛砖引玉要达到的目的。

  4、结束语

  本文对软件的自身特性、软件可靠性及软件可靠性测试等概念进行了阐述,并在此基础上根据笔者工作实践对软件可靠性测试方法进行了探讨,提出了用操作剖面上的压力测试概念来弥补传统的操作剖面上的功能统计测试的不足,强调软件可靠性测试对于软件可靠性估算的重要支撑作用。软件可靠性研究的理论和方法多种多样但无法实施和运用的关键问题是没有很好地分析和研究软件的自身特性和软件出错的自身规律,照搬照套硬件可靠性的概念和估算方法与估算模型,从而使软件可靠性估算及评测走向死胡洞。对软件可靠性估算及评测起决定支撑作用的软件可靠性测试应该是当前乃至今后的一个重要研究领域或课题。计算机系统或软件系统的整个可靠性应该分别计算硬件可靠性和软件可靠性,然后进行结果的科学整合,而这也是国内外研究的空白,因此需要有更多的人力和物力投入到这方面的研究之中。

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号