质量可靠的软件安全测试,浅议软件可靠及安全测试

[摘要]本文在介绍软件可靠性及安全性的基础上,讨论软件可靠性测试的特点、进行软件可靠性测试的基本条件,以及软件安全性测试的必要条件和常用的测试方法。并简要阐述软件测试在软件生产中是必不可少的质量保障手段。

[关键词]软件可靠性 软件安全性 基本条件 测试方法

现在的信息系统应用越来越广泛、越来越深入和重要,成为社会生活不可或缺的东西。而在信息系统中,软件的比例愈来愈大、愈来愈复杂、地位愈来愈关键。软件的可靠性是整个信息系统可靠性的重要因素,甚至是决定因素。软件的可靠性是由软件系统中潜在的漏洞情况决定的。软件漏洞在复杂的信息系统运行过程中,在一定的输入信息和运行环境下,潜在的错误有时会显露出来,对系统的运行造成严重影响。例如1998年前苏联一次载入飞行不能顺利返回地面,1996年欧洲阿丽亚娜火箭的发射失败等,都是由于系统的软件故障造成的。特别要注意的是软件往往是系统可靠性的薄弱环节,因此软件系统的可靠性需要引起有关人员的格外重视。

软件可靠性是指在规定条件下,在规定时间内,软件不引起系统失效的概率。该概率是系统输入和系统使用的函数,也是软件中存在故障的函数,系统输入将确定是否会遇到存在的故障。

软件可靠性测试指在有使用代表性的环境中,为进行软件可靠性估计对该软件进行的功能测试。需要说明的是,“使用代表性”指的是在统计意义下该环境能反映出软件的使用环境特性。软件可靠性测试一般在软件验收阶段进行,即可以在实验室也可以在现场测试运行。一般仅适用于有可靠性定量要求、且可能会影响安全和任务完成的关键软件。

软件系统的可靠性测试是软件系统可靠性质量保证过程中非常关键的一步,根据国外有关资料统计和工作实践证明,可靠性测试对提高软件的可靠性有重大作用,其他测试不能代替,但是软件可靠性测试又不能代替其他软件测试的作用。软件可靠性测试的主要目的有:

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

(2)为进行软件可靠性估计采集准确的数据。估计软件可靠性一般可分为四个步骤,即数据采集、模型选择、模型拟合以及软件可靠性评估。可以认为,数据采集是整个软件可靠性估计工作的基础,数据的准确与否关系到软件可靠性评估的准确度。

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

软件可靠性测试分为四个阶段:

1、制订测试方案

本阶段的目标是识别软件功能需求,触发该功能的输入和对应的数据域,确定相关的概率分布及需强化测试的功能。

(1)分析功能需求。分析各种功能需求,识别触发该功能的输入及相关的数据域(包括合法与不合法的两部分)。

(2)定义失效等级。判断是否存在出现危害度较大的1级和2级失效的可能性。如果这种可能性存在,则应进行故障树分析,标识出所有可能造成严重失效的功能需求和其相关的输入域。

(3)确定概率分布。确定各种不同运行方式的发生概率,判断是否需要对不同的运行方式进行分别测试。如果需要,则应给出各种运行方式下各数据域的概率分布;否则,给出各数据域的概率分布。判断是否需要强化测试某些功能。

(4)整理概率分布的信息将这些信息编码送入数据库。

2、制订测试计划

本阶段的目标是:

(1)根据前一阶段整理的概率分布信息生成相对应的测试实例集,并计算出每一测试实例预期的软件输出结果。本阶段需要注意:在按概率分布随机选择生成测试实例的同时,要保证测试的覆盖面。

(2)编写测试计划,确定测试顺序,分配测试资源。由于本阶段前一部分的工作需要考虑大量的信息和数据,因此需要一个软件支持工具,建立数据库,并产生测试实例。另外,有时预测软件输出结果也需要大量的计算,有些复杂的软件甚至要用到仿真器模拟输出结果。总之,具体实施与被测应用软件的实际功能类型有关。

3、测试

本阶段进行软件测试。需注意的是被测软件的测试环境(包括硬件配置和软件支撑环境)应和预期的实际使用环境尽可能一致,对某些环境要求比较严格的软件(如嵌入式软件)则应完全一致。测试时按测试计划和顺序对每一个测试实例进行测试,判断软件输出是否符合预期结果。测试时应记录测试结果、运行时间和判断结果。如果软件失效,那么还应记录失效现象和时间,以备以后核对。

21/212>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值