可信软件分析与测试研究现状及发展趋势

时间:2022-05-04 06:46:25

可信软件分析与测试研究现状及发展趋势

摘 要:本文通过对可信软件的现状和发展趋势研究,从可信软件可靠性分析技术、软件可信性评估技术、软件可信性测试与验证技术等方面详细分析了软件可信的国内外研究现状和发展趋势。

关键词:可信软件;分析;评估;测试

中图分类号:TP311.52 文献标识码:A

1 引言

在当代的信息社会中,计算迅猛发展,随着计算机的广泛应用,计算机软件已经渗透到国防建设与国民经济的各个领域,并且承担着举足轻重的作用。软件为人们提供了新的功能和更便利的操作,并且在信息基础设施方面起着越来越重要的作用。现在人们的工作和生活是越来越依赖软件。然而,软件的设计现状却并不叫人十分满意,人们越来越重视软件的正确性、可靠性、安全性、完整性、可用性等这些可信性质,如何设计开发出高可信软件越来越引起软件使用和设计人员的重视。

2 可信软件的定义

可信:当一个实体按给定目标实现时,其行为和结果是附和预期的。

可信软件:如果软件服务效果总是符合用户的预期目标,即使在软件运行过程中有一些特殊情况出现,这样的软件就叫做可信软件。

这里所说的特殊情况包括:

(1)硬件环境(计算机、网络)发生故障

(2)底层软件(操作系统、数据库)出现错误

(3)其他软件(病毒软件、流氓软件)对其产生影响

(4)出现有意(攻击)、无意(误操作)的错误操作

3 软件可信与软件质量的区别

软件可信要满足的功能有下面几个方面:

可用功能:正确、不少、不多

可靠性(容错):高

安全性(机密性、完整性):高

响应时间(从输入到输出):小

维护费用(监测、演化):小

软件质量就是“所开发出的软件与需求分析中的客户的需求相一致的程度”。具体地说,软件质量是设计出来的软件符合需求分析中明确说明的功能和性能需求、文档中明确描述的开发标准,以及所有专业开发的软件都应具有的隐含特征的程度。影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。[1]

对软件可信的定义比之软件质量更强调用户的感受,强调不易受攻击性尤其是因内在缺陷导致的;结果是可预期的;保证的计划的和系统的过程和产品依照要求和标准程序。因此与强调功能完备无二义性的软件测试评估是有区别的。

4 国内外软件可信性技术研究现状及发展趋势

本节从软件可靠性分析技术、软件可信性评估技术、软件可信性测试与验证技术等方面分析软件可信的国内外研究现状和发展趋势。

4.1 软件可信性分析技术

在SFMEA研究方面,SFMEA(System Failure Mode and Effects Analysis),国内常称SFMEA为“软件失效模式和影响分析”,国外是在1979年提出了SFMEA的概念。在此后并没有引起足够的重视和大量的研究,近10年来,SFMEA的研究和应用才有逐步增多的趋势,并且大多都集中在嵌入式软件方面。在一些关键安全领域进行了相应的应用,如:医疗仪器、环境监测、军用产品、电子行业、汽车行业、航空领域等。

SFMEA的工作原理是利用“预想”和“回想”的方式对软件系统的各个组成部分中存在的和潜在的失效模式进行“穷举”测试,以识别出失效位置及原因,并逐一进行分析和研究故障模式所造成的影响,给出预防和改进措施,以便于技术人员对系统进行优化改进。总之,SFMEA是一种定性的逻辑推理方法。

在SFMEA方面,虽然能用计算机辅助进行一些数据收集、数据存储和一些简单的数学计算,但是很多的分析工作还需人工完成。要想加强分析工作,还要在SFMEA的算法上进行更深入细致的研究。尤其对失效模式和失效影响推理技术这些方面进行更深入的探讨。国内外在这方面的研究已经展开,在数理仿真技术、专家系统和因果推理方法等技术方面都有了初步的研究。在今后的研究中,我们要加大在SFTA的计算机辅助方法、开发相应的SFTA辅助工具方面的研究,提高SFTA的分析效率。对于嵌入式软件可靠性分析方面,尚未出现较为完整、成熟的可靠性分析方法。这也是未来软件可信性分析技术研究的一个重要的研究方向和发展趋势。[2]

4.2 软件可信性评估技术

目前,国内外关于软件可信性评估方法还处于研究阶段,成熟的软件可信性评估方法几乎没有。但是对相关领域进行分析总结,可以看出软件可信性评估发展趋势有以下几个方面:

