关于当前软件可靠性和软件测试分析

时间:2022-09-18 10:13:04

关于当前软件可靠性和软件测试分析

摘要:在科学技术发展迅速的今天,伴随着软件具有越来越强大的功能,从而也大大的增加了软件的复杂性,所以软件测试和对其进行可靠性评估的工作也越来越难。为了确保软件的质量,必须对软件进行测试和可靠性评估。本文针对软件测试和可靠性评估的方法做一下阐述。

关键词:软件测试;软件工程;软件质量;可靠性

中图分类号:TP311

1软件可靠性分析

1.1软件可靠性定义

软件可靠性是指在一定的时间间隔、给定的软件的运行环境下,程序按照设计要求执行一定的功能的能力。从软件的可靠性定义可以看出,软件的可靠性有3个要素:规定的时间、特定的运行环境和规定的软件完成的任务与功能。

(1)规定的时间

软件可靠性体现的是运行阶段的软件的性能,所以度量规定的时间的量应当是软件的运行时间。运行时间包不但包括系统运行后的工作时间,还包括开启但是空闲的时间。由于在运行软件时,程序路径和运行的环境的选取都具有随机性,软件的失效是一个随机事件,因此,软件的运行时间是一个随机变量。

(2)规定的环境条件

环境条件是指软件运行所处的环境。它包括支持软件系统运行的各种要素,例如,运行软件的操作系统、支持运行的硬件、其它的支持软件、输入的数据格式及范围等。在不同的环境条件运行同一个软件,得出的是不同的可靠性。详细的说,假定其他的因素是理想的,规定的环境条件主要包括支持软件运行的计算机的配置以及数据的输入格式等要求。在明确了软件规定的运行环境下,有利于准确的判断软件失效是研制方还是客户方的责任。

(3)规定的功能

软件规定的任务和功能也是影响软件可靠性的一个因素。当完成不同的任务时,会有不同的软件运行剖面,软件调用的子模块,即程序选择的路径,就会不同,就可能会得到不同的可靠性。所以明确软件的任务和功能是准确度量软件系统的可靠性的一个最重要的先决条件。

1.2软件可靠性度量

软件可靠性度量是定量的评价软件产品具有的可靠性程度。具体是采用统计技术统计出软件在运行测试期间的失效数据,从而根据数据评估软件的可靠性。可靠性的定义是某种产品在规定的时间和条件下完成某种功能的能力,可靠度是可靠性的概率的度量。

软件可靠性是软件的一个固有特性,是衡量软件在按照设计目标和用户的要求执行其特定的功能的正确程度。软件可靠性不仅与软件本身的缺陷有关,也和系统的输入和使用有一定的关系。从理论上来讲,一个可靠的软件必须是具有以下四个性质:正确性、一致性、完整性和健壮性。然而在实际中,没有软件能够保证完全正确,也无法准确的度量其精确度。通常情况下,是通过测试软件系统来估计其可靠性的。

为了进行软件可靠性评估,首先需要了解软件的可靠性模型。软件可靠性一般需要通过建立数学模型和可靠性框图而进行估算,这些数学模型和可靠性框图就是软件的可靠性模型。建立可靠性模型的目的是把较为复杂的可靠性分解为多个简单的系统的可靠性,从而方便评价复杂系统的可靠性。

1.3软件可靠性的测试实施

上述工作完成后,就可以进行测试。进行软件可靠性测试必须按照研制方交付的软件文档中与可靠性相关部分的文件、文档、数据等要求。在用户文档、需求说明书和项目合同中规定的配置要求下,必须全部测试程序和数据。

在软件可靠性测试中,可以考虑输入比正常的输入在允许的一定范围内更恶劣的输入,即强化输入。如果在强化输入下,软件的运行依然可靠,那说明软件的强化输入比正规输入的情况更可靠。为了获得更多的软件可靠性数据,应该增加软件的累积运行时间,比如,可以采用多台计算机同时运行软件。

1.4可靠性数据收集

