CN102629233B - 一种软件可靠性测试数据生成方法及其计算机辅助工具 - Google Patents

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

Info

Publication number
CN102629233B
CN102629233B CN201210130343.0A CN201210130343A CN102629233B CN 102629233 B CN102629233 B CN 102629233B CN 201210130343 A CN201210130343 A CN 201210130343A CN 102629233 B CN102629233 B CN 102629233B
Authority
CN
China
Prior art keywords
probability
happening
profile
test data
operator scheme
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210130343.0A
Other languages
English (en)
Other versions
CN102629233A (zh
Inventor
李秋英
付剑平
张大健
黄百乔
陆民燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tianhang Changying Technology Co.,Ltd.
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201210130343.0A priority Critical patent/CN102629233B/zh
Publication of CN102629233A publication Critical patent/CN102629233A/zh
Application granted granted Critical
Publication of CN102629233B publication Critical patent/CN102629233B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种软件可靠性测试数据生成方法及其计算机辅助工具,所述方法构造了基于正交试验设计的软件操作剖面,细化到输入变量级,根据实际使用情况,为每个输入变量的取值水平分配概率信息,并对所有的取值水平组合的概率乘积值大小进行排序,采用组合算法按概率乘积从排序的水平组合中选择出满足两两覆盖要求的水平组合,用于该操作生成可靠性测试数据。计算机辅助工具包括:操作模式剖面分析模块、操作剖面分析模块、操作剖面生成模块、测试数据生成模块及视图显示模块,实现了基于正交试验设计的软件操作剖面的构造及测试数据的生成。本发明在保证可靠性测试有效的情况下,提高可靠性测试的效率,具有较好的可行性和有效性。

Description

一种软件可靠性测试数据生成方法及其计算机辅助工具
技术领域
本发明属于软件可靠性工程领域,主要涉及软件可靠性测试领域,具体地说,是指一种基于正交试验设计的软件软件可靠性测试数据生成方法及其计算机辅助工具。
背景技术
软件可靠性是武器装备软件质量中最重要的属性,软件可靠性的高低直接影响到装备的战备完好、任务的成功完成。为了保证武器装备系统的可靠性,必须保证软件的可靠性,因此,对软件可靠性提出定量要求,并通过软件可靠性测试实现这一要求及验证要求是否达到尤为重要。
软件可靠性测试的核心思想是测试输入模拟用户实际使用时的输入,构造操作剖面正是这种思想的体现。操作剖面中包含了操作的发生概率,该概率信息反映了操作在实际使用时的使用频度,因此软件可靠性测试数据是依据操作剖面生成的。
工程实践经验表明,开发操作剖面是软件可靠性工程中的重要开销。该费用受产品或操作总数量的影响很大,所以需要对操作数目进行控制。Musa曾提出一个增大操作宽度的方法来减少操作,该方法首先定义一个发生概率的差异范围,然后在已有操作的基础上,合并那些输入变量相同而发生概率相差在规定范围内的操作。该方法尽管在减少操作的同时还能保证对输入空间的覆盖,但也存在一些不足:该方法需要投入足够的费用对软件进行详尽的分析,得到众多操作,然后又需要增加额外的费用以分析、合并其中满足要求的操作;在最终结果方面,如果发生概率的差异范围选择不当,该方法得到的操作数目仍然可能超出范围或小于额定值。
另一方面,在传统的Musa软件可靠性测试方法中,模拟用户的实际输入只落实到操作级,操作内部如何实例化采用的是随机算法,即随机选择组成操作的直接输入变量的取值水平,随机选择取值水平内部的具体取值。
综上,目前在软件可靠性测试方法中存在的问题有:传统Musa操作剖面的构造过程难以控制操作总数,会发生操作数量过大,导致开销巨大的情况,并且基于Musa操作剖面生成的测试数据的方法模拟用户的实际使用只具体到操作级别,不能真实有效地模拟用户实际使用软件的情况。
发明内容
本发明为了解决传统Musa操作剖面的构造过程难以控制操作总数、开销巨大,并且基于Musa操作剖面生成的测试数据的方法模拟用户的实际使用只具体到操作级别的问题,提供了一种软件可靠性测试数据生成方法及其计算机辅助工具,并构建了基于正交试验设计的操作剖面。
本发明提供的一种软件可靠性测试数据生成方法,具体通过以下步骤实现:
步骤一、构造基于正交试验设计的软件操作剖面,包括5个步骤:
步骤1.1:根据任务实际情况确定操作模式,由操作模式及其对应的发生概率组成操作模式剖面。
步骤1.2:为确定的每一个操作模式确定一个操作剖面,确定操作模式操作剖面。
1)确定操作的发起者;操作的发起者包括系统的用户、外部系统和系统自身的控制器。
2)对每个(操作)发起者建立一张操作“表”,如果不同发起者下的操作“表”中具有相同的操作,则只保留一个该操作,删除其余表中的该操作;创建操作表时,通常根据操作的发起者来划分任务,因为某一特定的发起者所需的专门知识通常属于某一特定的人,所以先对每个发起者建立一张表,再将这些表中的相同操作进行合并,删除重复的操作。
3)确定单个操作或属性值的出现率;确定出现率时最好使用现场数据,通常通过机器可读的系统日志进行度量,这样的数据对于相同或相似的系统已经存在,如以前的版本或正在进行自动化的人工系统;如果没有,则需要自己收集。如果操作是事件驱动的,可以模拟确定了事件频率的环境;如果没有直接的数据,可以采用一些相关信息进行合理地估计;如果没有任何信息可以使用,则令所有的出现率相等。
4)确定操作或属性值的发生概率;表格表示的操作的发生概率需要将单个操作的出现率除以总出现率;图形表示的属性值的发生概率则需要用属性值的出现率除以该属性的总出现率,这样计算得到的概率实际是在前一属性取某属性值下的条件概率。
步骤1.3:确定系统操作剖面。
1)列出需要测试的所有操作;剔除各操作模式操作剖面中的重复操作就能得到一个完整的操作列表。
2)确定各操作或属性值的发生概率;需要根据操作在操作模式操作剖面中的发生概率和操作模式的发生概率综合计算;下面根据操作的不同表现形式分别进行讨论:
①对于表格表示的操作其发生概率可用下式计算:
P O i , S = Σ j ( P O i , M j P M j ) - - - ( 1 )
其中,
Figure BDA0000158461790000022
代表操作Oi在系统操作剖面S中的发生概率,代表Oi在操作模式Mj中的发生概率,
Figure BDA0000158461790000024
代表操作模式Mj的发生概率。Mj表示第j个操作模式,Oi表示第i个操作。
②图形表示的操作的发生概率的确定分为两步:
首先确定整个图形的发生概率,然后确定图形中各属性值的发生概率。整个图形的发生概率的计算方法与表格表示的操作的发生概率计算方法相似,如式(2)所示:
P G i , S = Σ j ( P G i , M j P M j ) - - - ( 2 )
其中
Figure BDA0000158461790000032
代表图形Gi在系统操作剖面S中的发生概率,
Figure BDA0000158461790000033
代表Gi在操作模式Mj中的发生概率,
Figure BDA0000158461790000034
代表操作模式Mj的发生概率。Gi表示第i个图形。
确定图形中各属性值的发生概率如式(3)所示:
P p k , S = Σ j ( P p k , M j P G i , M j P M j P G i , S ) - - - ( 3 )
其中
Figure BDA0000158461790000036
代表属性值pk在系统操作剖面S中的某一发生概率,
Figure BDA0000158461790000037
代表pk在操作模式Mj中对应的发生概率,
Figure BDA0000158461790000038
是概率
Figure BDA0000158461790000039
的加权因子。pk表示第k个属性值。
步骤1.4:调整系统操作剖面。
1)判断操作数量;统计当前操作数量,如果数量等于或大于额定值就进入剖面整理,否则继续下一步。统计操作数量时,图形表示的操作不按路径计算而把其表示的整个多属性区域作为一个操作计数。
2)判断是否存在多属性区域;如果系统操作剖面中存在用图形表示的多属性区域就进入下一步,否则进行剖面整理。
3)细分操作;细分操作的具体步骤如下:
第①步将所有多属性区域标记成未正交处理状态;
第②步将所有未正交处理的多属性区域和区域正交处理后剩余的操作作为候选元素,选择其中发生概率最大的元素进行后续分析;
第③步判断选择的元素是未正交处理的多属性区域还是区域正交处理后剩余的操作,如果是未正交处理的多属性区域则对其进行正交处理,否则将选择的操作从区域中抽取出来;
第④步判断当前操作数量是否达到额定值,如果达到额定值就结束当前过程,否则返回第②步。
其中第③步中正交处理的具体过程如下:根据属性和属性范围(取值)选取合适的正交表,正交表的行数就是将要增加的操作数目;预计新的操作数目(当前操作数目加上正交表的行数)是否超过额定值,如果超过就跳到第④步;如果未超过,就根据正交表从当前操作中抽取新的操作集合。在不同的因素水平表下,即使从同一张正交表抽取出的操作集合也不会相同,从中选择发生概率之和最大的一组操作;将当前多属性区域标记为已正交处理状态。
统计操作数目时,未正交处理的多属性区域固然作为一个操作计数,正交处理或抽取操作后剩余的区域也作为一个操作计数。细分操作结束时,这些区域都作为操作列在系统操作剖面中。
4)整理剖面;分析人员增加必要的操作,删除重复的操作,进行剖面整理,并通过归一化处理使得操作的发生概率之和为1。
步骤1.5:调整操作模式操作剖面。具体调整方法为:
1)检查各操作模式操作剖面,对照系统操作剖面为图形对应的多属性区域划分操作;
2)检查各操作模式操作剖面,删除其在系统操作剖面中没有的操作;
3)对各操作模式操作剖面的发生概率进行归一化处理,将某一操作的发生概率除以当前该操作所在的操作模式操作剖面中所有操作的发生概率之和得到新的发生概率。
步骤二、测试数据生成。
步骤2.1:选择操作。从系统操作剖面中选择一个特定的操作,作为分析的对象。
步骤2.2:确定操作的输入变量。输入变量又分为直接输入变量和间接输入变量。直接输入变量是直接控制操作的变量,间接输入变量常常指环境变量,指定操作运行的环境。直接输入变量常常容易分析出来,如系统使用者通过鼠标、键盘或其它外接设备的直接输入等。一些隐蔽但重要的间接输入变量往往被忽略,如系统不同时段的负载情况等,那么时间便成为这种隐蔽但重要的间接输入变量,如果忽略,对操作的测试就不够充分。因此,分析操作的输入变量时要对操作的使用过程、使用的软硬环境都作考虑,尽量避免遗漏间接输入变量。
步骤2.3:划分输入变量取值水平。将对于实际的软件系统具有相同失效影响的取值划分为一组,作为该变量的一个取值水平,同时,还需要确定各取值水平的发生概率,最后得到的是带有概率的变量取值水平列表。
步骤2.4:选择运行分类。所述的运行分类是由组成操作的输入变量的取值水平组成。使用一种组合测试方法来选择运行分类,组合测试方法为:
步骤2.4.1:计算所有运行分类的整体概率,并按照概率大小排序,将按概率排序的尚未选择的运行分类集合记为Q;
步骤2.4.2:从Q中选择一个概率最大且对覆盖有贡献的运行分类Ti,从Q中将Ti删除,将Ti所覆盖到的两两组合从UC中删除;假设运行分类T1~Tn为已经选出的运行分类;UC为选出的运行分类T1~Tn尚未覆盖到的变量取值水平间两两组合的集合;
步骤2.4.3:重复步骤2.4.2,直到UC为空。
步骤2.4.4:最终得到一组满足两两覆盖的且发生概率最大的运行分类T1~Tn,用这一组运行分类来代表该操作。由于它只是整个运行分类的一部分,需对选出的运行分类概率进行归一化处理,将运行分类本身的概率除以运行分类组的概率和,得到新的概率。
步骤2.5:生成测试数据。
步骤2.5.1:随机抽样,选择操作模式;不同的操作模式下都有相应的操作剖面。同一个操作可能处于不同的操作模式下的操作剖面中,只是它们在剖面中的概率可能不同。不同的操作模式都有相应的发生概率,且概率具有归一性。随机抽样,根据概率信息选择操作模式。
步骤2.5.2:进入到所选操作模式下的操作剖面中,随机抽样选择操作;在步骤2.5.1中选择了操作模式后,进入到特定操作模式下的操作剖面中。剖面中操作都有相应的概率信息,且概率具有归一性。随机抽样,根据概率信息选择此次生成用例时考虑的操作。
步骤2.5.3:随机抽样选择操作的运行分类;在选择运行分类中选出了代表该操作的运行分类组,组中各运行分类都具有相应的概率信息,且经过调整后概率具有归一性。随机抽样,根据概率信息选择运行分类。
步骤2.5.4:实例化运行分类;运行分类是由组成操作的输入变量的取值水平组成,每个取值水平代表了一组变量的取值,因为水平中每个取值对于软件失效来说具有相同的影响,水平内任意取值都可高概率地代表整个水平,所以只需在水平内等概率随机抽取一个取值便可。为运行分类中所有取值水平都随机抽取一个具体的值,便组成了一个运行,这便是该次所生成的测试用例。
本发明还提供了一种计算机辅助工具,所述的计算机辅助工具包括:操作模式剖面分析模块、操作剖面分析模块、操作剖面生成模块、测试数据生成模块及视图显示模块。
所述的操作模式剖面分析模块通过新建、修改以及删除操作模式进行操作模式配置,以及通过新建、修改以及删除操作进行操作配置;所述的操作剖面分析模块通过新建、修改及删除属性进行操作的属性配置;所述的操作剖面生成模块用于生成系统操作剖面和调整系统操作剖面;所述的测试数据生成模块通过变量配置和生成模块生成可靠性测试数据;视图显示模块提供了可视化界面,显示所有的操作模式剖面、系统操作剖面和以图的形式表示的属性。
本发明与现有技术相比,具有明显的优势和有益效果:
(1)本发明提出的基于正交试验设计的软件可靠性测试数据生成方法不仅将对用户使用的模拟落实到输入变量级别,更加彻底地贯彻了软件可靠性测试的核心思想;同时它采用了两两组合算法来选择运行分类,使得选出的运行分类达到了两两组合的100%覆盖,使得选出的测试用例能达到更大的覆盖率。在保证可靠性测试有效的情况下,提高可靠性测试的效率,为各种武器装备软件可靠性测试提供有效的方法。
(2)本发明提出的基于正交试验设计的软件可靠性测试数据生成方法是在国内外软件测试用例生成方面的基础上、向软件可靠性测试领域的一次拓展,并且实现了从理论阶段到实践环节的拓展。
(3)通过实例应用,展示了本发明具有较好的可行性和有效性,且方法直观、意义明确,便于工程人员的理解和实际操作。
附图说明
图1为本发明实施例中“新建文档视图框架”图形表示的部分操作示意图;
图2为本发明实施例中某一多属性操作的示意图;
图3为本发明实施例中调整后的系统操作剖面的示意图;
图4为本发明实施例中配置变量取值水平的示意图;
图5为本发明基于正交实验设计的软件可靠性测试数据生成方法流程图;
图6为本发明基于正交试验设计的软件可靠性测试数据生成的计算机辅助工具结构图;
其中:
1-操作模式剖面分析模块,2-操作剖面分析模块,3-操作剖面生成模块,
4-测试数据生成模块,5-视图显示模块。
具体实施方式
以下结合附图和实施例对本发明进行详细说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明提供的基于正交试验设计的软件可靠性测试数据生成方法,提出了将模拟用户的实际使用细化到输入变量级,在分析输入变量的取值水平时,根据实际使用情况,为每个取值水平分配概率信息,概率大小反映的是输入时输入值出现的频度。并对所有的取值水平组合的概率乘积值大小进行排序,采用组合算法按概率乘积从排序的水平组合中选择出满足两两覆盖要求的水平组合,作为该操作生成可靠性测试数据的依据。
本发明构建了基于正交试验设计的软件操作剖面,该操作剖面的构造是基于正交试验设计方法生成可靠性测试数据的基础,该软件操作剖面构造方法在Musa方法的基础上发展而来,将控制操作数量结合到操作剖面的开发过程中,以实现用较低的费用开发出满足要求的操作剖面。本发明以控制操作数量为目标、兼顾发生概率和输入空间分布的操作剖面开发方法,以额定值限制操作数量,依照区域的发生概率大小顺序进行分析,并且在可能的情况下使用正交试验设计方法在区域内均匀地选取操作。
本发明提供的基于正交试验设计的软件操作剖面构造方法的原理为:
完整的操作剖面开发过程分为确定操作模式剖面、确定操作模式操作剖面、确定系统操作剖面、调整系统操作剖面和调整操作模式操作剖面5个步骤。
操作模式是系统使用的独特模式,并且/或者是需要单独测试的环境条件的集合。更多的操作模式可以增加测试的真实性,但同时也增加了准备和进行系统测试的工作量和费用。一个好的解决方法是首先考虑可确定单个操作模式的因素的所有可能的组合,然后把这些结果限制在最常出现和最关键的操作模式上。
需要为已确定好的每个操作模式都建立一个操作剖面,称为操作模式操作剖面。不同操作模式操作剖面中可能出现相同的操作,但其发生概率未必相同。
操作模式操作剖面没有要求选择操作是用表格表示还是用图形表示。在对每个发起者建立操作“表”的过程中,如果操作可用很少的属性表示(1个或2个),就用表格表示;如果操作的属性很多,就将具有相同属性的操作用图形表示。这样建立的操作剖面既可能出现表格表示也可能出现图形表示:对于表格表示的操作其发生概率就是一个值;对于图形表示的操作,在没有进行剖面调整之前本发明只把它当作一个操作(类似的处理方式下面会多次提到),其发生概率也同其它操作一样用一个值来表示。
系统操作剖面是指综合需要测试的所有操作模式下的操作及其发生概率建立的剖面。可以看出,由于在操作模式操作剖面中只把图形对应的多属性区域当作一个操作处理,这样建立的剖面虽然操作数目较少但用于可靠性测试时却有些粗略。在资源允许的情况下完全可以对这些多属性区域进行细分,从而在得到更多操作的同时使得操作剖面更加准确。根据资源控制操作数目不能只针对一个操作模式下的操作剖面,除非当前只需对一个操作模式进行测试,在需要测试的操作模式多于一个的情况下就必须对这些剖面进行综合考虑。
系统操作剖面确定后,考虑资源影响需要对操作数量进行控制并调整系统操作剖面。对系统操作剖面进行一系列的调整后,操作情况可能发生很多改变:有些操作被删除,有些操作被细分为更小的操作。为了保持各剖面中操作的一致性,还需调整各操作模式操作剖面,调整后的操作剖面可用于准备测试数据,其中系统操作剖面用于选择需要进行分析的操作,操作模式操作剖面用于生成测试数据。
本发明提供的基于正交试验设计的软件可靠性测试数据生成方法的原理为:
测试数据准备过程分为选择操作、确定操作的输入变量、划分输入变量取值水平、选择运行分类和生成测试数据5个步骤。
操作可看成是带有时序和条件的输入变量序列的集合,变量不同取值间的组合构成不同的操作实例,即运行。有些变量的不同取值对于软件失效来说是等效的,故可对该输入变量的输入值域划分不同的取值水平,相同水平内的取值执行相同的代码路径,具有相同的失效影响。
根据运行分类的概念,组成操作的变量的取值水平间的组合构成了一个运行分类,操作运行分类的数目为组成操作的输入变量取值水平数的全组合。软件可靠性测试数据要求尽量符合用户的实际使用情况,因此在实例化操作为运行时需要考虑输入变量取值的分布情况。而作为软件测试来说,要求测试尽可能大地覆盖软件中的逻辑组合,以尽可能多地暴露软件中的缺陷。
本发明将两者结合起来考虑。借鉴正交试验设计方法低组合、高覆盖的优点,又考虑到正交表在使用时缺乏灵活性以及正交表资源的有限性,用两两组合的组合算法来代替正交表,并考虑输入变量取值水平的概率,选出发生概率最大的满足两两组合要求的运行分类,得到测试时实例化操作所依据的运行分类组。依概率从运行分类组中选择一个运行分类作为实例化该操作的依据。最后为选出的运行分类中的每一个变量水平选取一个具体值,将其实例化为一个可靠性测试用例。
实施例:下面通过以某超市的信息管理系统软件为例,并结合图5对本发明提供的基于正交试验设计的软件可靠性测试数据生成方法进行说明。
步骤1:构造操作剖面。
(1)确定操作模式剖面。一些常见的会产生不同操作模式的因素有:一周的某天或一天的某段时间(主要时间和次要时间);一年的某段时间(金融系统的年末财务结算);业务量水平;不同用户类型;用户经验(专家和新手);系统成熟度;精简的系统能力(对所有操作,或只对特定操作)。例如:根据用户经验得到的VC操作模式剖面如表1所示。
表1VC操作模式剖面
  操作模式   发生概率
  软件开发工程师模式   0.65
  初学者模式   0.35