(1)定性与定量相结合的综合评估方法

目前国内外已经有人提出了这种综合评估方法的想法和思路,但是研究还只局限在理论研究阶段。如何建立软件可信性评估体系,如何进行定性评估操作,如何准确有效进行定性评估等具体实施方案的研究还行少。

(2)基于灰盒测试的软件可信性评估方法

灰盒测试方法是指结合白盒测试和黑盒测试得到的综合测试方法。白盒测试是分析程序的内部结构,对其内部结构和代码进行测试。黑盒测试不考虑程序的内部结构,只考虑其外部功能是否符合需求规格说明书的要求。这两类方法各有侧重,不能简单用一种方法完全取代另一种方法,但两者又各有缺点,所以只有将两者有效结合,即形成“灰盒测试”,才能使两者有效结合,各取所长,使测试效果更加有效完善。[3]

(3)基于证据的可信软件过程评估方法

基于证据的可信软件过程评估方法(EB-TSPAM),EB-TSPAM方法以TPMF为支撑和保障手段,以通过软件过程可信度量模型度量得到的可信性度量数据为输入,在可信证据模型的支持下,通过特定的算法将证据数据转换为可直接用于软件过程可信性评估的评估证据,并最终基于评估证据对软件过程进行可信性评估。[4]

目前国内外对于软件可信性评估技术还处在研究阶段,有的还仅仅停留在理论研究阶段,能够真正用来验证软件可信性评估技术的实施方案几乎还没有。但是软件可信性评估技术的研究是软件可信性研究领域的一个重要发展趋势。

4.3 软件可靠性测试与验证技术

可信软件测试是指在软件运行时为发现软件中的错误而执行的一系列操作,目的是为了保证软件的可信性。软件测试的方法目前已经有很多种,使用最广泛的软件测试方法是错误注入(Fault Injection)测试,根据注入错误类型不同又分为很多种形式。主要有以下几种形式:

(1)基于硬件故障的注入:数字电路的管脚线故障注入、设备故障注入、通讯故障注入等。

(2)基于软件故障的注入:基于软件高级故障注入、内存、CPU、I/O故障注入等。

(3)基于防真故障的注入:用不同数据测试不同环境下的软件可信性。

因为软件的运行是动态的,所以很难用静态的测试方法完全有效的对软件可信性进行测试,可信软件的动态测试越来越引起人们的关注和重视。动态测试又分为随机测试和选择性测试两大类。随机测试根据软件输入数据的概率分布,随机选择测试数据,这种方式的缺点是工作量大且有盲目性。选择性测试是有针对性选择测试数据。这种方法缺点是测试不够全面,没有考虑中间结果,导致测试效率不高。动态测试是可信软件测试中最重要的一部分,但又是难度最大的一种方法,其是软件测试未来发展的一个趋势。[5]

5 结束语

本文结合可信软件的特点,从软件可靠性分析技术、软件可信性评估技术、软件可信性测试与验证技术等方面分析软件可信的国内外研究现状和发展趋势,因为当今是信息社会,软件在信息基础设施中的作用越来越重要,而信息基础设施与人们生活息息相关,所以这就要求我们在软件系统开发和运行过程中一定要重视软件的可信性,这是当今软件行业乃至整个社会都在关注的一个课题。

参考文献

[1] 阮镰,陆民燕.软件可靠性工程的研究现状和发展趋势[J].中

国航空学会2005年学术年会论文,2005:3-5.

[2] 王环环,詹永照,陈锦富.可信软件分析与测试研究进展[J].计

算机应用研究,2011(7):34-35.

[3] 陈楠,等.可执行可信软件安全性分析技术研究[J].计算机工

程设计,2010(12):23-25.

[4] 万亚东,朱怀宏,李波.软件架构与可信软件开发[J].江苏科技

信息,2010(2):40-43.

[5] 陈锦富,卢炎生,谢晓东.一种采用接口错误注入的构件安全

性测试方法[J].小型微型计算机系统,2010,31(6):1090-1096.

作者简介:

刘俊丽(1972-),女,硕士,副教授.研究领域:系统安全、软件

工程.

陈双喜(1980-),男,硕士,讲师.研究领域:XMPP、SBN.

上一篇:IDC运营管理平台的设计与研究 下一篇:TDD—LTE与LTE FDD区别以及融合问题浅析