CN106569944A - 基于约束树的星载软件测试数据分析方法 - Google Patents
基于约束树的星载软件测试数据分析方法 Download PDFInfo
- Publication number
- CN106569944A CN106569944A CN201610899082.7A CN201610899082A CN106569944A CN 106569944 A CN106569944 A CN 106569944A CN 201610899082 A CN201610899082 A CN 201610899082A CN 106569944 A CN106569944 A CN 106569944A
- Authority
- CN
- China
- Prior art keywords
- tree
- constraint
- node
- demand
- result
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于约束树的星载软件测试数据分析方法,包括:将预设的需求的逐项描述逐一转换为表格化描述,并将所述表格化描述定义为约束表;采用主元融合法对所有所述约束表进行处理,生成需求约束树;采用主元融合法对实际测试生成的记录表中的各个用例的测试结果进行处理,生成与每个用例一一对应的结果约束树;将每个所述用例各自生成的结果约束树与所述需求约束树进行比较,分析当前用例生成的结果约束树与所述需求约束树是否相符。本发明依据软件需求自动建立需求约束树,并通过分析测试数据自动建立结果约束树,将结果约束树自动化进行分析其是否满足需求约束树分支条件、节点健康等,以自动化的完成测试正确性分析。
Description
技术领域
本发明涉及卫星数据管理领域,尤其涉及一种基于约束树的星载软件测试数据分析方法。
背景技术
自动化测试被广泛应用,其根据设定的测试输入得到输出,并进行自动比较,判断测试对象的正确性,但对应星载软件而言,由于其作为输入的状态多且具有很难预测的偶发性,例如运行过程中星敏由于冲地遮挡而无效,这种情况下,可能对系统无影响,也可能导致定姿模式发生切换,这类问题在测试用例设计之前很难确定,也就导致自动化测试的方法很难在星载软件测试中得到应用。
由于上述情况的存在,当前普遍的星载软件测试数据分析办法为得到测试数据后画曲线,并分析各状态量变化是否与需求一致,但测试状态量数目多且变化多样,这样就需要同时分析各状态量,且分析每一个状态发生变化时的响应情况,这种方式需要耗费大量的人力,且容易出错。
发明内容
为了解决上述问题,本发明提供了一种基于约束树的星载软件测试数据分析方法,包括:
将预设的需求的逐项描述逐一转换为表格化描述,并将所述表格化描述定义为约束表;
采用主元融合法对所有所述约束表进行处理,生成需求约束树;
采用主元融合法对实际测试生成的记录表中的各个用例的测试结果进行处理,生成与每个用例一一对应的结果约束树;
将每个所述用例各自生成的结果约束树与所述需求约束树进行比较,分析当前用例生成的结果约束树与所述需求约束树是否相符。
本发明基于约束树的星载软件测试数据分析方法,依据软件需求自动建立需求约束树,并通过分析测试数据自动建立结果约束树,将结果约束树自动化进行分析其是否满足需求约束树分支条件、节点健康等,以自动化的完成测试正确性分析。
本发明基于约束树的星载软件测试数据分析方法的进一步改进在于,采用主元融合法对所有所述约束表进行处理,生成需求约束树,包括:
将所述约束表分为逻辑选择型约束表、前置条件型约束表以及后置判断型约束表三种类型;
将具有固定的逻辑关系的一组状态量设置在所述逻辑选择型约束表中的同一行;
将当前状态量需要满足的判断条件定义为该当前状态量的前置条件,并将该前置条件与该当前状态量设置在所述前置条件型约束表中的同一行;
将受约束于当前状态量的判断条件定义为该当前状态量的后置判断条件,并将该后置判断条件与该当前状态量设置在所述后置判断型约束表中的同一行;
采用主元融合法对所有所述逻辑选择型约束表、所述前置条件型约束表以及所述后置判断型约束表进行处理,生成所述需求约束树。
本发明基于约束树的星载软件测试数据分析方法的进一步改进在于,采用主元融合法对所有所述逻辑选择型约束表、所述前置条件型约束表以及所述后置判断型约束表进行处理,生成所述需求约束树,包括:
将所述逻辑选择型约束表中最左列出现的状态量定义为最高优先级状态量,其余各状态量的优先级根据在所述逻辑选择型约束表中出现的位置由左至右依次降低,将所述逻辑选择型约束表中的每一个状态量作为所述需求约束树中的一个节点;
将所述需求约束树的第0层定义为ROOT;
将所述逻辑选择型约束表中的所有所述最高优先级状态量排列在所述需求约束树的第1层;
将所述逻辑选择型约束表中的其余各状态量根据各自的优先级等级依次降序排列在所述需求约束树的其余各层;
将所述前置条件型约束表中的各前置条件生成为一个前置有效节点,并插入在与该前置条件对应的状态量的节点的前端;
将所述后置判断条件型约束表中的各后置判断条件生成为与该后置判断条件对应的状态量的后置有效节点,并插入在与该后置判断条件对应的状态量的节点的后端;
将同时作为一个状态量的后置判断条件以及另一个状态量的前置条件的判断条件,生成一个中间有效节点并插入在该两个状态量的节点的中间;
根据上述对所述状态量、所述前置条件、以及所述后置判断条件的排列方式,形成所述需求约束树。
本发明基于约束树的星载软件测试数据分析方法的进一步改进在于,所述状态量包括:工作模式、定姿模式、导引率模式、以及控制模式,所述工作模式、定姿模式、导引率模式、以及控制模式的优先级等级为工作模式>定姿模式=导引率模式>控制模式。
本发明基于约束树的星载软件测试数据分析方法的进一步改进在于,分析当前用例生成的结果约束树与所述需求约束树是否相符,包括:将每个所述用例各自生成的结果约束树的各个节点与所述需求约束树的各个节点进行正确性分析和测试覆盖性分析。
本发明基于约束树的星载软件测试数据分析方法的进一步改进在于,将每个所述用例各自生成的结果约束树的各个节点与所述需求约束树的各个节点进行正确性分析,包括:
子树检查:将所述结果约束树在所述需求约束树中进行查找,分析所述结果约束树是否为所述需求约束树中的子树之一,若所述结果约束树中的所有节点均在所述需求约束树中出现,并且所述结果约束树中的节点之间的连接关系和路径均符合所述需求约束树中的节点之间的连接关系和路径,判定所述结果约束树的子树检查正确;
节点检查:判定所述结果约束树的子树检查正确后,分析所述结果约束树中的前置有效节点和后置有效节点是否出现在所述需求约束树的前置条件型约束表中和后置判断型约束表中,若所述结果约束树中的前置有效节点和后置有效节点出现在所述需求约束树的前置条件型约束表中和后置判断型约束表中,判定所述结果约束树中的该前置有效节点和该后置有效节点为有效节点;若所述结果约束树中的前置有效节点和后置有效节点未出现在所述需求约束树的前置条件型约束表中和后置判断型约束表中,判定所述结果约束树中的该前置有效节点和该后置有效节点为无效节点。
本发明基于约束树的星载软件测试数据分析方法的进一步改进在于,将每个所述用例各自生成的结果约束树的各个节点与所述需求约束树的各个节点进行测试覆盖性分析,包括:将所有用例生成的结果约束树合并形成一个覆盖树,将所述覆盖树与所述需求约束树进行比较分析,当所述覆盖树与所述需求约束树完全相同,判定当前所有用例的总和满足全部预设的需求。
附图说明
图1是本发明基于约束树的星载软件测试数据分析方法的流程示意图。
图2为本发明基于约束树的星载软件测试数据分析方法中的一个全分支树的框图。
图3为图2的全分支树修剪后的约束树的框图。
图4为图3的约束树插入中间节点后的约束树的框图。
图5为由图4的约束树生成的完整的需求约束树的框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
其次,本发明利用示意图进行详细描述,在详述本发明实施例时,为便于说明,所述示意图只是实例,其在此不应限制本发明保护的范围。
参见图1所示,图1是本发明基于约束树的星载软件测试数据分析方法的流程示意图。本发明基于约束树的星载软件测试数据分析方法,包括:
步骤S101:将预设的需求的逐项描述逐一转换为表格化描述,并将所述表格化描述定义为约束表;
步骤S102:采用主元融合法对所有所述约束表进行处理,生成需求约束树;
步骤S103:采用主元融合法对实际测试生成的记录表中的各个用例的测试结果进行处理,生成与每个用例一一对应的结果约束树;
步骤S104:将每个所述用例各自生成的结果约束树与所述需求约束树进行比较,分析当前用例生成的结果约束树与所述需求约束树是否相符。
本发明基于约束树的星载软件测试数据分析方法,依据软件需求自动建立需求约束树,并通过分析测试数据自动建立结果约束树,将结果约束树自动化进行分析其是否满足需求约束树分支条件、节点健康等,以自动化的完成测试正确性分析。
以下结合附图以及具体实施例,对本发明基于约束树的星载软件测试数据分析方法进行详细的说明。上述步骤S101和步骤S102为建立约束树模型的描述,上述步骤S103和步骤S104为测试数据分析的描述。具体说明如下:
一、约束树模型
在上述步骤S101中,姿控软件测试为检查其对需求的满足性,而需求一般的描述方法为条目列举,即逐项功能描述。为实现自动化的测试数据分析,将预设的需求的逐项描述逐一转换为表格化描述,并定义此类表格化描述为约束表。
在上述步骤S102中,包括:
步骤S1021:约束表对应于需求项,用于描述状态量间的依赖、关联等关系,根据姿控软件特点,将约束表分为三种类型:逻辑选择型约束表、前置条件型约束表、以及后置判断型约束表;
步骤S1022:将具有固定的逻辑关系的一组状态量设置在所述逻辑选择型约束表中的同一行;
步骤S1023:将当前状态量需要满足的判断条件定义为该当前状态量的前置条件,并将该前置条件与该当前状态量设置在所述前置条件型约束表中的同一行;
步骤S1024:将受约束于当前状态量的判断条件定义为该当前状态量的后置判断条件,并将该后置判断条件与该当前状态量设置在所述后置判断型约束表中的同一行;
步骤S1025:采用主元融合法对所有所述逻辑选择型约束表、所述前置条件型约束表以及所述后置判断型约束表进行处理,生成所述需求约束树。
其中,在步骤S1022、步骤S1022、以及步骤S1024中,逻辑选择型约束表、前置条件型约束表、以及后置判断型约束表三种类型约束表的具体说明如下:
1、逻辑选择型约束表:用于描述状态量间的选择关系,所述状态量包括工作模式、定姿模式、导引率模式、以及控制模式。如工作-定姿模式约束表描述工作模式和定姿模式间的选择关系,如下表1所示。表中第1列为序号,第2列分别列举了工作模式所有的取值情况,即W0~Wn,第3列为给定工作模式下可选择的定姿模式,即D0~D10,存在多个定姿模式且有优先级关系时,按优先级从高到低排序,选择时按从高到低选择。表中每一行的状态量都是一组固定的逻辑关系,也即只有在当表中每个状态量都在表中同一行时,当前的状态量的取值组合才是需求要求的。例如序号1、2所示,表示需求描述在工作模式W0时定姿模式只能取D0或者D3。
表1工作-定姿模式约束表
类似的逻辑选择型约束表有工作-导引率模式约束表、定姿-控制模式约束表等等,分别如下表2、表3所示,其中L1~L4、C1~C10分别为导引率模式、控制模式的取值。
序号 | 工作模式 | 导引率模式 | 优先级 |
1 | W0 | L1 | 无 |
2 | W1 | L1 | 无 |
3 | W3 | L1 | 无 |
4 | W2 | L2 | 无 |
… | … | … | |
N | WN | L4 | 无 |
表2工作-导引率模式约束表
序号 | 定姿模式 | 控制模式 | 优先级 |
1 | D0 | C1 | 有 |
2 | D1 | C1 | 有 |
3 | D0 | C4 | 有 |
4 | D1 | C4 | 有 |
5 | D6 | C1 | 有 |
6 | D6 | C2 | 有 |
… | … | … | … |
N | DN | C10 | 无 |
表3定姿-控制模式约束表
同理,真实星载软件需求中存在大量的如上述所说的逻辑关系,按照需要均以逻辑选择型约束表形式表示出来。
2、前置条件型约束表:主要用于描述当前状态量需要满足的条件,如定姿模式-前置条件约束表描述给定定姿模式需要满足的条件,如下表4所示,当前定姿模式为D1,则需要满足条件:Ss为1,或Ss连续为0不超过15秒,其中Ss为单机s的使用状态,即在前置条件满足的情况下,定姿模式状态量才能是当前值。
序号 | 定姿模式D | 前置条件 |
1 | D0 | Dcond0(…) |
2 | D1 | Dcond1(Ss为1) |
3 | D1 | Dcond2(Ss连续为0不超过15秒) |
4 | D2 | Dcond3(Ss既不为1,并且连续为0超过15秒) |
… | … | … |
N | DN | DcondN(…) |
表4定姿模式-前置条件约束表
前置条件型约束表不同于逻辑选择型约束表,逻辑选择型约束表是一系列状态量的合理组合情况,而前置条件型约束表是某一状态量的值需要满足的前置条件的组合情况。前置条件型约束表可以将各种状态量的前置条件罗列出来。类似的前置条件型约束表有工作模式-前置条件约束表、控制模式-前置条件约束表等等,分别如下表5、表6所示。
序号 | 工作模式W | 前置条件 |
1 | W0 | Wcond0(…) |
2 | W1 | Wcond1(…) |
3 | W2 | Wcond2(…) |
… | … | … |
N | WN | WcondN(…) |
表5工作模式-前置条件约束表
序号 | 控制模式C | 前置条件 |
1 | C1 | Ccond1(…) |
2 | C2 | Ccond2(…) |
3 | C3 | Ccond3(…) |
… | … | … |
N | C N | CcondN(…) |
表6控制模式-前置条件约束表
3、后置判断型约束表:除了上述两个约束表的存在以外,在需求描述时,还存在某一状态量取值满足的情况下,会约束后续的某一条或几条判断条件,这些后续的判断条件可能用于其他状态量的前置条件,但属于当前状态量的后置判断条件,这种建立当前状态量与其后续判断条件关系的表称为后置判断型约束表。如下表7所示,在定姿模式D1下,其三轴定姿误差小于1度,即|A-B|,其中A、B分别为动力学和星载软件的姿态角。类似的后置判断型约束表有工作模式-后置判断约束表、定姿模式-后置判断约束表等等,分别如下表8、表9所示。
序号 | 定姿模式 | 后置判断 |
1 | D1 | Ddcid1(|Ai-Bi|<1) |
2 | D2 | Ddcid2(…) |
… | … | |
N | DN | DdcidN(…) |
表7定姿模式-后置判断约束表
序号 | 工作模式W | 后置判断 |
1 | W1 | Wdcid1(…) |
2 | W2 | Wdcid2(…) |
… | … | … |
N | WN | WdcidN(…) |
表1工作模式-后置判断约束表
序号 | 控制模式C | 后置判断 |
1 | C1 | Cdcid1(…) |
2 | C2 | Cdcid2(…) |
… | … | … |
N | CN | CdcidN(…) |
表2定姿模式-后置判断约束表
综上所述,逻辑选择型约束表、前置条件型约束表和后置判断型约束表共同描述了需求中的各个状态量之间以及各个条件变量之间的关系,为后续的需求约束树和结果约束树的自动化生成以及测试结果正确性分析奠定了基础。根据上述三种约束表的定义可知,需求越复杂转换后的约束表越多,做数据分析时若通过逐个判断约束表的方式搜索量很大,且无法获取后续的覆盖率数据。
在步骤S1025中,采用主元融合法对所有所述逻辑选择型约束表、所述前置条件型约束表以及所述后置判断型约束表进行处理,生成所述需求约束树,包括:
1)主元确定:主元确定原则为以逻辑选择型约束表为准,凡是在逻辑选择型约束表出现的元素均为主元,将逻辑选择型约束表中最左列出现的状态量定义为最高优先级状态量,其余各状态量的优先级根据在所述逻辑选择型约束表中出现的位置由左至右依次降低。根据上述原则,分析表1至表3,可知工作模式为最左列,则其为最高优先级主元,依次为工作模式>定姿模式=导引率模式>控制模式。
2)约束树处理:定义需求约束树的第0层为Root,将所述逻辑选择型约束表中的所有所述最高优先级状态量排列在所述需求约束树的第1层,将所述逻辑选择型约束表中的每一个状态量作为所述需求约束树中的一个节点,将所述逻辑选择型约束表中的其余各状态量根据各自的优先级等级依次降序排列在所述需求约束树的其余各层。即以主元优先级确定为第1层,最高优先级为第1层,以主元的一个可能取值为1个节点,通过约束表分析第1层中可能的取值,并以这些取值为第1层的节点,按此原则依次进行,直到遍历所有约束表,并最终形成约束树。
约束树的生成过程其实是一个全分支树的修剪过程,参见图2所示,图2为本发明基于约束树的星载软件测试数据分析方法中的一个全分支树的框图。如图2所示,其相邻两层的所有节点均为相连,而由于有上述三类约束表的存在,导致部分分支为不可能分支,如上表1中,工作模式取W0时,定姿模式取值只可能为D0或D3,则根据此约束将表中W0与D1、D2、D4~Dn的分支删除。
由图2可知,全分支树的分支为i×j×k,根据上述表1、表2和表3的约束树的选择关系进行裁剪后,最终形成的约束树如图3所示,图3为图2的全分支树修剪后的约束树的框图。
3)生成完整的需求约束树:在生成需求约束树的全约束树的时候,还需要根据前置条件型约束表和后置判断型约束表生成中间节点并且完成有效节点的定义、无效节点的定义,并将相应有效节点和无效节点插入约束树对应位置中。
具体地,将所述前置条件型约束表中的各前置条件生成为一个前置有效节点,并插入在与该前置条件对应的状态量的节点的前端;将所述后置判断条件型约束表中的各后置判断条件生成为与该后置判断条件对应的状态量的后置有效节点,并插入在与该后置判断条件对应的状态量的节点的后端;将同时作为一个状态量的后置判断条件以及另一个状态量的前置条件的判断条件,生成一个中间有效节点并插入在该两个状态量的节点的中间。
首先对后置判断型约束表和前置条件型约束表进行分析,分析出哪些状态量的后置判断条件是哪些状态量的前置条件,即如果某一状态量的后置判断条件是另一状态量的前置条件,则该后置判断或前置条件生成一个中间有效节点插入在该两个状态量节点的中间,成为前一状态量的子节点,后一状态量的父节点。当某一状态量的前置条件独立存在时,将该前置条件生成为前置有效节点,并作为当前状态量的父节点之一插入约束树中。当某一状态量的后置判断独立存在时,将该后置判断情况生成后置有效节点并作为该状态量的子节点之一插入约束树中。
参见图4与图5所示,图4为图3的约束树插入中间节点后的约束树的框图。图5为由图4的约束树生成的完整的需求约束树的框图。
如图4所示,以上述表4至表9进行分析为例,假设发现Wdcid1=Dcond1,Ddcid1=Ccond2,即W1的后置判断与D1的前置条件相同,D1的后置判断与C2的前置条件相同。此时,需要将Wdcid1和Dcond1生成一个中间有效节点W1D1,将Ddcid1和Ccond2生成一个中间有效节点D1C2,将这两个中间有效节点插入到约束树中。
如图5所示,以上述表4至表9进行分析为例,Dcond0、Dcond2生成D0和D1的前置有效节点,Wcond0、Wcond1、Wcond2生成W0、W1、W2的前置有效节点,Ccond1、Ccond3生成C1、C3的前置有效节点。Wdcid2生成W2的后置有效节点,Cdcid1、Cdcid2生成C1、C2的后置有效节点。根据上述对所述状态量、所述前置条件、以及所述后置判断条件的排列方式,最终生成完整的需求约束树的全约束树。
二、测试数据分析
在上述步骤S104中,分析当前用例生成的结果约束树与所述需求约束树是否相符,包括:将每个所述用例各自生成的结果约束树的各个节点与所述需求约束树的各个节点进行正确性分析和测试覆盖性分析。
具体地,姿控软件测试的目的是验证在当前给定的输入(包括单机数据、状态、工作模式等)条件下,软件选择当前定姿模式、导引率、控制模式的正确性,进而定姿、控制处理的正确性。而正确性的判据为是否与需求一致。一般情况下,需求采用条目列举软件的各项功能和性能,测试数据分析方法为逐条核查。通常的逐条检查方法缓慢,而本发明采用自动化的测试检查方法,对测试数据的正确性进行自动化的识别,提高测试的效率。测试数据自动分析包括正确性分析和测试覆盖率分析。
1、正确性分析:一般来说,一个测试用例生成的测试数据由多条记录组成,每条记录的数据结构同需求约束表中包含的项目相同,测试过程中对测试数据进行记录,其中每一项前置条件、后置判断都需要作为测试记录的结果之一被记录下来,如下表10所示。
时间 | W | D | C | … | Ai |
T0 | 0 | 0 | 0 | 0.12 | |
T0+1 | 0 | 0 | 1 | 0.24 | |
T0+2 | 0 | 0 | 3 | 0.15 | |
… | … | … | … | … | … |
T0+i | … | … | … | … | … |
表10测试记录
本发明基于约束树的星载软件测试数据分析方法,采用主元融合法对实际测试生成的记录表中的各个用例的测试结果进行处理,生成与每个用例一一对应的结果约束树,即为对测试生成的记录表中的各个用例的测试结果通过上述需求约束树的生成方法根据测试记录表自动化的生成结果约束树,然后对结果约束树与需求约束树进行比较,当前用例生成的约束树是需求约束树中正确路径的一部分时,当前用例通过,否则测试用例不通过,也就说明软件存在缺陷。
分析测试用例记录表生成的结果约束树,分为两步判断:
1)子树检查:各个测试生成的节点组成的结果约束树中的分支路径其是否被最终需求约束树上的分支路径包含,即生成的结果约束树是否是需求约束树中的子树。
具体地,子树检查的过程为自动化的将结果约束树在需求约束树中进行查找,分析当前结果约束树是否为需求约束树中的子树之一。只有当前结果约束树中的所有节点均在需求约束树中找到,并且节点之间的连接关系以及路径均符合需求约束树中的中的节点之间的连接关系和路径要求,不存在需求约束树中没有的独立路径,则判定当前测试的结果约束树子树检查正确。否则,一旦出现约束树独立存在的情况,即有路径在需求约束树中没有找到,则测试结果错误,软件出错,此时将错误的节点路径在路径错误表中记录下来,如下表11所示。
时间 | W | D | C | … | Ai |
T0+1 | 0 | 0 | 1 | 0.24 | |
T0+9 | 0 | 0 | 0 | 100 | |
… | … | … | … | … | … |
T0+i | … | … | … | … | … |
表11错误记录表
2)节点检查:对应结果约束树的最后的叶节点是否为有效节点;若能同时满足上述两个条件,则此条记录为正常,否则,此条测试数据异常,对应的为软件缺陷。节点检查为分析当前结果约束树中的各个节点的有效性,该检查建立在子树检查完成之后,即当前结果约束树是需求约束树中的子树之一。通过将各个节点在全部前置条件约束表和后置判断约束表中进行查找,进行分析。
具体地,判定所述结果约束树的子树检查正确后,分析所述结果约束树中的前置有效节点和后置有效节点是否出现在所述需求约束树的前置条件型约束表中和后置判断型约束表中,若所述结果约束树中的前置有效节点和后置有效节点出现在所述需求约束树的前置条件型约束表中和后置判断型约束表中,判定所述结果约束树中的该前置有效节点和该后置有效节点为有效节点;若所述结果约束树中的前置有效节点和后置有效节点未出现在所述需求约束树的前置条件型约束表中和后置判断型约束表中,判定所述结果约束树中的该前置有效节点和该后置有效节点为无效节点。也就是说,当结果约束树的某一个节点是上述某一个表中的一个状态量的时候该节点为有效节点。当结果约束树中的某一个节点是前置条件表中的某一个前置条件的时候,该节点为有效节点。当结果约束树中的某一个节点是后置判断表中的某一个后置判断的时候,该节点为有效节点。否则,上述三者均不是的情况,该节点为无效节点。当结果约束树中出现无效节点时,出现无效节点处测试错误,软件出现错误。将无效节点记录下来。
2、测试覆盖性分析:将所有用例生成的结果约束树合并,即将所有重复的节点和路径合在一棵树上,生成一个完整的覆盖树,将所述覆盖树与所述需求约束树进行比较分析,当所述覆盖树与所述需求约束树完全相同,判定当前所有用例的总和满足全部预设的需求。具体地,将所有用例生成的结果约束树合并,即将所有重复的节点和路径合在一棵树上,生成一个完整的覆盖树,将该覆盖树同需求约束树进行比较分析,当覆盖树与需求约束树完全相同时表明当前所有用例覆盖全部需求。当覆盖树只是需求约束树的一棵子树的时候,表明尚有需求路径没有被覆盖到。
测试覆盖是度量测试完整的一个手段。本发明的技术统计得到的覆盖分析结果生成的覆盖树可以作为测试人员衡量测试完整性的一种依据,如分析所有配置项测试数据,得到覆盖树,然后可以根据此覆盖树注重分析未覆盖分支,并在有必要的情况下设计针对性的测试用例。
本发明基于约束树的星载软件测试数据分析方法的有益效果:可以作为星载软件实施自动化测试的支撑,同时也可作为已有测试数据分析的工具,可以快速的分析当前测试数据的正确性,也可以得到当前所有测试数据对需求功能的覆盖情况。
需要说明的是,通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明的部分或全部可借助软件并结合必需的通用硬件平台来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可包括其上存储有机器可执行指令的一个或多个机器可读介质,这些指令在由诸如计算机、计算机网络或其他电子设备等一个或多个机器执行时可使得该一个或多个机器根据本发明的实施例来执行操作。机器可读介质可包括,但不限于,软盘、光盘、CD-ROM(紧致盘-只读存储器)、磁光盘、ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪存、或适于存储机器可执行指令的其他类型的介质/机器可读介质。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,本领域技术人员可以理解,上述部分组件可以是可编程逻辑器件,包括:可编程阵列逻辑(Programmable Array Logic,PAL)、通用阵列逻辑(Generic ArrayLogic,GAL)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)中的一种或多种,本发明对此不做具体限制。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (7)
1.一种基于约束树的星载软件测试数据分析方法,其特征在于,包括:
将预设的需求的逐项描述逐一转换为表格化描述,并将所述表格化描述定义为约束表;
采用主元融合法对所有所述约束表进行处理,生成需求约束树;
采用主元融合法对实际测试生成的记录表中的各个用例的测试结果进行处理,生成与每个用例一一对应的结果约束树;
将每个所述用例各自生成的结果约束树与所述需求约束树进行比较,分析当前用例生成的结果约束树与所述需求约束树是否相符。
2.根据权利要求1所述的基于约束树的星载软件测试数据分析方法,其特征在于,采用主元融合法对所有所述约束表进行处理,生成需求约束树,包括:
将所述约束表分为逻辑选择型约束表、前置条件型约束表以及后置判断型约束表三种类型;
将具有固定的逻辑关系的一组状态量设置在所述逻辑选择型约束表中的同一行;
将当前状态量需要满足的判断条件定义为该当前状态量的前置条件,并将该前置条件与该当前状态量设置在所述前置条件型约束表中的同一行;
将受约束于当前状态量的判断条件定义为该当前状态量的后置判断条件,并将该后置判断条件与该当前状态量设置在所述后置判断型约束表中的同一行;
采用主元融合法对所有所述逻辑选择型约束表、所述前置条件型约束表以及所述后置判断型约束表进行处理,生成所述需求约束树。
3.根据权利要求2所述的基于约束树的星载软件测试数据分析方法,其特征在于,采用主元融合法对所有所述逻辑选择型约束表、所述前置条件型约束表以及所述后置判断型约束表进行处理,生成所述需求约束树,包括:
将所述逻辑选择型约束表中最左列出现的状态量定义为最高优先级状态量,其余各状态量的优先级根据在所述逻辑选择型约束表中出现的位置由左至右依次降低,将所述逻辑选择型约束表中的每一个状态量作为所述需求约束树中的一个节点;
将所述需求约束树的第0层定义为ROOT;
将所述逻辑选择型约束表中的所有所述最高优先级状态量排列在所述需求约束树的第1层;
将所述逻辑选择型约束表中的其余各状态量根据各自的优先级等级依次降序排列在所述需求约束树的其余各层;
将所述前置条件型约束表中的各前置条件生成为一个前置有效节点,并插入在与该前置条件对应的状态量的节点的前端;
将所述后置判断条件型约束表中的各后置判断条件生成为与该后置判断条件对应的状态量的后置有效节点,并插入在与该后置判断条件对应的状态量的节点的后端;
将同时作为一个状态量的后置判断条件以及另一个状态量的前置条件的判断条件,生成一个中间有效节点并插入在该两个状态量的节点的中间;
根据上述对所述状态量、所述前置条件、以及所述后置判断条件的排列方式,形成所述需求约束树。
4.根据权利要求3所述的基于约束树的星载软件测试数据分析方法,其特征在于,所述状态量包括:工作模式、定姿模式、导引率模式、以及控制模式,所述工作模式、定姿模式、导引率模式、以及控制模式的优先级等级为工作模式>定姿模式=导引率模式>控制模式。
5.根据权利要求3所述的基于约束树的星载软件测试数据分析方法,其特征在于,分析当前用例生成的结果约束树与所述需求约束树是否相符,包括:将每个所述用例各自生成的结果约束树的各个节点与所述需求约束树的各个节点进行正确性分析和测试覆盖性分析。
6.根据权利要求5所述的基于约束树的星载软件测试数据分析方法,其特征在于,将每个所述用例各自生成的结果约束树的各个节点与所述需求约束树的各个节点进行正确性分析,包括:
子树检查:将所述结果约束树在所述需求约束树中进行查找,分析所述结果约束树是否为所述需求约束树中的子树之一,若所述结果约束树中的所有节点均在所述需求约束树中出现,并且所述结果约束树中的节点之间的连接关系和路径均符合所述需求约束树中的节点之间的连接关系和路径,判定所述结果约束树的子树检查正确;
节点检查:判定所述结果约束树的子树检查正确后,分析所述结果约束树中的前置有效节点和后置有效节点是否出现在所述需求约束树的前置条件型约束表中和后置判断型约束表中,若所述结果约束树中的前置有效节点和后置有效节点出现在所述需求约束树的前置条件型约束表中和后置判断型约束表中,判定所述结果约束树中的该前置有效节点和该后置有效节点为有效节点;若所述结果约束树中的前置有效节点和后置有效节点未出现在所述需求约束树的前置条件型约束表中和后置判断型约束表中,判定所述结果约束树中的该前置有效节点和该后置有效节点为无效节点。
7.根据权利要求5所述的基于约束树的星载软件测试数据分析方法,其特征在于,将每个所述用例各自生成的结果约束树的各个节点与所述需求约束树的各个节点进行测试覆盖性分析,包括:将所有用例生成的结果约束树合并形成一个覆盖树,将所述覆盖树与所述需求约束树进行比较分析,当所述覆盖树与所述需求约束树完全相同,判定当前所有用例的总和满足全部预设的需求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610899082.7A CN106569944B (zh) | 2016-10-14 | 2016-10-14 | 基于约束树的星载软件测试数据分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610899082.7A CN106569944B (zh) | 2016-10-14 | 2016-10-14 | 基于约束树的星载软件测试数据分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106569944A true CN106569944A (zh) | 2017-04-19 |
CN106569944B CN106569944B (zh) | 2019-12-13 |
Family
ID=58532821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610899082.7A Expired - Fee Related CN106569944B (zh) | 2016-10-14 | 2016-10-14 | 基于约束树的星载软件测试数据分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106569944B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107330290A (zh) * | 2017-07-11 | 2017-11-07 | 上海联影医疗科技有限公司 | 数据处理方法及装置 |
CN109270366A (zh) * | 2018-08-20 | 2019-01-25 | 上海微小卫星工程中心 | 一种短周期批产化卫星的测试方法 |
CN111125996A (zh) * | 2019-12-10 | 2020-05-08 | 上海高性能集成电路设计中心 | 一种伪随机激励生成器的基于双向约束树指令集实现方法 |
CN117829044A (zh) * | 2024-03-01 | 2024-04-05 | 上海合见工业软件集团有限公司 | 一种eda约束检测系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7823100B1 (en) * | 2006-09-29 | 2010-10-26 | Breker Verification Systems, Inc. | Generating self-checking test cases from a reduced case analysis graph using path constraints |
CN102419728A (zh) * | 2011-11-01 | 2012-04-18 | 北京邮电大学 | 基于覆盖率量化指标确定软件测试过程充分性的方法 |
CN102968368A (zh) * | 2012-08-30 | 2013-03-13 | 中国人民解放军63928部队 | 一种遍历场景状态图的嵌入式测试用例设计与生成方法 |
CN104461887A (zh) * | 2014-12-11 | 2015-03-25 | 吴翔虎 | 一种基于动态模型的嵌入式软件黑盒测试用例生成方法 |
WO2016133855A1 (en) * | 2015-02-19 | 2016-08-25 | Medidata Solutions, Inc. | System and method for generating an effective test data set for testing big data applications |
-
2016
- 2016-10-14 CN CN201610899082.7A patent/CN106569944B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7823100B1 (en) * | 2006-09-29 | 2010-10-26 | Breker Verification Systems, Inc. | Generating self-checking test cases from a reduced case analysis graph using path constraints |
CN102419728A (zh) * | 2011-11-01 | 2012-04-18 | 北京邮电大学 | 基于覆盖率量化指标确定软件测试过程充分性的方法 |
CN102968368A (zh) * | 2012-08-30 | 2013-03-13 | 中国人民解放军63928部队 | 一种遍历场景状态图的嵌入式测试用例设计与生成方法 |
CN104461887A (zh) * | 2014-12-11 | 2015-03-25 | 吴翔虎 | 一种基于动态模型的嵌入式软件黑盒测试用例生成方法 |
WO2016133855A1 (en) * | 2015-02-19 | 2016-08-25 | Medidata Solutions, Inc. | System and method for generating an effective test data set for testing big data applications |
Non-Patent Citations (2)
Title |
---|
吴限德: "《中国博士学位论文全文数据库》", 15 April 2011 * |
杨波等: "一种软件测试需求建模及测试用例生成方法", 《计算机学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107330290A (zh) * | 2017-07-11 | 2017-11-07 | 上海联影医疗科技有限公司 | 数据处理方法及装置 |
CN109270366A (zh) * | 2018-08-20 | 2019-01-25 | 上海微小卫星工程中心 | 一种短周期批产化卫星的测试方法 |
CN111125996A (zh) * | 2019-12-10 | 2020-05-08 | 上海高性能集成电路设计中心 | 一种伪随机激励生成器的基于双向约束树指令集实现方法 |
CN111125996B (zh) * | 2019-12-10 | 2023-04-07 | 上海高性能集成电路设计中心 | 一种伪随机激励生成器的基于双向约束树指令集实现方法 |
CN117829044A (zh) * | 2024-03-01 | 2024-04-05 | 上海合见工业软件集团有限公司 | 一种eda约束检测系统 |
CN117829044B (zh) * | 2024-03-01 | 2024-05-14 | 上海合见工业软件集团有限公司 | 一种eda约束检测系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106569944B (zh) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102012102770B9 (de) | System und Verfahren zur Fehlereingrenzung und Fehlerabschwächung basierend auf einer Netzwerkmodellierung | |
CN110134588B (zh) | 一种基于代码和组合覆盖的测试用例优先级排序方法及测试系统 | |
CN110221975B (zh) | 创建接口用例自动化测试脚本的方法及装置 | |
CN106569944A (zh) | 基于约束树的星载软件测试数据分析方法 | |
CN110174883B (zh) | 一种系统健康状态评估方法及装置 | |
CN107577603A (zh) | 一种基于测试用例构建决策树的程序条件语句自动化修复系统及方法 | |
CN109144882A (zh) | 一种基于程序不变量的软件故障定位方法及装置 | |
CN112052172B (zh) | 第三方通道的快速测试方法、装置和电子设备 | |
CN102945204A (zh) | 一种基于接口模型的操作系统标准符合性测试的充分性评估方法 | |
CN107291063A (zh) | 用于监控技术设施的运行的诊断装置和诊断方法 | |
CN111859047A (zh) | 一种故障解决方法及装置 | |
CN105842607A (zh) | 一种测试性设计中测试点定量选择方法及装置 | |
CN112860676A (zh) | 应用于大数据挖掘和业务分析的数据清洗方法及云服务器 | |
CN112559316A (zh) | 软件测试方法和设备、计算机存储介质以及服务器 | |
CN113723637B (zh) | 一种面向船舶维修体系的经济性修理级别分析方法及系统 | |
Maruster et al. | Tailoring the engineering design process through data and process mining | |
CN114880312A (zh) | 一种可柔性设置的应用系统业务数据稽核方法 | |
CN113242213B (zh) | 一种电力通信骨干网节点脆弱性诊断方法 | |
CN112380763A (zh) | 一种基于数据挖掘的堆内构件可靠性分析系统及方法 | |
Siddique et al. | Hybrid Framework To Exclude Similar and Faulty Test Cases In Regression Testing | |
CN111144429A (zh) | 对象分类方法及其系统、计算机系统及计算机可读介质 | |
CN115687034A (zh) | 一种业务系统平面可用性判定方法和装置 | |
CN112434471A (zh) | 提升模型泛化能力的方法、系统、电子设备及存储介质 | |
Shao et al. | Research on Cross‐Company Defect Prediction Method to Improve Software Security | |
CN118509340B (zh) | 基于深度学习的网络通信异常识别方法、系统及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191213 Termination date: 20201014 |