本发明主要根据任务的实际情况确定操作模式,例如在将VC提供给一个成熟的软件开发团队之前进行的可靠性测试就只需针对“软件开发工程师模式”而不用考虑“初学者模式”。不同的划分标准可以划分出不同的操作模式剖面,本实例按照用户类型为该信息管理系统划分出四个操作模式剖面,如表2所示:
表2XX超市信息管理系统操作模式剖面
  操作模式   发生概率
  经理模式   0.3
  会计模式   0.3
  售货员模式   0.2
  仓库管理员模式   0.2
(2)确定操作模式操作剖面。为已确定好的每个操作模式都建立一个操作剖面,不同操作模式操作剖面中可能出现相同的操作,但其发生概率未必相同。
VC在软件开发工程师模式下的操作剖面如表3所示:
表3VC操作剖面
  操作   发生概率
  保存工程   0.35
  编译   0.44
  ...   ...
  新建文档视图框架   0.10
其中“新建文档视图框架”是图形表示的一系列操作的集合,如图1所示,但在未进行调整的操作剖面中它只是一个操作,其发生概率为0.10。尽管如此,为了能在操作剖面调整过程中比较发生概率大小和确定所有操作的发生概率,图形中各属性值的发生概率仍然需要在操作模式操作剖面中确定。
本发明实施例建立的仓库管理员操作模式的部分操作剖面如表4所示,会计操作模式的部分操作剖面如表5所示:
表4仓库管理员操作模式操作剖面
  操作   发生概率
  商品信息-全部显示   0.040
  商品信息-查找   0.060
  库存信息-添加   0.231
  库存信息-删除   0.077
  库存信息-全部显示   0.077
  供应信息-添加   0.099
      ...   ...
