安全性关键软件的可靠性测试与安全性分析_图文_第1页
安全性关键软件的可靠性测试与安全性分析_图文_第2页
安全性关键软件的可靠性测试与安全性分析_图文_第3页
安全性关键软件的可靠性测试与安全性分析_图文_第4页
安全性关键软件的可靠性测试与安全性分析_图文_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安全性关键软件的可靠性测试与安全性分析缪峥红周新蕾航天软件评测中心北京,关麓词计算机应用安全性关键软件可靠性测试软件安全性分析一、引言载人航天系统中大量嵌入式计算机的使用使得越来越多的软件已成为系统中的关键部件软件可靠性要求太大提高,如何进行软件可靠性测试和安全性分析,从而正确地估计软件产品的可靠性和安全性已成为一个迫切需要解决的问题载人运载火箭的故障检测处理软件属于安全性关键软件该软件的主要任务是从待发段开始赢到上升段火箭、飞船分离结束前检测火箭的重要参数。判断火箭故障,出现故障时向有关系统发出逃逸指令和中止飞行指令。该软件运行的正确与否对火箭运行安全性有着致命的影响若火箭正常飞行时软件误选

2、逸将导致飞行任务失败;若故障状态下软件漏逃逸,导致逃逸失败则会危及宇航员的生命安垒因此必须最大限度地保证软件在实际工作条件下运行的正确性、可靠性与安全性作者结合载人运载火箭的故障检测处理软件,对软件的可靠性测试和安全性分析技术进行了研究,完成了对回归测试的故检软件进行软件安全性分析,并根据软件安全性分析结果,得到了软件的可靠度和危险风险指数本文针对安全性关键软件的特点提出了一种在全面测试的基础上、基于软件安全性分析的软件可稚性测试与评估方法全文分三个部分。第一部分为软件可靠性测试描述了软件可靠性浏试的特点和测试步骤并结合故障检测处理软件介绍了安全性关键软件可靠性测试的特殊方法第二部分提出了一种

3、软件安全性分析的方法,描述了安全性分析实施的技术要点和注意事项,主要从安全性分析思路、安全性分析的详细方案以及进行安全性分析应注意的同繇几方面论述第三部分介绍了可靠性测试和安全性分析的效果。二、软件的可靠性测试(一)软件可靠性测试的特点软件可靠性测试不同于硬件可靠性测试这主要是因为二者失效的原因不同硬件失效一般是由于元器件的老化引起的因此,硬件可靠性测试强调随机选取多个相同的产品,统计它们的正常运行时间正常运行的平均时间越长,刚硬件就魑可靠软件失散是由设计缺陷造成的,软件的输入决定是否会遇到软件内部存在的故障因此。使用同样一组输入反复测试软件并记录其失效数据是没有意义的在软件没有改动的情况下。

4、这种数据只是首次记录的不断重复,不能用来估计软件可靠性所以软件可靠性测试强调按实际使用的概率分布随机选择输入,并强调测试输入的覆盖度。软件可靠性测试也不同于一般的软件功能测试。主要表现在以下几点。()软件可靠性测试更强调测试输人与典型使用环境输人统计特性的一致,强诃早期对功能、输入、数据域及其相关概率的识别这使得软件可靠性测试实例的采样策略与一般的功能测试不同软件可靠性测试必须按照使用的概率分布随机地选择测试实例这样才能得到比较准确的可靠性估计也有利于找出对软件可靠性影响较大的故障()软件可靠性测试过程中还要求比较准确地记录软件的运行时间,它的输入覆盏一般也要大于普通软件功能测试的要求软件可靠

5、性测试的输入覆盖包括下述内容:重要输入变量值的覆盖相关输入变量可能组合的覆盖以确保相关输入变最的相互影响不会导致软件失效设计输入空间与实际输入空问之问区域的覆盖即不合法输入域的覆盖各种使用功能的覆盖()软件可靠性测试对使用环境的覆盖比一般的软件测试要求要高,测试时必须覆盖所有可能影响程序运行方式的物理环境对一些特殊的软件,如容错软件、实时嵌入式软件等由于在一般的使用环境下常常很难在软件中植入错误以进行针对性的测试,因此可靠性铡试时常常需要有多种测试环境()软件可靠性测试工作应放在软件测试阶段的后期。在软件综合测试完成后进行。本阶段工作的输人为:软件需求规格说明(包括软件的运行剖面)、通过综台测

