一种基于使用概率的嵌入式软件可靠性测试数据生成方法技术

技术编号:8907062 阅读:226 留言:0更新日期:2013-07-11 04:44
本发明专利技术公开了一种基于使用概率的嵌入式软件可靠性测试数据生成方法,其步骤为:(1)获取可靠性测试的外部参数;(2)确定各外部参数属性;将外部参数分为两类:一类是具有发生概率的参数,称为关键参数;另一类则是根据关键参数的取值情况而进行赋值的参数,称为非关键参数;所述两类参数分别通过交互的方式输入参数的相关信息,使得在测试用例中包含这些内容;(3)根据参数的范围和概率生成初始测试数据;(4)对测试数据进行调整和优化;(5)得到测试结果。本发明专利技术具有原理简单、操作简便、完整性好、适用范围广等优点。

【技术实现步骤摘要】

本专利技术主要涉及到嵌入式计算机的软件领域,特指一种根据输入参数取值使用概率自动生成可靠性测试所需测试数据集的方法。
技术介绍
针对嵌入式系统的可靠性研究始于1970年代,并在1990年代以后,随着嵌入式软件在各种高科技项目中的使用过程中所暴露出来的一系列可靠性问题而为人们所重视,并投入了大量的人力物力进行研究。直至今天,嵌入式软件可靠性已经在可靠性测试平台构建、可靠性建模、测试用例生成方法、可靠性测试的充分性和有效性等方面都有了一定的发展。“嵌入式软件的可靠性测试”是指为了验证或达到软件可靠性要求而对软件进行的测试。对于嵌入式软件的可靠性测试,一般有两种方法,第一种方法是利用全数字模拟技术实现一个集成的模拟环境,将嵌入式软件从系统中剥离出来,通过开发CPU指令、常用芯片、F0、终端、时钟等模拟器在Host上实现嵌入式软件的可靠性测试;第二种方法是建立嵌入式软件可靠性仿真测试平台,模拟被测软件的交联系统和物理输入输出,仿真被测系统真实的运行环境,保持被测系统的完整性,并在此环境下对嵌入式软件进行可靠性测试。嵌入式软件可靠性测试的研究涉及测试用例的生成、软件可靠性建模、软件可靠性测试的充分性和有效性等方面。嵌入式软件可靠性的大部分工作集中在可靠性模型方面,Jelinski, Moranda,Shooman等人对软件可靠性模型进行了研究,基本思想是通过对已知的失效数据建模,预测软件的可靠性。在现有软件可靠性建模的文献中,以论述指数失效时间的模型居多,这类模型假设有限时间内失效次数有限,具有代表性的模型包括:J-M模型、非均匀泊松过程(NHPP)模型、Schneidewind模型、Musa基本执行时间模型等。与此相对的是无限失效模型,此类模型假设软件永远不会出现无错状态,此类模型的代表包括Duane模型、Moranda提出的几何模型、对数泊松(M-O)模型等。Bayes模型不同于上述两类模型,它是在Bayes框内考察软件可靠性的增长,其最典型的代表是Littlewood-verrall模型。除了以上的建模方法之外,利用软件复杂度建模、利用人工神经网络建模、利用模糊理论建模、利用覆盖率建模等方法为扩展软件可靠性建模理论做出了有益探索。这些可靠性模型一般用于软件可靠性测试之后,对软件的可靠性指标进行评估,这些模型都以可靠性测试的结果为基础。为了实施软件可靠性测试,必须要考虑测试数据的生成方法。软件可靠性测试数据生成方法是一种基于使用的测试数据生成方法,在这方面最著名的是Musa提出的基于运行剖面的测试用例生成方法。运行剖面是测试用例生成的基础,因此运行剖面生成的研究是测试数据生成的前提。近年来,运行剖面的生成方法也得到的很大的发展,这些方法中典型的有:采用专家知识得到运行剖面的方法、采用分解的方式利用CP(Configuration Profile)和UP(Usage Profile)指导操作剖面生成的方法。将UML (标准建模语言)应用于运行剖面生成的方法也在研究中。基于软件运行剖面生成嵌入式软件可靠性测试用例一直是个难点,有人提出用功能序列剖面的方法指导嵌入式软件可靠性测试用例的生成,还有人提及采用“最小可测任务集”的方法来生成嵌入式软件可靠性测试用例。这些方法均把软件看成一系列操作的过程,生成的测试用例是一组软件运行操作序列,但如何得到能够运行这些操作序列的输入数据,依然需要根据具体嵌入式系统应用特点考虑,没有通用的方法。而针对许多嵌入式控制软件,在系统运行的开始给定了相应的参数表后,其运行一般不再被其它操作干涉,例如很多无人飞行器、巡航飞行器等,它们的输入就是一组装订参数的取值和相关传感器输入。为了使可靠性测试结果更加准确,需要以这些参数取值的概率为基础生成测试数据,同时还要满足测试数据的数量和特定取值约束,目前在业界中,还没有相应的实用方法。
技术实现思路
本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种原理简单、操作简便、完整性好、适用范围广的基于使用概率的嵌入式软件可靠性测试数据生成方法。为解决上述技术问题,本专利技术采用以下技术方案:,其步骤为:(I)、获取可靠性测试的外部参数;(2)、确定各外部参数属性;将外部参数分为两类:一类是具有发生概率的参数,称为关键参数,这里的发生概率是指参数值取某个值或在某个取值范围内随机取值的概率;另一类则是根据关键参数的取值情况而进行赋值的参数,称为非关键参数;所述两类参数分别通过交互的方式输入参数的相关信息,使得在测试用例中包含这些内容;(3)、根据参数的范围和概率生成初始测试数据;(4)、对测试数据进行调整和优化;(5)、得到测试结果。作为本专利技术的进一步改进:所述步骤(3)中初始测试数据的生成是根据参数的取值情况生成相应的参数值并加入到测试用例中的过程,参数取值有3种情况:如果参数是一个确定的值,那么测试用例集中的所有测试用例都包含这个确定的值;如果参数值是一个取值范围,那么每个测试用例都包含这个取值范围内随机生成的值;对于关键参数如果具有多个发生概率的情况,这些发生概率之和应该等于1,那么包含落在某个取值范围内随机值的测试用例个数应该是这个范围所具有的发生概率乘以测试用例总数。参数随机值的产生包括两个方面:一个方面是参数值的随机产生;另一个方面是在测试用例集合中随机获得一个测试用例以包含这个参数值。作为本专利技术进一步改进,将参数的取值范围划分为两种类型:连续型的取值范围:用上界减去下界得到取值范围的区间长度,利用随机数发生器产生一个落在这个区间长度内的值,然后用下界加上这个随机值就获得了落在取值范围内的随机值;离散型的取值范围:首先对取值范围做一个转变,用O来表示第一个元素,用I来表示第二个元素…,用η-l来表示第η个元素,以此类推,那么取值区间就可以转变为(0,η-l)这样的连续取值范围,η就是取值范围内元素的个数;利用随机数发生器产生一个(0,η-l)内的随机整数就可以随机获得取值范围内的值;在获得随机值后,接下来利用与产生离散随机值相似的方法,生成一个(0,k-l)内的随机整数,其中k是用户指定的测试用例总数,这样就随机获得了包含当前参数随机值的测试用例。作为本专利技术进一步改进在创建测试用例时要确定测试用例总数目,测试用例的最优性即确定测试用例的最小数目;首先遍历所有具有多种发生概率的关键参数,并记录下所有的发生概率,在其中找到并记录精度最高的发生概率,接下来通过发生概率最大的精度值就可以确定最小测试用例数的上限t,由于I显然不能满足多种概率发生的情况,就从2到t循环遍历自然数,若存在自然数i e ,使得i乘以每个记录下来的发生概率都为正整数,则i就是最小测试用例数。作为本专利技术进一步改进,所述步骤(4)中包括以下两个原则:4.1测试用例数目限制下的调整和优化原则;4.2边界取值的调整和优化原则;根据用户的预先设定,在取值情况所占的测试用例数目大于2的条件下会首先生成边界值,同时随机获得测试用例并加入其中;对于连续型的取值范围,边界值非常明确;对于离散型的取值范围,应规定第一个分量值和最后一个分量值为边界值。与现有技术相比,本专利技术的优点在于:(I)、有效性;对于嵌入式软件来说,具有多种发生概率的关键参数数目众多,如果要满足所有的本文档来自技高网
...

【技术保护点】
一种基于使用概率的嵌入式软件可靠性测试数据生成方法,其特征在于,步骤为:(1)、获取可靠性测试的外部参数;(2)、确定各外部参数属性;将外部参数分为两类:一类是具有发生概率的参数,称为关键参数,这里的发生概率是指参数值取某个值或在某个取值范围内随机取值的概率;另一类则是根据关键参数的取值情况而进行赋值的参数,称为非关键参数;所述两类参数分别通过交互的方式输入参数的相关信息,使得在测试用例中包含这些内容;(3)、根据参数的范围和概率生成初始测试数据;(4)、对测试数据进行调整和优化;(5)、得到测试结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:董威王戟文艳军刘万伟陈振邦陈立前徐蛟
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

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

1