一种软件可靠性测试数据生成方法及其计算机辅助工具的制作方法

文档序号:6366198阅读:234来源:国知局
专利名称:一种软件可靠性测试数据生成方法及其计算机辅助工具的制作方法
技术领域
本发明属于软件可靠性工程领域,主要涉及软件可靠性测试领域,具体地说,是指一种基于正交试验设计的软件软件可靠性测 试数据生成方法及其计算机辅助工具。
背景技术
软件可靠性是武器装备软件质量中最重要的属性,软件可靠性的高低直接影响到装备的战备完好、任务的成功完成。为了保证武器装备系统的可靠性,必须保证软件的可靠性,因此,对软件可靠性提出定量要求,并通过软件可靠性测试实现这一要求及验证要求是否达到尤为重要。软件可靠性测试的核心思想是测试输入模拟用户实际使用时的输入,构造操作剖面正是这种思想的体现。操作剖面中包含了操作的发生概率,该概率信息反映了操作在实际使用时的使用频度,因此软件可靠性测试数据是依据操作剖面生成的。工程实践经验表明,开发操作剖面是软件可靠性工程中的重要开销。该费用受产品或操作总数量的影响很大,所以需要对操作数目进行控制。Musa曾提出一个增大操作宽度的方法来减少操作,该方法首先定义一个发生概率的差异范围,然后在已有操作的基础上,合并那些输入变量相同而发生概率相差在规定范围内的操作。该方法尽管在减少操作的同时还能保证对输入空间的覆盖,但也存在一些不足该方法需要投入足够的费用对软件进行详尽的分析,得到众多操作,然后又需要增加额外的费用以分析、合并其中满足要求的操作;在最终结果方面,如果发生概率的差异范围选择不当,该方法得到的操作数目仍然可能超出范围或小于额定值。另一方面,在传统的Musa软件可靠性测试方法中,模拟用户的实际输入只落实到操作级,操作内部如何实例化采用的是随机算法,即随机选择组成操作的直接输入变量的取值水平,随机选择取值水平内部的具体取值。综上,目前在软件可靠性测试方法中存在的问题有传统Musa操作剖面的构造过程难以控制操作总数,会发生操作数量过大,导致开销巨大的情况,并且基于Musa操作剖面生成的测试数据的方法模拟用户的实际使用只具体到操作级别,不能真实有效地模拟用户实际使用软件的情况。