表5会计操作模式操作剖面
  操作   发生概率
  商品信息-全部显示   0.030602
  商品信息-查找   0.06099
  销售信息-全部显示   0.071476
  销售信息-查找   0.071476
      ...  ...
操作剖面建立后,还可以对其中的一些操作进行详细描述,输入操作的属性和属性取值,并确定属性取值的分支概率。图2是对一多属性操作“供应信息-查找”的详细描述。
(3)生成系统操作剖面。
1)首先,列出需要测试的所有操作。
2)然后根据式(1)~(3)确定各操作或属性值的发生概率。
可以把系统操作剖面中的发生概率认为是各操作剖面中发生概率的加权和。对于表格表示的操作,其加权因子是剖面对应的操作模式发生概率;对于属性值,其加权因子则是其所在图形的发生概率占系统操作剖面中图形发生概率的比例。
以表3中“新建文档视图框架”为例,假设在初学者模式下的发生概率是0.08,其中属性值“多文档/视图框架”的发生概率是0.75。那么在系统操作剖面中考虑两个操作模式操作剖面的情况其发生概率为0.1×0.65+0.08×0.35=0.093,属性值“多文档/视图框架”的发生概率为0.8×[(0.1×0.65)/0.093]+0.75×[(0.08×0.35)/0.093]=0.78。
(4)调整系统操作剖面。
本发明实施例中根据项目的预计投入给定操作的额定值E为40。然后按照本发明给出的步骤进行分析:
1)判断操作数量。当前各个模式剖面的操作的总数为23,小于额定值E。
2)判断是否存在多属性区域。当前所有操作中有9个存在多属性区域,图2所示的操作“供应信息-查找”即为其中一个。
3)细分操作。该过程既是调整系统操作剖面的关键步骤,也是本发明提出的操作剖面开发方法的核心。该过程既要权衡资源,保证生成的操作数量在额定范围之内;又要考虑发生概率,优先分析使用频繁的区域;还要择优选择,使得获得的操作在分析区域内均匀分布。
首先,将9个存在多属性区域的操作都标记成未正交处理状态。
以“供应信息-查找”操作为例,首先对它进行正交处理。该操作共包括“仓库号”、“商品号”、“连锁店号”、“月份”、“月供应量”5个属性,每个属性包含2个取值。
①根据属性和取值的个数可以确定使用正交表L8(27)来选取新的操作,即可以增加8个操作。
②预计增加的8个操作加上原本23个操作,总数为31没有超过额定值E。
③该操作的多属性区域共有32条分支,根据正交表可从其中抽取出8个作为新的操作集合。新操作的发生概率可以通过属性值的分支概率和原操作的发生概率相乘得到,例如第一条分支概率:P1=(0.5×0.5×0.5×0.5×0.5)×0.039=0.00121875,其中0.039是该操作的发生概率。从所有的分支中选出概率最大的作为新操作。
④抽取操作完成后,将当前多属性区域标记为已正交处理状态。
4)整理剖面。将所有的多属性区域都正交化处理之后,开始整理剖面,分析人员可增加一些必要的操作,并删除重复的操作。
在整理剖面之前,无论是否进行过细分操作,测试分析人员都可以得到一个完整的系统操作剖面。在下列情况下,分析人员可以进行剖面整理:
(1)操作数量超出额定值。这种情况说明软件开发过程中分配的可靠性测试资源不能满足基本的可靠性测试需要。此时如果不能追加测试资源就只能通过分析人员人为地减少操作,然后通过归一化处理使得操作的发生概率之和为1。
(2)分析人员熟悉软件使用情况。在此情况下分析人员可能对已生成的操作列表不太满意,希望增加或删除某些操作,这种调整同样必须保证操作数量在额定范围之内同时所有操作的发生概率之和为1。
步骤1.5:调整操作模式操作剖面。对系统操作剖面进行一系列的调整后,操作情况可能发生很多改变:有些操作被删除,有些操作被细分为更小的操作。为了保持各剖面中操作的一致性还需调整各操作模式操作剖面。
检查并确认各操作模式操作剖面,最后对各操作模式操作剖面的发生概率进行归一化处理。
以上构造操作剖面的五步工作较为繁琐,可由本发明的计算机辅助工具(简称OT软件)来帮助完成,点击软件菜单“生成新系统操作剖面”,软件会提示用户输入操作的额定值,用户输入额定值后,软件自动生成并调整系统操作剖面,如图3所示。
系统操作剖面生成完毕的同时,软件根据调整后的系统操作剖面自动调整所有的操作模式操作剖面,使得操作模式操作剖面中的操作与系统操作剖面中的操作一致。
操作剖面构造完成以后,则可以基于该剖面生成测试数据,借助工具完成测试数据的生成。
步骤2.3中划分输入变量取值水平。输入变量的取值是多样的,同一变量的不同取值在逻辑上对应于不同的软件执行,但对于实际的软件系统来说,一些取值对失效的影响是相同的,将这些具有相同失效影响的取值划分为一组,作为该变量的一个取值水平。考虑到变量有不同的类型,划分取值水平时的原则也不一样,下面是对常见变量类型划分取值水平的举例。
①布尔变量或开关量。对于布尔值或开关量只存在着TRUE和FALSE或者开和关两个取值水平。
②枚举变量。对于枚举值变量,原则上每一个枚举值就是一个取值水平,但特殊情况下可以将多个枚举值划分为一组。
③整型变量或浮点变量。对于整型值变量或浮点型变量,常常是值区间范围作为一个水平,也可将一些特定的单个值单独作为一个水平,如该变量只取某些特定值,或者已知的在逻辑判断上起关键作用的特定值,或者边界上的值等。
对于用户输入来说,不同取值水平中的值使用时的概率是不一样的,对于可靠性测试来说,测试过程需要尽量模拟用户的实际使用,因此在划分变量取值水平时,还需要确定各取值水平的发生概率,这需要测试人员对系统的实际使用情况非常熟悉。步骤2.3最后得到的是带有概率的变量取值水平列表。
步骤2.4:选择运行分类。为了提高测试效率,需要从全组合中选出实际用于测试的运行分类。此选择过程既考虑了可靠性测试中要求的符合用户实际的使用情况,即将取值水平的概率信息作为选择的标准,同时也考虑了软件测试中要求的尽量扩大组合覆盖的要求。正交试验设计方法引入到软件测试领域的一个优势是正交表具有均匀分散、低组合数高覆盖的特点,特别是能够满足单因素和两两组合的100%覆盖。因此首先考虑运用正交试验设计来指导运行分类的选择。
为了应用正交表,一种组合测试方法被引入,选择时首先计算出各运行分类的整体概率,由大向小排序,按概率从大到小选择,直到选择出的运行分类满足了两两组合的100%覆盖。这样便选出了一组概率最大且满足组合覆盖条件的运行分类,这样就将可靠性测试中的概率考虑与软件测试时的组合覆盖统一起来。
(1)配置变量,在OT系统操作剖面的下部为剖面中的每个操作配置输入变量。变量配置完成后还可以设置变量的取值水平,如图4所示。这个过程即完成了本发明所给的步骤二中的前3个子步骤2.1~2.3的工作。
(2)生成可靠性测试数据。点击OT的“测试数据生成”,软件提示用户输入测试用例数目,之后软件通过选择操作模式、选择操作、选择运行分类和生成测试数据的方式自动生成相应数目的测试数据。这个过程即完成了本发明所给的步骤二中的后2个子步骤2.4~2.5的工作。生成的测试数据以XML形式存储,如下所示:
<测试用例>
<操作名称=″统计-到货情况″>
<变量输入时间=″1″>商品号=SP021</变量>
<变量输入时间=″2″>连锁店号=LS011</变量>
<变量输入时间=″3″>仓库号=CK005</变量>
<变量输入时间=″4″>点击到货情况按钮=FALSE</变量>
</操作>
</测试用例>
下面对测试结果进行分析。
本次测试共生成850个测试数据,发现了埋藏的62个软件缺陷中的47个,占缺陷总数的75.8%。设置的软件缺陷及测试结果如表6所示:
表6测试结果表
  序号   注入缺陷   第一次发现缺陷的用例序号
  1   仓库信息点击“保存”按钮
  2   仓库信息点击“查找仓库号”按钮
  3   仓库信息点击“查找连锁店号”按钮
  4   仓库信息点击“取消”按钮
  5   仓库信息点击“全部显示”按钮
  6   仓库信息点击“添加”按钮
  7   仓库信息点击“添加——保存”按钮   120
  8   仓库信息点击“添加——取消”按钮
  9   点击“退出”按钮   545
  10   供应信息点击“保存”按钮   193
  11   供应信息点击“查找仓库号”按钮   346
  12   供应信息点击“查找商品号”按钮   564
  13   供应信息点击“取消”按钮   467
  14   供应信息点击“全部显示”按钮   607
  15   供应信息点击“删除”按钮   157
  16   供应信息点击“添加”按钮   38
  17   供应信息点击“添加——保存”按钮   341
  18   供应信息点击“添加——取消”按钮   82
  19   供应信息点击“月份”按钮   786
  20   库存信息点击“保存”按钮   673
  21   库存信息点击“查找仓库号”按钮   1
  22   库存信息点击“查找商品号”按钮   468
  23   库存信息点击“取消”按钮   596
  24   库存信息点击“全部显示”按钮   4
  25   库存信息点击“删除”按钮   634
  26   库存信息点击“添加”按钮   573
  27   库存信息点击“添加——保存”按钮   41
  28   库存信息点击“添加——取消”按钮   42
  29   连锁店信息点击“保存”按钮
  30   连锁店信息点击“查找”按钮
  31   连锁店信息点击“取消”按钮
  32   连锁店信息点击“全部显示”按钮
  33   连锁店信息点击“删除”按钮
  34   连锁店信息点击“添加”按钮
  35   连锁店信息点击“添加——保存”按钮   538
  36   连锁店信息点击“添加——取消”按钮   653
  37   商品信息点击“保存”按钮
  38   商品信息点击“查找商品号”按钮   60
  39   商品信息点击“取消”按钮   643
  40   商品信息点击“全部显示”按钮   28
  41   商品信息点击“删除”按钮   596
  42   商品信息点击“添加”按钮   541
  43   商品信息点击“添加——保存”按钮   89
  44   商品信息点击“添加——取消”按钮   114
  45   统计信息点击“储量统计”按钮   88
  46   统计信息点击“到货情况”按钮   8
  47   统计信息点击“发货情况”按钮   9
  48   统计信息点击“供应情况”按钮   551
  49   统计信息点击“极限总销售量”按钮   620
  50   统计信息点击“商品信息”按钮   11
  51   统计信息点击“月最低销售量”按钮   582
  52   统计信息点击“月最高销售量”按钮   664
  53   销售信息点击“保存”按钮
  54   销售信息点击“查找连锁店号”按钮   645
  55   销售信息点击“查找商品号”按钮   74
  56   销售信息点击“查找月份”按钮   862
  57   销售信息点击“取消”按钮   675
  58   销售信息点击“全部显示”按钮   542
  59   销售信息点击“删除”按钮   48
  60   销售信息点击“添加”按钮   539
  61   销售信息点击“添加——保存”按钮   2
  62   销售信息点击“添加——取消”按钮   27
