您好,欢迎来到六九路网。
搜索
您的当前位置:首页软件测试与可靠性研究

软件测试与可靠性研究

来源:六九路网
软件测试与可靠性研究

李英

(江西信息应用职业技术学院计算机技术系, 江西南昌 330043)

摘要:近年来,由于信息技术的飞速发展,软件产品应用到社会的各个领域,软件产品的质量就成为了人们共同关注的焦点,这也导致了软件测试在开发过程中的地位越来越重要。一个软件工程的总体目标是充分利用有限的资源,高效率、高质量地完成软件开发项目,但是不足的软件测试势必使软件带着一些潜在的错误投入运行,用户将承担更大的风险;然而软件测试是在软件投入使用之前的一个执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。软件测试是软件生命周期中一项非常重要且非常复杂的工作,对软件的质量与可靠性的保证具有极其重要的意义。本文就软件测试对软件质量的可靠性进行了阐述。

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

一、引言

软件测试的定义是在1983年由IEEE在软件工程标准术语中给出的:使用人工或自动手段来运行或评价某个系统或系统部件的过程,其目的在于检验它是否满足规定的需求;或者是弄清预期结果和实际结果之间的差别。该定义可以从三个层面上来理解,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程,如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试可以从三个层面来保证整个软件过程是高质量的。

软件可靠性测试是软件测试过程中的一个重要阶段和关键步骤。软件可靠性测试的目的是对软件的可靠性进行验证,通过排除在软件测试过程中发现的错误和缺陷,可以有效实现软件可靠性的增长。随着软件规模的不断扩大,软件功能的不断增加,软件测试的难度进一步提高,软件产品的可靠性也更加难以度量。目前,软件可靠性工程还处于不成熟的正在发展确立阶段,还没有建立起权威性的管理体系和规范,虽然建立的许多软件可靠性模型在一定程度上描述了软件可靠性,但均存在局限性,至今尚无哪一个模型能够适合广泛的应用。因此从事软件可靠性测试与评估研究是一个具有理论价值和实际意义的工作。

二、软件测试

软件测试是为了发现错误而执行程序的过程。它是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,用这些测试用例去执行程序、以发现程序错误的过程。总而言之,软件测试就是在精心控制的环境下执行程序,以发现程序中错误,给出程序可靠性的鉴定。

就测试模式而言,可分为两种:白盒测试和黑盒测试。这两种测试方向是不同的,白盒测试以深度为主;而黑盒测试以广度为主。

2.1 白盒测试

白盒测试也称为结构性测试,因为涉及到程序内部,这种测试一般在公司内部进行。白盒测试主要有两大方面:数据流程面和控制流程面。数据流程面就是测试资料进出系统的程序所经过的流程;控制流程面就是测试程序在执行过程中每个阶段的流程。 2.2 黑盒测试

黑盒测试不需要测试人员对软件的结构有深层次的了解,所进行的测试着重于软件的功能面,所以也称为功能测试。黑盒测试需测试人员按照测试用例来进行,所以设计的测试用例的好坏会直接影响到测试结果。

三、软件可靠性

3.1 软件可靠性定义

软件可靠性是程序在给定的时间间隔以及给定的环境条件下,按照设计要求,程序执行所要求的功能的能力。根据定义,软件可靠性包含了以下3个要素:给定的时间、给定的条件以及所要求的功能。

给定的时间:运行时间。

给定的条件:软件的运行环境。

所要求的功能:规格说明书上明确的任务和功能。 3.2 软件可靠性度量

软件可靠性度量是指对软件产品具有可靠性程度的定量评价。运用应用统计技术处理在系统测试和运行期间采集、观察到的失效数据,以评估该软件的可靠性。 3.3 软件可靠性测试

3.3.1 软件可靠性测试定义

在有使用代表性的环境中,为进行软件可靠性估计对该软件进行的功能测试。需要说明的是,\"使用代表性\"指的是在统计意义下该环境能反映出软件的使用环境特性。 3.3.2 软件可靠性测试的目的

(1)通过在具有使用代表性的环境中执行软件,以确认软件需求是否被实现。

(2)为进行软件可靠性估计采集准确的数据。数据采集是整个软件可靠性估计工作的基础,数据的准确与否关系到软件可靠性评估的准确度。

(3)通过软件可靠性测试找出所有对软件可靠性影响较大的错误。

3.3.3 软件可靠性测试过程 软件可靠性测试过程包括:测试用例、测试环境的准备、测试运行、可靠性数据收集、可靠性数据分析和失效纠正。

测试用例:软件可靠性测试采用的是按照软件的实际使用情况对软件进行可靠性的方法。因此,可靠性测试所用的测试用例是根据软件的实际使用情况随机选取到的。

测试环境的准备:为了得到尽可能真实的可靠性测试结果,可靠性测试应尽在真实的环境下进行,但是在很多情况下,在真实的环境下进行软件的可靠性测试很不实际,因此需要仿真的测试环境。

测试运行:即在真实的测试环境中或可靠性仿真测试环境中,用按照软件的实际使用情况生成的测试用例对软件进行测试。

数据收集:在可靠性测试过程中收集到的数据,包括输入数据、输出结果,以便进行失效分析和进行回归测试。

数据分析:主要包括失效分析和可靠性分析。失效分析是根据运行结果判断软件是否失效,以及失效的后果、原因等;而可靠性分析主要是根据失效数据,估计软件的可靠性水平。

失效纠正:如果软件运行的结果与需求不一致,则软件发生失效。通过失效分析,找到并纠正引起失效的程序中的缺陷,从而实现软件可靠性的增长。

3.3..4 软件可靠性评估

目前在软件可靠性评价技术中,受到关注的主要有两种评价方法: (1)基于软件可靠性测试的评估方法

软件可靠性测试方法通常是采用可靠性验证方法。可靠性验证测试是为了验证软件当前的可靠性水平是否满足用户的要求而进行的测试,即用户在接收软件时,确定它是否满足软件规格说明书中规定的可靠性指标。该种方法一般是在软件验收阶段进行的,在软件需求方参与的情况下实施。图3-1 介绍了基于软件可靠性测试的评估方法的步骤。

确定验证测试方案

生成测试用例

测试运行

结果分析

可靠性运行 图3-1 软件可靠性测试的评估方法

(2)基于软件可靠性建模的评估方法

软件可靠性建模评估方法一般是用可靠性增长测试对软件可靠性进行评估和预测。在可靠性增长测试中,测试以迭代的方式进行,根据测试期间跟踪到的故障,使用基于软件可靠性增长模型和统计推理的可靠性评估程序进行故障强度的估计,并用于跟踪测试的进展情况。

四、结论

本文从软件测试和软件可靠性理论入手,对现在的软件可靠性技术进行了系统的研究,并总结出现有的可靠性评估的方法。诚然,最好的软件可靠性评估方法是根据实际现场测试的方法,但是这种方法会受到许多客观条件的,其中最大的问题就是可靠性信息不足,所以应该利用构成软件各个模块的历史可靠性测试信息统计评估全系统的可靠性。这种基于模块的任务思想,可以建立起更符合系统在实际运行的情形,从而得到更精确的可靠性数据。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务