发明内容
本发明为了解决传统Musa操作剖面的构造过程难以控制操作总数、开销巨大,并且基于Musa操作剖面生成的测试数据的方法模拟用户的实际使用只具体到操作级别的问题,提供了一种软件可靠性测试数据生成方法及其计算机辅助工具,并构建了基于正交试验设计的操作剖面。本发明提供的一种软件可靠性测试数据生成方法,具体通过以下步骤实现步骤一、构造基于正交试验设计的软件操作剖面,包括5个步骤步骤I. I :根据任务实际情况确定操作模式,由操作模式及其对应的发生概率组成操作模式剖面。步骤I. 2 :为确定的每一个操作模式确定一个操作剖面,确定操作模式操作剖面。I)确定操作的发起者;操作的发起者包括系统的用户、外部系统和系统自身的控制器。2)对每个(操作)发起者建立一张操作“表”,如果不同发起者下的操作“表”中具有相同的操作,则只保留一个该操作,删除其余表中的该操作;创建操作表时,通常根据操作的发起者来划分任务,因为某一特定的发起者所需的专门知识通常属于某一特定的人,所以先对每个发起者建立一张表,再将这些表中的相同操作进行合并,删除重复的操作。3)确定单个操作或属性值的出现率;确定出现率时最好使用现场数据,通常通过机器可读的系统日志进行度量,这样的数据对于相同或相似的系统已经存在,如以前的版本或正在进行自动化的人工系统;如果没有,则需要自己收集。如果操作是事件驱动的,可以模拟确定了事件频率的环境;如果没有直接的数据,可以采用一些相关信息进行合理地估计;如果没有任何信息可以使用,则令所有的出现率相等。4)确定操作或属性值的发生概率;表格表示的操作的发生概率需要将单个操作的出现率除以总出现率;图形表示的属性值的发生概率则需要用属性值的出现率除以该属性的总出现率,这样计算得到的概率实际是在前一属性取某属性值下的条件概率。步骤I. 3 :确定系统操作剖面。I)列出需要测试的所有操作;剔除各操作模式操作剖面中的重复操作就能得到一个完整的操作列表。2)确定各操作或属性值的发生概率;需要根据操作在操作模式操作剖面中的发生概率和操作模式的发生概率综合计算;下面根据操作的不同表现形式分别进行讨论①对于表格表示的操作其发生概率可用下式计算
权利要求
1.一种基于正交试验设计的软件可靠性测试数据生成方法,其特征在于,通过以下步骤实现 步骤一、构造基于正交试验设计的软件操作剖面,包括5个步骤 步骤I. I :根据任务实际情况确定操作模式,由操作模式及其对应的发生概率组成操作模式剖面; 步骤I. 2 :为确定的每一个操作模式确定一个操作剖面,确定操作模式操作剖面; 步骤I. 3 :确定系统操作剖面;包括两步骤步骤I. 3. 1,列出需要测试的所有操作;步骤I. 3. 2,确定各操作或各属性值的发生概率; 步骤I. 4 :调整系统操作剖面,具体包括如下子步骤 步骤I. 4. I :判断操作数量;统计当前操作数量,如果数量等于或大于额定值就进入步骤I. 4. 4中的剖面整理,否则继续下一步; 步骤I. 4. 2 :判断系统操作剖面中是否存在用图形表示的多属性区域,如果存在进入下一步,否则进入步骤I. 4. 4; 步骤I. 4. 3:进行细分操作,包括 ①将所有多属性区域标记成未正交处理状态; ②将所有未正交处理的多属性区域和区域正交处理后剩余的操作作为候选元素,选择其中发生概率最大的元素; ③判断选择的元素是未正交处理的多属性区域还是区域正交处理后剩余的操作,如果是未正交处理的多属性区域则对其进行正交处理,否则将区域正交处理后剩余的操作从区域中抽取出来;所述的正交处理的具体过程为根据属性和属性范围选取正交表,正交表的行数就是将要增加的操作数目;预计当前操作数目加上正交表的行数得到的新的操作数目是否超过额定值,如果超过转到④执行;如果未超过,就根据正交表,从当前操作中选择发生概率之和最大的一组操作,然后将当前多属性区域标记为已正交处理状态; ④判断当前操作数量是否达到额定值,如果达到额定值就结束当前过程,否则返回②执行; 步骤I. 4. 4:进行剖面整理,通过增加必要的操作,删除重复的操作,并通过归一化处理使得操作的发生概率之和为I ; 步骤I. 5 :调整操作模式操作剖面1)检查各操作模式操作剖面,对照系统操作剖面为图形对应的多属性区域划分操作;2)检查各操作模式操作剖面,删除其在系统操作剖面中没有的操作;3)对各操作模式操作剖面的发生概率进行归一化处理; 步骤二、生成测试数据,包括如下步骤 步骤2. I :从系统操作剖面中选择一个操作; 步骤2. 2 :确定该操作的输入变量;所述的输入变量分为直接输入变量和间接输入变量,直接输入变量是直接控制操作的变量,间接输入变量指环境变量; 步骤2. 3 :划分输入变量取值水平,将对软件系统具有相同失效影响的取值划分为一组,作为该变量的一个取值水平,同时,确定各取值水平的发生概率,最后得到带有概率的变量取值水平列表; 步骤2. 4 :选择运行分类;所述的运行分类是由组成操作的输入变量的取值水平组成; 步骤2. 5:生成测试用例数据。
2.根据权利要求I所述的一种软件可靠性测试数据生成方法,其特征在于,所述的步骤I. 2具体包括4个子步骤 步骤I. 2. I :确定操作的发起者,包括系统的用户、外部系统和系统自身的控制器; 步骤I. 2. 2 :对每个发起者建立一张操作“表”并且将操作“表”合并;所述的操作“表”为表格或者图形表示; 步骤I. 2. 3 :确定单个操作或属性值的出现率; 步骤I. 2. 4 :确定操作或属性值的发生概率表格表示的操作的发生概率是将单个操作的出现率除以总出现率;图形表示的属性值的发生概率是用属性值的出现率除以该属性的总出现率。
3.根据权利要求I所述的一种软件可靠性测试数据生成方法,其特征在于,所述的步骤I. 3. 2具体分为两种情况 ①以表格表示的操作的发生概率采用下式确定
4.根据权利要求I所述的一种软件可靠性测试数据生成方法,其特征在于,所述的步骤2. 4采用一种组合测试方法来选择运行分类,具体是 步骤2. 4. I :计算所有运行分类的整体概率,并按照概率大小将运行分类进行排序,标记Q为按概率排序的尚未选择的运行分类集合; 步骤2. 4. 2 :从Q中选择一个概率最大且对覆盖有贡献的运行分类Ti,从Q中将Ti删除,将Ti所覆盖到的两两组合从UC中删除;其中,UC为选出的运行分类Tl Tn尚未覆盖到的变量取值水平间两两组合的集合; 步骤2. 4. 3 :重复步骤2. 4.2,直到UC为空; 步骤2. 4. 4 :得到一组满足两两覆盖的且发生概率最大的运行分类Tl Τη,用这一组运行分类来代表该操作,对选出的运行分类概率进行归一化处理,将运行分类本身的概率除以运行分类组的概率和,得到新的概率。
5.根据权利要求I所述的一种软件可靠性测试数据生成方法,其特征在于,所述的步骤2. 5具体包括如下步骤 步骤2. 5. I :随机抽样,选择操作模式; 步骤2. 5. 2 :进入到所选操作模式下的操作剖面中,随机抽样选择操作; 步骤2. 5. 3 :随机抽样选择操作的运行分类; 步骤2. 5. 4 :实例化运行分类;为运行分类中所有取值水平都随机抽取一个具体的值,所组成的一个运行就是本次所生成的测试用例数据。
6.基于权利要求I所述的一种软件可靠性测试数据生成方法的测试数据生成的计算机辅助工具,其特征在于,所述的计算机辅助工具包括操作模式剖面分析模块、操作剖面分析模块、操作剖面生成模块、测试数据生成模块及视图显示模块; 所述的操作模式剖面分析模块通过新建、修改以及删除操作模式进行操作模式配置,以及通过新建、修改以及删除操作进行操作配置;所述的操作剖面分析模块通过新建、修改及删除属性进行操作的属性配置;所述的操作剖面生成模块用于调整和生成系统操作剖面;所述的测试数据生成模块通过变量配置和生成模块生成可靠性测试数据;视图显示模块提供了可视化界面,显示所有的操作模式剖面、系统操作剖面和以图的形式表示的属性。
全文摘要
本发明提出一种软件可靠性测试数据生成方法及其计算机辅助工具,所述方法构造了基于正交试验设计的软件操作剖面,细化到输入变量级,根据实际使用情况,为每个输入变量的取值水平分配概率信息,并对所有的取值水平组合的概率乘积值大小进行排序,采用组合算法按概率乘积从排序的水平组合中选择出满足两两覆盖要求的水平组合,用于该操作生成可靠性测试数据。计算机辅助工具包括操作模式剖面分析模块、操作剖面分析模块、操作剖面生成模块、测试数据生成模块及视图显示模块,实现了基于正交试验设计的软件操作剖面的构造及测试数据的生成。本发明在保证可靠性测试有效的情况下,提高可靠性测试的效率,具有较好的可行性和有效性。
文档编号G06F11/36GK102629233SQ20121013034
公开日2012年8月8日 申请日期2012年4月27日 优先权日2012年1月9日
发明者付剑平, 张大健, 李秋英, 陆民燕, 黄百乔 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1