实例应用表明:基于正交试验设计的软件可靠性测试数据生成方法能够用于软件可靠性测试;通过使用OT软件,可以简化操作剖面的构造过程和测试数据的生成过程,节约测试准备的费用,并且方法能够发现软件的大多数缺陷。
本发明还提出了一种软件可靠性测试数据生成的计算机辅助工具,是本发明中基于正交实验设计的软件可靠性测试数据生成方法的实现装置,具有包括操作模式配置、操作配置、操作的属性配置、操作剖面的生成和变量的配置及测试数据的生成功能。所提供的计算机辅助工具提供了图形化界面,如图6所示,具体包括如下模块:操作模式剖面分析模块1、操作剖面分析模块2、操作剖面生成模块3、测试数据生成模块4及视图显示模块5。
操作模式剖面分析模块1用于操作模式配置和操作配置,通过新建、修改、删除操作模式,实现操作模式配置,以及通过新建、修改、删除操作实现操作配置。
操作剖面分析模块2通过新建、修改、删除属性,实现操作的属性配置,在新建属性时要配置属性值和属性顺序。
操作剖面生成模块3用于调整和生成系统操作剖面。
测试数据生成模块4通过变量配置和生成模块生成可靠性测试数据。
视图显示模块5提供可视化窗口,显示所有的操作模式剖面、操作剖面和以图的形式表示的属性。
本发明在创建操作列表的过程中可以控制操作数量,一旦数量达到要求就停止创建,从而避免操作数量过大需要重新合并的现象。并且本发明提出将模拟用户的实际使用细化到输入变量级,更加真实有效地模拟了用户实际使用软件的情况。

