一种嵌入式软件可靠性加速测试方法技术

技术编号:4016190 阅读:256 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种嵌入式软件可靠性加速测试方法,通过建立软件任务剖面,来随机抽取产生软件任务序列,作为实际可靠性测试中施加的完整而有效的测试输入;测试过程中统计收集任务特征和任务状态,测试过程达到稳定过程后进入控制过程,施加测试策略,最后对软件可靠性进行工程评估。本发明专利技术控制过程中的测试策略的提出达到了合理高效地加速可靠性测试过程的目的,也拓展了对嵌入式软件进行可靠性测试的思路。基于软件任务剖面生成的软件任务序列,可以满足对复杂的输入条件的描述和覆盖,保证了可靠性测试数据的可信性;评估方法不依赖于失效数据的假设数学分布,适用于对精度没有过高要求的嵌入式软件的可靠性评估。

【技术实现步骤摘要】

本专利技术涉及软件可靠性测试领域,具体地说,是指一种基于软件任务剖面的嵌入 式软件可靠性加速测试方法。
技术介绍
目前嵌入式软件被广泛应用于航空航天、金融、医疗、电信等各个领域。伴随着应 用的发展,嵌入式软件的可靠性问题已成为人们所关注的焦点。软件可靠性测试是实现软 件可靠性增长和对软件可靠性进行评估的有效途径。但是,从测试的角度来看,由于嵌入式软件自身的实时特性和反应特性决定了嵌 入式软件的输入受到取值大小、时序和时间响应等诸多条件的限制,输入条件十分复杂,几 乎无法覆盖到软件所有可能的输入情况;另一方面,对比嵌入式软件的一般测试,可靠性测 试的测试量更加庞大,测试效率问题也成为制约嵌入式软件可靠性测试广泛开展的瓶颈。传统的软件可靠性测试方法中,作为可靠性测试输入的可靠性测试用例的生成都 是基于穆莎(John Musa)所提出的操作剖面,这种方法简单实用,对运行之间没有相互影 响、运行相互独立的软件来说非常有效。但是这种静态的操作剖面不能完全描述嵌入式软 件的实际运行情况,目前,对嵌入式软件操作剖面的研究主要集中在对操作剖面的改进所 形成的使用剖面,使用剖面多数是采取UML的活动图和顺序图对“使用”进行建模得到的, 但是仍不能完全解决运行间存在的复杂的条件约束关系。另外,在施加用例运行测试的过 程中除了有时根据条件使用一些测试自动化工具以外并没有针对性的采取软件可靠性测 试策略来提高软件可靠性的测试效率。
技术实现思路
本专利技术为了解决嵌入式软件可靠性测试中所面临的困境,从嵌入式软件自身的特 点入手,结合使用信息,构建,使得可靠性测试用例最 大可能地满足复杂的输入条件限制,测试过程的设计在不影响评估置信度的情况下,可以 减少测试量。本专利技术提供的嵌入式软件可靠性加速测试方法,针对嵌入式软件建立软件任 务剖面,用于嵌入式软件可靠性测试用例的生成,在测试过程中,根据稳定过程和控制过程 中收集测试数据进行软件可靠性测试,实现提高软件可靠性测试效率的目的。本专利技术提供的基于软件任务剖面的嵌入式软件可靠性测试方法,在测试用例生成 上综合考虑软件自身特点和使用情况满足复杂的输入条件,在测试过程中提供控制策略提 高测试效率,从而实现对嵌入式软件进行更全面、更具有针对性的可靠性测试。本专利技术所提供的可靠性加速测试方法主要包括以下步骤第一步,建立软件任务剖面;第二步,生成软件任务序列即软件可靠性测试用例;在软件任务剖面完整和正确建立的基础上,随机抽取和生成软件任务序列,软件 任务序列是在实际可靠性测试中施加的完整而有效的测试输入。第三步,人工编写测试脚本,建立测试环境,开始测试;第四步,测试过程中统计收集测试数据(包括任务特征和任务状态),根据稳定判 据判定测试过程是否达到稳定过程;第五步,进入控制过程,也同时收集测试数据(包括任务特征和任务状态),施加 控制过程测试策略;第六步,对软件可靠性进行工程评估,结束测试。利用稳定过程和控制过程两个过程中收集到的测试数据(包括任务状态和任务 特征)给出一种近似的软件任务可靠度评估方法。另外,可以选择和使用已有的软件可靠 性评估模型,利用测试过程中收集到的失效数据对被测软件进行可靠性评估。所述的稳定过程是指当任务状态覆盖率C达到某个级别Ct时,继续增加测试用 例,软件的可靠性水平始终稳定在一个水平R,此时的软件可靠性增长十分缓慢,即认为达 到“停滞期”。其数学描述为{I Rj-Ri < ε,ε — O+I (| NtrNti — b) Λ (C > CT),j > i > 0,b > 0,CT > 0}这里,b是规定的较小的正数,Nti表示第i组测试中测试用例的个数,Ntj表示第 j组测试中测试用例的个数,Ri表示第i组测试完成后得到的软件可靠性估计,Rj表示第j 组测试完成后得到的软件可靠性估计。若两组测试的用例个数的差值接近于正数b,而对应 的可靠性估计的差值小于某个规定的正数ε,同时任务状态覆盖率C大于或等于某个事先 规定的级别Ct时,即认为已到达稳定过程。所述的控制过程是指在稳定过程的基础上的一种追加测试的过程,应用针对性的 测试策略,选择软件任务序列,加快软件缺陷的发现,从而保证被测软件在短时间内可靠性 能够进一步提高。当软件可靠性增长达到目标值,即可以终止控制过程。本专利技术与现有技术相比,具有以下明显的优势和有益效果1、本专利技术给出了一种新的软件任务序列的生成方法,可以满足对复杂的输入条件 的描述和覆盖。2、稳定过程的提出符合嵌入式软件运行的实际情况,对测试数据的收集和统计丰 富了测试过程所应收集的数据类型和种类,为进一步的可靠性评估提供基础和依据。3、控制过程中的测试策略的提出达到了合理高效地加速可靠性测试过程的目的, 也拓展了对嵌入式软件进行可靠性测试的思路。4、本专利技术提出的方法已应用在了某个航电嵌入式软件系统的工程实例中,证明了 基于软件任务剖面生成软件任务序列,稳定过程与控制过程相结合的可靠性加速测试方法 的可行性和有效性,通过了工程实例的考核和验证,该可靠性加速测试方法在工程应用方 面具有较大的价值。5、给出了任务可靠度的工程近似计算方法,它的优点是该评估计算方法不依赖于 失效数据的假设数学分布,同时基于软件任务剖面生成的软件任务序列保证了可靠性测试 数据的可信性。适用于对精度没有过高要求的嵌入式软件的可靠性评估。附图说明图1为本专利技术提供的软件可靠性加速测试方法的流程图;图2为本专利技术开发软件任务剖面的流程示意图;图3为本专利技术软件任务序列随机产生的示意图;图4为实施例中由子任务集组成的INS系统的任务剖面示意图;图5为实施例中对INS导航子任务集进行描述的示意图;图6为实施例中对INS维护子任务集进行描述的示意图;图7为实施例中任务状态覆盖率和累积覆盖率图。具体实施例方式为了便于本领域普通技术人员理解和实施本专利技术,下面通过具体实施方式对本发 明作进一步的详细和深入描述。图1为本专利技术软件可靠性加速测试方法的流程图,该方法首先建立嵌入式软件 任务剖面,利用随机方法生成软件任务序列(即可靠性测试用例),开始测试后,首先进入 到测试的第一阶段——稳定过程,随着测试的进行,根据稳定判据判断测试过程是否达到 稳定,如果否,则继续执行软件任务序列进行测试;如果是,则进入到测试第二阶段——控 制过程,在控制过程中施加相应的测试策略,对稳定过程和控制过程中收集到的测试数据 (包括任务状态和任务特征)进行统计,然后给出软件可靠性工程近似评估,从而实现整个 软件可靠性测试过程。具体实现步骤如下第一步,建立软件任务剖面,实现流程如图2所示,具体为(1)根据软件需求规格说明书和任务相关的要求,得到任务集T ;(2)进一步将任务集T划分,得到任务集T中所包含的子任务集1\。特殊情况下, 子任务集Ti中只包含一个任务,i = 1,2,3......η ;n表示任务集T中子任务集的个数。(3)分别确定各子任务集Ti之间的时序转移关系和概率转移关系;(4)按照需求和使用信息分析每个子任务集Ti中任务^(i = 1,2,.. .,η ; j = 1, 2,. . .,ni),其中i表示任务集中的子任务集的序号,j表示子任务集Ti中的任务序号,Iii表 示子任务本文档来自技高网...

【技术保护点】
一种嵌入式软件可靠性加速测试方法,其特征在于:第一步,建立软件任务剖面;第二步,根据软件任务剖面,通过随机抽取产生软件任务序列,作为实际可靠性测试中施加的完整而有效的测试输入;第三步,人工编写测试脚本,建立测试环境,开始测试;第四步,测试过程中统计收集任务特征和任务状态,根据稳定判据判定测试过程是否达到稳定过程;第五步,进入控制过程,施加测试策略,终止控制过程;第六步,对软件可靠性进行工程评估,结束测试;利用稳定过程和控制过程两个过程中收集到的测试数据计算被测软件的任务可靠度,软件任务可靠度的近似计算式如下:R=*f(d↓[i])*(*g(s↓[ij])*v(s↓[ij]))/n式中,n为任务特征的个数,m↓[i]为任务特征tc↓[i]所包含的任务状态的个数。

【技术特征摘要】

【专利技术属性】
技术研发人员:吴玉美刘志方陆民燕
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1