6、试的软件和软件可靠性测试估计模型本阶段工作的输出为。软件可靠性测试计划、可稚性测试用例、可靠性测试记录和可靠性测试分析报告(二)软件可靠性测试的效果软件可靠性测试足软件可靠性保证过程中非常关键的一步经过软件可靠性测试的软件并不能保证该软件中残存的错误数最小,但可以保证该软件的可靠性达到较高的要求这是因为从工程的角度来看,一个软件的可靠性高不仅意味着该软件的失效率低,而且意味着一旦该软件失效。由此所造成的危害也会小一个大型的工程软件没有错误是不可能的,至少理论上还不能汪明一个大型的工程软件不出错。因此保证软件可靠性的关键不是确保软件没有错误,而是要确保软件中没有对可靠性影响较大的错误这正是软件可

7、靠性测试的目的之一软件可靠性测试的侧薰点不同于一般的软件功能测试,其测试实例设计的出发点是寻找对可靠性影响较大的故障这就使得要达到同样的可靠性要求,它比一般的功能测试更有效,所花的时问也更少。(三)安全性关键软件的可靠性测试与一般软件的可靠性浏试不同,安全性关键软件的可靠性测试有其特殊性,这表现在以下几点()许多重要的安全性关键功能的执行概率并不高,甚至很低。例如,载人运载火箭的故障检测处理软件绝大部分情况下运行于火箭正常的情况下火箭故障情况下进行进逸的功能执行概率极低如果按照软件的运行剖面进行测试,势必要投入大薰的时间测试火箭正常情况下软件的执行情况这种大最的熏复测试本身就是一种浪费()由于

8、安全性美键软件在的期经过了严格的测试和安全性分析,最后测试时常常采集不到足够软件的失效数据因此。无法使用基于失效数据的软件可靠性评估模型进行软件可靠性估计()软件安全性分析提供了大量软件设计的内部信息而常规的软件可靠性估计方法并没有使用软件设计的内部信息因此我们对安全性关键软件的可靠性测试方案进行了改进采用下述步骤对故障检测处理软件进行可靠性测试和估计。首先在获得软件的运行剖面后不按照其使用的概率分布进行测试用例设计,而是按照平均概率分布进行软件测试设计,设计中确保对各种软件运行模式下全部使用功能的各种输入组合和输入数据域的覆益(包括非法输入域的覆盏)其次,在多种测试环境下对软件进行全方位的测

9、试包括功能测试、性能测试,结构测试、单元测试等。测试中发现的问题全部进行了修改,修改后进行了完整的回归测试最后,对通过回归测试的软件进行软件安全性分析然后结合软件安全性分析结果进行可靠性估计估计方法。测试时无软件失效数据安全性分析时发现软件在某种特殊条件下会有轻微的失效分析各种失效发生的概率,得到软件的总失效率用减去软件的总失效率就可以得出软件的可靠度在下面的章节中。主要介绍我们在对载人运载火箭的故障检测处理软件进行安全性分析时所采用的方法和技术三、软件的安全性分析软件安全性分析是保证软件质量和安全性的重要手段。安全性是指系统在规定的条件和时间内,完成规定功能的过程中不引起系统发生不可接受的风

10、险的能力我们称可能导致不可接受的风险发生的异常条件为危险条件。保证航天员的安全是载人航天飞行成功的首要前提从设计角度看保证安全性的关键在于系统设计时综合考虑全部外部因索(包括各种异常条件),合理地设计、定义和分配各子系统的功能及其相互之间的接口,使得危险条件出现时系统可以处于一种安全的状态。并将可能的损失降低到最小由于操作人员的错误、硬件故障、接口问题、软件错误或系统设计缺陷等很多原因都可能导致系统进入危险状态,故系统安全性工作自顶至下涉及到系统的各个层次和各个环节而软件是系统安全性工作中的一个举足轻重的关键环节之一与硬件安全性分析不同,操作人员的错误、硬件故障、信号输入时序等很多原因都可能引

11、起软件籀出异常,从而导致系统进入危险的状态因此软件安全性分析不能只从软件本身出发。必须从系统角度进行分析,考虑软件使用过程中软件、硬件、操作人员的相互作用,分析软件可能的工作时序、适用条件、逻辑缺陷及其可能造成的不利影响不同类型、不同要求的软件需要采取不同的技术手段和管理模式这是多年的经验教训之一国外的软件安全性分析工作模式是按照他们的组织机构和工程管理模式确定的,并不完全适用于我们的工程实际和研制要求安全性分析尤其如此每一个软件的功能、规模、实现逻辑、运行环境等均具有其特殊性,每一种分析技术也有其适用条件和局限性只有针对软件的特点和设计要求,综合考虑分析要素及工程限制,选择有效的技术手段,翩