Claims (6)

1.一种基于正交试验设计的软件可靠性测试数据生成方法,其特征在于,通过以下步骤实现:
步骤一、构造基于正交试验设计的软件操作剖面,包括5个步骤:
步骤1.1:确定操作模式,由操作模式及其对应的发生概率组成操作模式剖面;
步骤1.2:为确定的每一个操作模式确定一个操作剖面,确定操作模式操作剖面;
步骤1.3:确定系统操作剖面;包括两步骤:步骤1.3.1,列出需要测试的所有操作;步骤1.3.2,确定各操作或各属性值的发生概率;
步骤1.4:调整系统操作剖面,具体包括如下子步骤:
步骤1.4.1:判断操作数量;统计当前操作数量,如果数量等于或大于额定值就进入步骤1.4.4中的剖面整理,否则继续下一步;
步骤1.4.2:判断系统操作剖面中是否存在用图形表示的多属性区域,如果存在进入下一步,否则进入步骤1.4.4;
步骤1.4.3:进行细分操作,包括:
①将所有多属性区域标记成未正交处理状态;
②将所有未正交处理的多属性区域和区域正交处理后剩余的操作作为候选元素,选择其中发生概率最大的元素;
③判断选择的元素是未正交处理的多属性区域还是区域正交处理后剩余的操作,如果是未正交处理的多属性区域则对其进行正交处理,否则将区域正交处理后剩余的操作从区域中抽取出来;所述的正交处理的具体过程为:根据属性和属性范围选取正交表,正交表的行数就是将要增加的操作数目;预计当前操作数目加上正交表的行数得到的新的操作数目是否超过额定值,如果超过转到④执行;如果未超过,就根据正交表,从当前操作中选择发生概率之和最大的一组操作,然后将当前多属性区域标记为已正交处理状态;
④判断当前操作数量是否达到额定值,如果达到额定值就结束当前过程,否则返回②执行;
步骤1.4.4:进行剖面整理,通过增加操作,删除重复的操作,并通过归一化处理使得操作的发生概率之和为1;
步骤1.5:调整操作模式操作剖面:1)检查各操作模式操作剖面,对照系统操作剖面为图形对应的多属性区域划分操作;2)检查各操作模式操作剖面,删除其在系统操作剖面中没有的操作;3)对各操作模式操作剖面的发生概率进行归一化处理;
步骤二、生成测试数据,包括如下步骤:
步骤2.1:从系统操作剖面中选择一个操作;
步骤2.2:确定该操作的输入变量;所述的输入变量分为直接输入变量和间接输入变量,直接输入变量是直接控制操作的变量,间接输入变量指环境变量;
步骤2.3:划分输入变量取值水平,将对软件系统具有相同失效影响的取值划分为一组,作为该变量的一个取值水平,同时,确定各取值水平的发生概率,最后得到带有概率的变量取值水平列表;
步骤2.4:选择运行分类;所述的运行分类是由组成操作的输入变量的取值水平组成;
步骤2.5:生成测试用例数据。
2.根据权利要求1所述的一种软件可靠性测试数据生成方法,其特征在于,所述的步骤1.2具体包括4个子步骤:
步骤1.2.1:确定操作的发起者,包括系统的用户、外部系统和系统自身的控制器;
步骤1.2.2:对每个发起者建立一张操作“表”并且将操作“表”合并;所述的操作“表”为表格或者图形表示;
步骤1.2.3:确定单个操作或属性值的出现率;
步骤1.2.4:确定操作或属性值的发生概率:表格表示的操作的发生概率是将单个操作的出现率除以总出现率;图形表示的属性值的发生概率是用属性值的出现率除以该属性的总出现率。
3.根据权利要求1所述的一种软件可靠性测试数据生成方法,其特征在于,所述的步骤1.3.2具体分为两种情况:
①以表格表示的操作的发生概率采用下式确定:
P O i , S = &Sigma; j ( P O i , M j P M j ) - - - ( 1 )
其中,
Figure FDA0000476703840000024
代表操作Oi在系统操作剖面S中的发生概率,
Figure FDA0000476703840000026
代表操作Oi在操作模式Mj中的发生概率,
Figure FDA0000476703840000025
代表操作模式Mj的发生概率;
②以图形表示的操作的发生概率的确定分为两步:首先确定整个图形的发生概率,然后确定图形中各属性值的发生概率;
整个图形的发生概率根据式(2)确定所示:
P G i , S = &Sigma; j ( P G i , M j P M j ) - - - ( 2 )
其中
Figure FDA0000476703840000027
代表图形Gi在系统操作剖面S中的发生概率,
Figure FDA0000476703840000029
代表Gi在操作模式Mj中的发生概率,
Figure FDA0000476703840000028
代表操作模式Mj的发生概率;
根据式(3)确定图形中各属性值的发生概率:
P P k , S = &Sigma; j ( P P k , M j P G i M j P M j P G i S ) - - - ( 3 )
其中
Figure FDA00004767038400000210
代表属性值pk在系统操作剖面S中的某一发生概率,
Figure FDA00004767038400000211
代表pk在操作模式Mj中对应的发生概率,
Figure FDA0000476703840000031
是概率的加权因子。
4.根据权利要求1所述的一种软件可靠性测试数据生成方法,其特征在于,所述的步骤2.4采用一种组合测试方法来选择运行分类,具体是:
步骤2.4.1:计算所有运行分类的整体概率,并按照概率大小将运行分类进行排序,标记Q为按概率排序的尚未选择的运行分类集合;
步骤2.4.2:从Q中选择一个概率最大且对覆盖有贡献的运行分类Ti,从Q中将Ti删除,将Ti所覆盖到的两两组合从UC中删除;其中,UC为选出的运行分类T1~Tn尚未覆盖到的变量取值水平间两两组合的集合;
步骤2.4.3:重复步骤2.4.2,直到UC为空;
步骤2.4.4:得到一组满足两两覆盖的且发生概率最大的运行分类T1~Tn,用这一组运行分类来代表该操作,对选出的运行分类概率进行归一化处理,将运行分类本身的概率除以运行分类组的概率和,得到新的概率。
5.根据权利要求1所述的一种软件可靠性测试数据生成方法,其特征在于,所述的步骤2.5具体包括如下步骤:
步骤2.5.1:随机抽样,选择操作模式;
步骤2.5.2:进入到所选操作模式下的操作剖面中,随机抽样选择操作;
步骤2.5.3:随机抽样选择操作的运行分类;
步骤2.5.4:实例化运行分类;为运行分类中所有取值水平都随机抽取一个具体的值,所组成的一个运行就是本次所生成的测试用例数据。
6.基于权利要求1所述的一种软件可靠性测试数据生成方法的测试数据生成的计算机辅助工具,其特征在于,所述的计算机辅助工具包括:操作模式剖面分析模块、操作剖面分析模块、操作剖面生成模块、测试数据生成模块及视图显示模块;
所述的操作模式剖面分析模块通过新建、修改以及删除操作模式进行操作模式配置,以及通过新建、修改以及删除操作进行操作配置;所述的操作剖面分析模块通过新建、修改及删除属性进行操作的属性配置;所述的操作剖面生成模块用于调整和生成系统操作剖面;所述的测试数据生成模块通过变量配置和生成模块生成可靠性测试数据;视图显示模块提供了可视化界面,显示所有的操作模式剖面、系统操作剖面和以图的形式表示的属性。
CN201210130343.0A 2012-01-09 2012-04-27 一种软件可靠性测试数据生成方法及其计算机辅助工具 Active CN102629233B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210130343.0A CN102629233B (zh) 2012-01-09 2012-04-27 一种软件可靠性测试数据生成方法及其计算机辅助工具

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210004345.5 2012-01-09
CN201210004345 2012-01-09
CN201210130343.0A CN102629233B (zh) 2012-01-09 2012-04-27 一种软件可靠性测试数据生成方法及其计算机辅助工具