对软件进行可靠性评估的依据是软件的可靠性数据。为了收集软件的可靠性数据,应该建立一个具有软件错误报告、分析与纠正功能的系统。根据行业标准的规定,编制完成软件错误报告、可靠性数据收集、分析与处理的规则,准确、完整的收集软件测试阶段的可靠性数据。

收集可靠性数据主要包括下面四个方面的数据:失效时间数据、失效间隔时间数据、分组数据和分组时间内的累积失效数。失效时间数据是指软件在运行过程中发生一次失效而总共经历的时间。失效间隔时间数据是指软件测试时某次失效与下一次失效之间的间隔时间。分组数据是指在一个时间段内软件总共发生几次失效。分组时间内的累积失效数是指某个区间内的累积失效数。

每一次测试记录都要包含以下详细信息:测试时间;测试说明或者计划;和测试相关的所有的结果;参与测试的人员的详细信息。

1.5编写测试报告

软件测试结束后,下面的工作便是编写《软件可靠性测试报告》,总结和归纳软件测试中的测试项和测试结果。测试报告的内容一般包括下面的几个方面内容:软件的标识;软件测试时的计算机软件和硬件的配置;测试所使用的文档;对软件的说明;程序和数据的测试结果;软件的测试最终日期。采用规范的管理控制,能够保证在软件测试阶段获得真实的可靠性数据,从而能够客观的评价软件的可靠性。

2软件测试

2.1软件测试的定义

软件测试是保证软件质量的一个关键步骤,也是软件生存期中一个阶段。简单来讲,软件测试就是通过对软件需求的分析、设计的规格以及编码进行的最后的审核活动。软件测试的定义为:使用某种手段通过运行软件系统来检查软件系统是否满足设计的要求或者是测试结果是否与实际要求的功能相满足。从定义可以看出,软件测试的目的是确定软件是否与设计的需求相满足。

现在,从客户的角度来看,软件测试的目的是希望通过这个测试过程,发现软件中隐藏的错误和缺陷。因此,也可以说,软件测试是为了发现软件系统中的错误而执行程序的一个过程。为了达到这个目的,需要设计出一批测试用的输入数据及其预期的输出结果,通过这些测试用例去测试运行的程序能否输出预期的结果。

2.2软件测试的方法

软件测试方法包括两类:黑盒测试方法和白盒测试。黑盒测试是在不考虑程序内部结构及其特性的情况下检查输入与输出是否达到预期的结果的测试,所以又称为功能测试等。而白盒测试则是在已知程序内部结构的情况下而设计测试用例的测试方法,又称为结构测试等。一般情况下,如果进行的是独立测试,则适合采用黑盒测试方法,如果进行的是单元测试,则采用白盒测试法。

测试用例是对客观存在的程序的一种抽象,是对程序中的目标、运动和结果等的一种描述。设计测试用例是对软件的某种功能而设计出的测试方案,以文档的形式编制。在设计测试用例时,不仅能够考虑到普通的情况,还应该考虑到边界值以及极限值等特殊情况。为了达到测试时发现软件系统中的隐藏缺陷,所以在选择输入输出数据和测试用例时,必须结合软件的运行环境,尽可能的选择出所有具有代表性的测试用例和数据,从而全面的判断输入输出结果与实际设计是否符合。得到软件测试的数据后,对其进行处理,以此为依据来判断软件系统能否满足设计需求。

3结束语

综上所述,本文通过对软件测试与可靠性评估方法进行了分析与研究。根据多年的经验表明,采用现场试验的方法是评估软件可靠性的最好的方法。影响软件的可靠性的因素有很多,最大的一个因素是关于可靠性的数据不足。所以在实际的软件测试与可靠性分析时,必须根据丰富的历史可靠性试验信息统计来评估全系统的可靠性。

参考文献:

[1]潘立武,杨健.谈应用软件测试方法[J].福建电脑,2007,7.

[2]刘鑫,陈.软件自动化测试工具的研究[J].华南金融电脑,2007,1.

[3]王世俊.软件自动化测试框架的研究和实现[D].华东师范大学,2006.

上一篇:电力载波通信未来应用方向研究 下一篇:解析基于SQL Server的C/C复合材料实验数据库系...