12、定合理的分析方案才可能获得满意的效果下面介绍一下软件安全性分析的内容。(一)软件安全性需求分析系统、分系统层次的相关分析分析对象故障判定模式,与故障检测处理软件相关的人员操作、系统、硬件、工作时序等。分析目的确定与软件相关的故障模式和危险发生的概率以及输入、输出信号的关键性等级分析内容:危险分析和输入、输出信号的失效与影响分析分析人员;系统总体设计人员软件需求安全性分析分析对象。软件需求规格说明分析目的。在系统和分系统级分析的基础上,针对与故障检测处理软件相关的危险和有关模式,在软件功能层次上进行更深一步地细化分析,确定软件的安全性需求和安全性关键软件特性,标识出软件顶层设计结构中存在的不安全

13、模式,进行危险风险评估分析内容软件运行模式分析、软件信息流分析软件运行模式分析;分析软件可能的运行模式及其发生的概率,确定与安全性相关的运行模式、控制运行模式转换的关键控制信号和功能分析的重点软件信息流分析包括软件功能相关分析和时间相关分析两部分内容软件功能相关分析;通过分析各种运行状态下软件执行的功能、数据流和控制漉从逻辑上确定与系统安全直接相关的关键功能和间接相关的重要功能并针对这些功能可能的失效模式进行分析提出纠正措施或估计出发生的概率软件时间相关性分析主要根据软件功能的执行方式和触发条件分析软件功能的执行时序及可能存在的失效模式,提出纠正措施或估计出发生的概率分析人员:软件安全性分析员

14、和系统总体设计人员软件安全性需求软件安全性需求应包括四部分内容。软件危险排序、软件安全性芙键功能和重要功能表、软件设计要求、软件验证要求由于本安全性分析工作在软件完成后进行,因此未给出软件设计要求(二)软件代码安全性分析分析对象软件潦代码分析目的:在前述工作的基础上,分析代码设计的正确性和合理性、适用条件和可能存在的不安全模式分析内容;代码基本分析(包括对代码的数据、接口、逻辑和使用资源分析),运行状态分析、临界条件分析和测试覆盖分析。分析人员;软件安全性分析员代码基本分析代码数据分析:变量定义分析、变微初值分析、变量计散清零分析、变量限幅分析、变餐使用分析(对不同类型的变量使用正确的操作指令

15、)代码接口分析。软件输入地址和判断逻辑分析、软件输出地址和输出时序分析、硬件初始化分析、中断嵌套分析、软件内部接口分析以及软件堆栈操作和数据公共区使用分析使用资源分析,对软件内存使用分配进行分析确保无资源使用冲突。代码逻辑分析。模块算法分析软件功能触发数据条件与时序分析计算累计误差分析,浮点计算上溢、下溢可能性分析运行状态分析运行状态细化分析对软件顶层的运行状态进一步细化,绘制下层的运行状态转换图,并对中间状态的影响进行分析。状态初值分析,针对顶层与安全性相关的软件关键模式,逐个分析可能的状态初值及其不利影响临界条件分析缶界条件分析包括下述内容。模拟量实际故障、报警域;分析转换误差和转换计算误

16、差对输入域的影响中断对巡检采样周期的影响分析中断嵌套对采样周期的最大影响误差最大堆栈深度,时钟漂移误差影响计算有效位数分析输入抗干扰分析;包括模拟量输人、开关量巡榆输入、中断结合巡检输入、中断输入抗干扰分析测试覆盖分析测试覆盖分析包括软件功能测试覆盖(包括输入组合和输人数据域覆盖)、性能测试覆盖和结构测试覆盖分析(三)软件安全性评价按照叫危险分析方法和程序和系统的可靠性要求定义软件的危险可能性等级,并根据危险发生的概率得到软件的危险风险指数。四、效果通过对载人运载火箭故障检测处理软件的安全性系统分析和软件安全性需求分析,我们对软件各个状态下执行的功能、可能的失效模式及其发生概率有了较准确的估计经过对软件全面的测试验证,并采用软件可靠性、安全性分析技术对软件代码的接口、数据、实现逻辑、运行模式、使用资源、临界条件和测试覆盖进行全面分析我们确认软件实现过程中未引入新的影响系统安全性的因素软件需求安全性分析所获得的危陵发生概率有效在此基础上,给出了软件危险的风险指数和软件的可靠度专家评审时对我们课题组的工作给予了较高的评价,认为课题组采用的软件可靠性和蜜全性分析与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论