Publications (2)

Publication Number Publication Date
CN102629233A CN102629233A (zh) 2012-08-08
CN102629233B true CN102629233B (zh) 2014-05-14

Family

ID=46587493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210130343.0A Active CN102629233B (zh) 2012-01-09 2012-04-27 一种软件可靠性测试数据生成方法及其计算机辅助工具

Country Status (1)

Country Link
CN (1) CN102629233B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309811B (zh) * 2013-06-27 2015-09-16 南京大学 一种基于测试执行记录快速定位软件代码缺陷的方法
CN108345979B (zh) * 2017-01-23 2021-07-09 阿里巴巴集团控股有限公司 一种业务测试方法及装置
CN108897680B (zh) * 2018-06-20 2021-04-06 北京航空航天大学 一种基于soa的软件系统操作剖面构造方法
CN108959104B (zh) * 2018-08-09 2021-08-31 中国航空综合技术研究所 一种软件可靠性的测试数据生成方法
CN113434574B (zh) * 2021-06-29 2024-03-26 平安科技(深圳)有限公司 基于小样本的数据可靠性分析方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033806A (zh) * 2010-12-14 2011-04-27 北京航空航天大学 一种实时嵌入式软件可靠性测试数据生成方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033806A (zh) * 2010-12-14 2011-04-27 北京航空航天大学 一种实时嵌入式软件可靠性测试数据生成方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
李秋英.软件可靠性测试中最小测试量的确定方法.《测控技术》.2009,第28卷(第11期),全文.
测试用例集极小化算法的研究;陈伟;《国防科学技术大学研究生院工学硕士学位论文》;20061130;第19页第16行至第22页第16行,第38页第16行至第47页第26行 *
软件可靠性测试中最小测试量的确定方法;李秋英;《测控技术》;20090526;第28卷(第11期);全文 *
陈伟.测试用例集极小化算法的研究.《国防科学技术大学研究生院工学硕士学位论文》.2006,第19页第16行至第22页第16行,第38页第16行至第47页第26行.
韩峰岩,覃征,王昕.基于测试剖面的软件可靠性测试数据生成技术.《西安交通大学学报》.2006,第40卷(第10期),全文. *

