嵌入式软件运行剖面建模及测试用例生成_第1页
嵌入式软件运行剖面建模及测试用例生成_第2页
嵌入式软件运行剖面建模及测试用例生成_第3页
全文预览已结束

下载本文档

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

文档简介

1、    嵌入式软件运行剖面建模及测试用例生成航天应用中的大部分软件都是嵌入式软件,可靠性要求很高,因此,对其进行充分测试显得尤为重要。但是,嵌入式软件运行环境同硬件有着密切的关系,使得嵌入式软件测试过程非常复杂,目前存在的一些测试工具偏重于白盒测试且价格昂贵,针对黑盒测试,目前还是以人工测试为主。由于软件的复杂程度越来越高,导致人为设计测试用例数量巨大且无法保证测试充分性。而对航天软件来说,是否满足任务要求是软件的重点,因此,从用户的角度对      航天应用中的大部分软件都是嵌入式软件,可靠性要求很高,

2、因此,对其进行充分测试显得尤为重要。但是,嵌入式软件运行环境同硬件有着密切的关系,使得嵌入式软件测试过程非常复杂,目前存在的一些测试工具偏重于白盒测试且价格昂贵,针对黑盒测试,目前还是以人工测试为主。由于软件的复杂程度越来越高,导致人为设计测试用例数量巨大且无法保证测试充分性。而对航天软件来说,是否满足任务要求是软件的重点,因此,从用户的角度对软件运行剖面进行数学建模,对系统是怎样的以及它会怎样被使用做出一个定量描述,根据这些量值可以对软件中至关重要的、生命攸关的、关系到系统成败的部分给与充分的测试。通过任务剖面模型可获取测试用例和测试数据的等价类信息,自动生成测试用例,大大减轻测试人员的工作

3、量,提高了测试工作的效率和质量。本文中采用带标记的Markov链对软件运行剖面进行描述,并据此生成测试用例。1软件运行剖面软件运行剖面是用来描述软件的实际使用情况的。1993年,MUSA在IEEE发表了一篇题为软件可靠性工程中的运行剖面的文章,开创了软件运行剖面的研究,文中MUSA给出了实施软件运行剖面的一般步骤。MUSA(参考文章1)对软件分析的原则,不仅适用于嵌入式软件,对一般的应用软件也适用。首先对软件的使用者进行分类,不同类型的使用者可能以不同的方式来使用软件,根据对使用者的划分将软件划分成不同的模式剖面。其次,模式剖面又可以划分为不同的功能剖面,即每个模式下都有许多不同的功能。最后,

4、每一个功能又由许多运行组成。这些运行的集合便构成了运行剖面。上述的每一次划分都是依据概率发生的,这些概率估计主要是基于如下几个方面: 从现有系统收集到的数据, 与用户的交谈或对用户进行观察获得的信息, 原型使用与试验分析的结果, 相关领域专家的意见。定义使用概率的最佳方法是使用实际的用户数据,如来自原型系统、前一版本的使用数据;其次是由该软件应用领域的用户和专家提供的预期使用数据。软件的运行剖面是定量描述用户实际使用软件方式的有效方法。MUSA的软件划分原则简单且容易实施,只要按照步骤逐步实行就可以得出软件的比较准确的运行剖面。但是,也要看到,MUSA的软件分析原则只是提供了一个分析软件的方法

5、,在特定的应用中,有些步骤可以简化处理,根据具体的实际情况,灵活运用。2运行剖面的构造过程2.1 运行的表示方法首先来定义两种图,第一种图用来描述分解后的运行,即运行图,定义为TF=P1,P2,Pn,其中,P1,P2Pn表示构成运行的各个状态,Pi的下一个状态为Pi+1,Pi的上一个状态为Pi-1,这些状态表示的是一个任务从开始到结束的一个过程,即P1-P2-Pn。我们可以用这个图来描述经分析得到的运行。当运行图中某个状态中可以有几种不同的路径到达下一个状态时,仅用运行图就不能准确表达该运行,此时,就要用到状态细化图,状态细化图用来描述运行图中状态的内部细节,定义为一个三元组DTF= ,其中,

6、sequence=Bi|Bi=TFi, i="1"n。start为此细化图的公共开始节点,end为此细化图的公共终止节点。被测软件中所有的运行,只要划分的足够细,都可以由上面两种图准确的表示出来。2.2 将由运行图、状态细化图表示的运行剖面转化为Markov链表示将以上两种图描述的运行剖面转化成Markov链描述主要基于以下考虑:1Markov链的特点是下一个状态只和当前状态有关,而与历史状态无关,在这里就是软件的当前状态只和上一状态有关,与更早的历史状态无关,若上一状态正确,则在正确的输入下,软件的当前状态一定正确,否则,软件一定存在缺陷,这对于定位软件测试中的错误是十分

7、方便的,通过Markov链中状态转移概率,还能直观的认识到软件中各个功能的使用频率,给出一个定量的描述。2这里的Markov链描述相当于编译中的中间语言,即程序的所有处理都是基于Markov链的。使用中间语言便于程序内部处理。3当某个节点内部有需要细化的分支时,Markov链会综合内部分支,给出一个整体的综合表述。这对于产生测试用例非常方便。4.算法1:图描述转化为Markov链描述算法:该算法的输入为运行图、以及状态细化图,将运行图进行化简、并综合其中的状态细化图,将每一个运行都表示为一Markov链。对每一个运行图,调用以下算法:1首先,插入一个开始状态,读入第一个节点2对该节点进行以下判断:2.1 其次判断该节点是否有输入,若有则插入一个新状态,并设置新状态的相关属性,并生成一条消息从当前状态指向新插入的状态4若还有其他节点,则进入下一个节点,重复步骤2,否则,算法结束5. 算法2:分支遍历算法:1读入一个分支的第一个节点11对该节点进行以下判断:11.1判断该节点是否为分支节点,若是则调用分支遍历算法21.1判断该节点是否有输入,若有则插入一个新状态,设置新状态的相关属性,并生成一条消息从当前状态指向新插入的状态21若还有其他节点,则进入下一个节点,重复步骤1.131进行以下判断:4.1将当前节点置为算法开始时传入的节点,即分支的父节

温馨提示

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

评论

0/150

提交评论