软件的可靠性测试流程设计分析
2013-03-19李晋
李 晋
(信阳师范学院网络信息与计算中心 河南 464002 )
0 前言
软件可靠性测试共分为两种:可靠性验证测试和可靠性增长测试,这两种测试的主要区别在于,验证性测试对软件测试过程中表现出的故障不进行改正,而本文为了便于研究仅取用验证性测试的流程分析数据。
1 可靠性测试需求分析
软件可靠性测试的目的是为了发现软件在开发过程中出现的错误而对程序采取执行措施的过程,同时软件的测试是要根据软件开发过程的不同时期的需要和程序整体结构的完整性而精心设计的测试用例集合,通过对这些测试用例的运行情况分析以发现程序中设计上或者程序中的错误。因此,可以根据这种需要,制定出软件可靠性测试的需求要满足以下几点:
(1)可靠性测试的测试用例输入环境与用户的典型使用环境在统计特性上要保持一致,尤其是要强调测试用例在功能、数据域、输入等相关概率的前期识别特性;
(2)软件的可靠性测试用例的选择要与用户的使用概率分布情况相吻合,并且要随机选择,才能得确保可靠性估计的准确性,同时也更有可能找出容易造成软件出错的故障;
(3)软件的可靠性测试整个过程中,对运行时间的记录一定要详细、准确、完整,同时测试用例的输入覆盖率至少要大于软件功能测试的普遍要求;
(4)软件可靠性测试需要准备实施多种测试环境可支持软件的可靠性测试,因为在一些特殊运行环境中,比如实时嵌入式和容错软件等类型软件在使用情况下难以在软件中植入错误,需要在测试之前做好多条件测试软件的准备工作;
(5)软件可靠性测试的测试用例切入点对可靠性影响比较大的漏洞的搜索,所以在进行可靠性评估的测试中,要选择测试效果更明显的可靠性测试,而非功能性测试;
2 可靠性测试先期条件
完善的软件可靠性测试流程设计,对提高软件可靠性测试的工作效率有极大的帮助作用,这个作用主要表现在这几点:(1)合理划分和整体规划软件可靠性测试的工作进程;(2)根据软件可靠性测试的积累经验表明,软件内容复杂、缺陷类型多样,测试手段也需要随之变化,因此很难在规定时间内完成全部测试工作;所以需要以个设计合理的流程计划来帮助测试如期顺利完成;(3)流程化、工程化的软件可靠性测试流程, 有利于软件测试的管理人员对软件可靠性测试的过程科学地规划,并统筹管理。综上所述,不难发现软件可靠性测试的必备条件,除了有效的测试环境、必备的功能测试软件和和谐的测试人员团队,更需要有一个可靠的测试流程。
3 可靠性测试流程
基于对上述可靠性测试的需求分析和概念理解,我们可将可靠性测试流程暂定义为三部分:可靠性测试准备、可靠性测试执行和可靠性测试结果分析。
4 可靠性测试拟定流程
依据前面一节对可靠性测试流程的原则性定义,现将该测试过程的具体流程详述如下:
4.1 测试准备阶段流程
第一步:在进行软件可靠性测试之前,从理论上首先要对软件进行一次评估。第二步:签订测试合同。第三步:由于测试技术的产权归属问题,承接测试方与委托方需要在测试之前签订保密协议,避免双方在这方面发生不必要的纠纷。第四步:承接测试方在签订合同和保密协议后,要及时成立项目测试组。第五步:测试项目组成立之后,就要试纸测试任务书。第六步:测试任务书后需要制定测试计划书。第七步:在计划制定结束项目运行启动之间,需要对软件测试所需要的运行环境进行测试配置。第八步:配置结束后需要构造整个测试流程的操作剖面。第九步:根据测试操作图生成的测试用例,满足剖面图对输入变量取值范围的规定,并默认变量在这个范围内按照分段分布或者均匀分布方式取值。第十步:也是测试前最后一个步骤就是自动生成测试脚本,并对脚本进行录制,便于今后的工作使用。
4.2 测试执行阶段流程
测试执行阶段的步骤简单,仅分为运行、数据收集和测试停止,但是每个步骤需要注意的问题还有很多:运行部分工作需要注意测试过程虽然只需要根据准备工作时生成的脚本运行,但是需要注意测试工具在测试进行时是否能够自动记录下测试用例执行的时间数据和软件缺陷信息,保证能够为测试分析提供足够数量的原始数据。同时,测试工作人员需要尽可能的详细的编写测试日志,要包括:测试编号、用例编号、测试标题、测试人员签名、计划和实际的运行时间、产生问题的单号等。
软件可靠性测试的数据的是软件可靠性评估的核心,因此该部分的工作需要投入最多精力。本文拟对数据的记录主要包含:单次失效的总失效时间;两次失效的间隔时间;统计时间段内失效的次数;某种失效在某时间段内的失效次数等四类数据。由于测试结果的不确定性导致了测试结束的时间也不能完全确定,严格分析,测试停止的时间需要分为三类。
4.3 测试分析阶段流程
首先需要对测试结果进行再次的可靠性分析,然后需要测试团队组织编制测试报告,最后是根据可靠性分析编制测试问题报告单,再次进行可靠性分析时。通过建立数学概率论模型对故障和发生时间进行数学分析,得出故障—时间的概率分布情况。编制测试报告就是将测试过程和测试结果编制成文,分析测试过程中发现的缺陷和隐患,为写下来对软件纠错的工作提供参考,同时也是可靠性测试的交付依据。撰写测试问题报告单时需要对如下内容逐一列举:测试软件标识、测试运行计算机系统、记录文档、产品测试描述、数据和程序脚本的测试结果、不达标内容清单、未按要求进行测试的清单和说明、测试结束日期。
[1]陈春秀,马力. 软件可靠性测试技术研究[J]. 计算机工程与设计, 2010.
[2]张俊萍,朱小冬,张鲁, 余文定. 软件可靠性测试流程设计及其应用[J].计算机测量与控制, 2011,19(4).
[3]于琛琛,刘瑞方. 软件可靠性测试方法探析[J].国防技术基础,2009.
[4]陈伟 .针对软件可靠性测试的测试用例集精简方法[J]. 理论与研究, 2011.