欢迎来到学术参考网

软件可靠性和软件测试

发布时间:2015-12-15 14:29

摘 要:软件测试的目的就是通过对软件的测试找出软件中存在的问题,从而确保软件的可靠性。由此可见,软件可靠性与软件测试是息息相关的,软件可靠性离不开软件测试的支持。本文通过对软件可靠性和软件测试的相关理论进行分析,进而对软件可靠性与软件测试的关系进行了阐述。

关键词:软件可靠性; 软件测试; 关系

 随着信息技术的快速发展,对软件功能需求也逐渐提高,软件复杂性也越来越高。基于这种环境下,软件可靠性要求也越来越高。软件可靠性在一定程度上决定了软件可靠性,而软件测试在一定程度上为软件可靠性提供了保障,由此可见,对软件可靠性和软件测试进行更深入研究是软件领域重要的工作之一。
1 软件可靠性
1.1 软件可靠性概述   在规定的条件下,在规定的时间内,软件不引起系统失效的概率,该概率是系统输入和系统使用的函数,也是软件中存在的缺陷函数。系统输入将确定是否会遇到已存在的缺陷。在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。软件可靠性的三个要素分别是规定的时间、规定的环境条件以及规定的功能。1)规定的时间。在软件的运行阶段体现着软件可靠性,因此,一般采用“运行时间”t作为时间的尺度。这主要是因为具体要处理的问题是多种多样的,把运行时间t当作随机变量来考虑主要是因为具有随机的输入环境、随机的选取程序中相应程序路径、随机的软件失效。软件系统运行后工作与挂起的累积时间作为运行时间。2)规定的环境条件。环境条件指的是软件的使用环境,无论是什么软件,如果不对它的使用环境加以限制,都是会失效的,这中实效的数据是不能用来度量软件的可靠性。这里的环境条件包括与程序存储有关的计算机及其操作系统,也就是指的是软件的运行环境,软件系统运行时所需的各种支持要素都和环境条件有关,例如:操作系统、支持硬件、支持软件等等。3)规定的功能。在对软件可靠性进行考虑时,首先应该知道软件有什么功能,主要的功能是什么,次要的功能是什么,对这些的了解可以通过软件需求分析说明书和设计说明书。规定的任务和功能都和软件可靠性有关。软件的运行剖面随着完成的任务的不同而不同,因此,调用的子模块也就不同,那么可靠性也可能不同。因此,明确软件的任务和功能是保证准确度量软件系统的可靠性的前提。
1.2 软件可靠性模型
1.2.1   时间模型   时间模型分为可靠性增长模型和公理模型。
   对于可靠性增长模型:

1.3 软件可靠性测试   软件可靠性是程序在给定的时间间隔以及给定的环境条件下,按照需求,衡量程序执行所要求的功能的能力。根据定义,软件可靠性包含了以下3个要素:给定的时间、给定的条件以及所要求的功能。1)给定的时间:运行时间。2)给定的条件:软件的运行环境。3)所要求的功能:需求说明书上明确的任务和功能。软件可靠性测试是在使用典型的环境中,为进行软件可靠性估计而对该软件进行的功能测试。需要说明的是,"典型环境"指的是在统计意义下该环境能反映出软件的使用环境特性。
2 软件测试
     软件测试就是对产品进行功能和性能的测试,并且要根据测试方案和流程再利用测试工具进行,甚至还要对不同的测试工具要根据具体情况进行编写,并且还要对测试系统进行设计和维护,分析和评估测试方案可能会出现的问题。在执行测试用例后,为了能够确保开发的产品适合需求,需要进行跟踪故障。
2.1 软件测试方法
2.1.1   白盒测试   白盒测试也称为结构性测试,它是对程序的内部结构进行测试,因为牵涉到程序的内部结构,所以这种测试方法一般在公司内部进行。白盒测试的测试方法主要有逻辑覆盖法,基本路径测试法等。
2.1.2   黑盒测试   黑盒测试不需要测试人员对软件的内部结构有深层次的了解,所进行的测试着重于软件的功能面,所以也称为功能测试。黑盒测试需测试人员按照测试用例来进行,主要的测试方法有等价类划分法、边界值分析法、因果图法和场景分析法等。
2.2 软件测试过程   软件测试过程一般分为四个步骤进行:单元测试、集成测试、确认测试和系统测试。
2.2.1   单元测试   单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。单元测试通过是采用白盒测试方法进行的,使得单元内部的程序错误能够尽可能的发现。一般测试用例是分析单元的结构通过一种或者多种白盒测试方法进行,得到一些测试用例,然后再根据单元规范对原有的测试用例用黑盒方法进行补充。
2.2.2   集成测试   集成测试是指根据实际情况对程序模块采用适当的集成测试策略组装起来,对系统的接口以及集成后的功能进行正确性检验的测试工作。集成测试通常采用灰盒测试。集成测试要求每增加一个新的单元,必须对所加入的单元和已存在的单元之间的接口进行验证,看其的正确性,然后还要在新层次上进行类似单元测试的测试。集成测试的优点是:可以并行调试所有模块,需要的测试用例数目少,测试方法简单、易行。然后它也有一定的缺点:不能充分对各个模块之间的接口进行充分测试;不能很好的对全局数据结构进行测试;如果一次集成的模块数量多,集成测试后可能会出现大量的错误;即使集成测试通过,也会遗漏很多错误。
2.2.3   确认测试   确认测试是指检查产品是否满足在项目的需求阶段定义的确认准则,或者说是否具备在真实环境中使用的条件。其实确认测试就是平常所说的验收测试,这个阶段主要是检查程序所有的功能是否都已经实现。
2.2.4   系统测试   系统测试是指对完整集成后的产品和解决方案进行测试,用来评价系统对具体需求规格说明的功能和非功能的符合性的测试。系统测试是既测试产品功能也测试产品非功能的唯一测试阶段。系统测试的目的就是发现可能难以直接与模块或接口关联的缺陷,发现产品设计。体系和代码的基础问题。
3 软件测试是软件可靠性的一个重要保障
  软件测试就是为了发现程序中的错误而执行程序的过程,换句话说,软件测试就是为了软件的可靠性而进行的。只有测试通过才能使系统具有较高的可靠性。而为了使软件测试的效率得到保证,就必须使测试用例的合理和恰当得到保证,并且一定要严格按照软件生存周期的方法进行软件开发,前一阶段工作的完成是后一阶段工作开始的前提和保障,而要使前一阶段提出的解决方案更进一步具体化就必须完 成后一阶段的工作。并且要通过正式严格的技术审查和管理审查才能够说明每一阶段的结束。每一个阶段都应交出与所开发的软件完全一致的高质量的文档资料是审查的一条主要标准,只有这样才能够使得在软件开发工程结束时保证有一个完整准确的软件配置交付使用,从而软件的质量得到了保证,也就是说软件可靠性得到了提高。
参考文献
[1] 何巍. 软件可靠性与程序结构. 长春光学精密机械学院学报,2001(02).
[2] 景涛,江昌海,刘永祥,胡德斌,白成刚,蔡开元,等.?软件可靠性分析、测试与评估工具——SRATE介绍. 计算机工程与应用,2005(01).
[3] 张云岗,刘春茂. 软件测试技术浅析. 技术与市场. 2011(02).
[4] 秦春燕,姚竹亭. 嵌入式系统软件测试的研究. 机械管理开发. 2008(03).
[5] 徐海飞,赵凯旋. 软件测试与质量保证. 现代雷达. 2006(10).

上一篇:基于AHP的高校毕业生择业评估系统

下一篇:浅析数据库的发展的趋势