Also Published As

Publication number Publication date
CN102629233A (zh) 2012-08-08

Similar Documents

Publication Publication Date Title
US8600709B2 (en) Adaptive analytics multidimensional processing system
Seely et al. The application of a hierarchical, decision-support system to evaluate multi-objective forest management strategies: a case study in northeastern British Columbia, Canada
Galbraith et al. An empirical analysis of strategy types
Meen Spatial aggregation, spatial dependence and predictability in the UK housing market
CN102629233B (zh) 一种软件可靠性测试数据生成方法及其计算机辅助工具
Dribe et al. Did social mobility increase during the industrialization process? A micro-level study of a transforming community in southern Sweden 1828–1968
Bahri et al. Implementation of total quality management and its effect on organizational performance of manufacturing industries through organizational culture in South Sulawesi, Indonesia
EP2273431A1 (en) Model determination system
US9280443B2 (en) Dashboard performance analyzer
Liyanaarachchi et al. Impact of trade liberalisation on labour market and poverty in Sri Lanka. An integrated macro-micro modelling approach
CN108491511A (zh) 基于图数据的数据挖掘方法和装置、模型训练方法和装置
CN101320449A (zh) 基于组合评价方法的配电网评估方法
CN104346698A (zh) 基于云计算和数据挖掘的餐饮会员大数据分析和考核系统
EP2343683A1 (en) Data relationship preservation in a multidimension data hierarchy
CN113487117B (zh) 一种基于多维度用户画像的电商用户行为数据模拟的方法及系统
de la Cuesta Income distribution during the structural transformation: Colombia, 1938-1988
Kaya et al. How do airlines survive? An integrated efficiency analysis on the survival of airlines
Yu et al. Decision tree method in financial analysis of listed logistics companies
Adams et al. Timber harvest projections for private land in western Oregon
Jaisinghani et al. Marketing intensity and persistence of firm performance: empirical evidence from Indonesia
CN107093018A (zh) 基于健康模型的电信工程项目信息可视化方法及装置
CN108629023A (zh) 数据挖掘方法、装置以及计算机可读存储介质
Ng et al. Relationships between interdependency, reliability, and vulnerability of infrastructure systems: Case study of biofuel infrastructure development
Mavris et al. Determination of system feasibility and viability employing a joint probabilistic formulation
JP2003280901A (ja) 見積評価支援プログラムおよび見積評価支援システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210108

Address after: 100089 No. 1105, 11 / F, Boyan building, 238 North Fourth Ring Middle Road, Haidian District, Beijing

Patentee after: Beijing Tianhang Changying Technology Co.,Ltd.

Address before: 100191 No. 37, Haidian District, Beijing, Xueyuan Road

Patentee before: BEIHANG University

TR01 Transfer of patent right