一种基于多协议辨识和自测试的电能表功能检测方法与流程

1.本发明属于电能表功能检测领域,具体涉及一种基于多协议辨识和自测试的电能表功能检测方法。

背景技术


::2.目前,智能电表在送样和批量生产之前需要进行功能检测。常见电能表功能检测的方法主要包括:(1)人工检测,即人为建立各种输入量,判断电能表的输出行为是否技术条件的要求。(2)自动化台体功能检测,即通过预设电能表功能自动测试方案,实现台体控源和下发指定数据请求帧,等待电能表的应答行为。若电能表的应答行为是否预设的规则要求,则判为当前功能检测合格;反之,则判为当前功能检测不合格。3.然而这些功能检测方法都存在着各自的问题:4.(1)人工检测的效率低、检测周期较长。在软件开发前中期,代码不断变更,导致人工检测只能进行单个功能块的测试。系统整体测试主要集中在软件开发后期,导致测试不充分,发现软件bug的困难增大。5.(2)自动化台体功能检测,在一定程度上可提高测试行为的效率,但对于测试需求的覆盖,例如程序边界、分支、路径执行,都不能令人满意。技术实现要素:6.本发明的目的是针对目前电能表检测存在的问题,提出一种基于多协议辨识和自测试的电能表功能检测方法。本发明通过测试中上位机的数据请求帧以及电能表的应答帧,正确识别当前数据请求帧以及应答帧所属的通讯规约并提取数据帧中特征信息;同时,建立参考测试数据库和人工测试数据库,生成基于特征值的测试用例,通过计算测试用例的测试贡献度和路径覆盖率,提高电能表功能检测的覆盖度和测试效率。7.本发明的技术方案是:8.本发明提供一种基于多协议辨识和自测试的电能表功能检测方法,包括:9.s1、建立参考测试数据库和人工测试数据库,将测试用例存储在对应的数据库中;10.s2、从测试流程的报文数据中,辨识数据帧归属的协议类型,并提取帧特征信息,所述的包括里程牌偏移信息ofsms和特征信息feainfo;11.s3、将帧特征信息转化为中文、数字和字母组合的字符串并还原出原始数据帧;12.s4、根据原始数据帧信息,识别出对应的测试用例,进行测试。13.进一步地,s2中,辨识数据帧归属的协议类型具体为:14.采用多协议过滤分析器根据当前已接收报文数据的帧头、在对应协议中的程碑信息以及里程碑的偏移量ofsms,与对应协议的数据帧格式进行匹配;15.ofsmsk+1=proti(curmsk),(i=0,1,....,m且k=1,...,n)16.其中proti为第i个协议类型,curmsk为当前里程牌结点,m为当前支持的协议总个数,n为里程碑总个数,ofsmsk+1为下一个里程碑的偏移量。17.进一步地,s2中,为当前支持的所有协议配置多协议过滤分析器profilter,分别执行以下操作:18.数据结构初始化,根据协议类型prottype将协议内容划分为对应的里程牌,所述的协议内容包括帧头起始符、帧数据长度、通信地址、控制码、数据标识、数据单元、帧校验符和帧尾结束符;19.解析报文数据,查询数据帧头指针ptrstart所指向的数据是否符合当前协议的初始里程牌,如果不符合,则将帧头指针指向下一个数据直至到符合的初始里程牌;20.将指针指向帧头之后的数据,获取该数据与帧头之间的偏移量ofsanaly,将偏移量ofsanaly与该协议的下一里程碑相对于帧头的偏移ofsms进行比较,如果不符合,则将指针指向下一个数据,偏移量ofsanaly+1,直到查询到偏移量ofsanaly与前述偏移ofsms匹配,记录第一里程碑,以此类推,如果报文数据符合该协议的所有里程牌偏移量ofsms,则该报文数据为当前协议类型。21.进一步地,s2中提取的帧特征信息包括:里程牌偏移信息ofsms和特征信息feainfo,特征信息feainfo的获取方式如下:22.根据辨识得到的协议类型中各里程牌结点curms,里程牌偏移量ofsms以及特征信息在里程碑结点中的位置pos,推导出特征信息feainfo的具体内容:[0023][0024]其中:pos为第x个特征信息对应里程碑的结点序号,frame为合法数据帧的内容,ofsmspos和ofsmspos+1分别为第x和x+1个特征信息的偏移量,q为当前协议中包含特征信息的总个数。[0025]进一步地,s3中、帧特征信息转化具体为:[0026]根据报文数据获取数据请求帧中的控制码ctrlreq以及应答帧中的控制码ctrres,提取帧设置或读取内容;[0027]若应答控制码ctrres为所识别协议的异常应答,则放弃此帧设置或读取内容的提取;[0028]若应答控制码ctrres为所识别协议正常应答并且对应数据请求帧中的控制码ctrlreq为设置,则提取数据请求帧中的设置内容;若应答控制码ctrres为某协议正常应答并且对应数据请求帧中的控制码ctrlreq为读取,则提取数据应答帧中的读取内容,记为字符串信息strinfo。[0029]进一步地,所述的帧特征信息转化还包括:[0030]将帧特征信息即里程牌偏移信息ofsms和特征信息feainfo与字符串信息strinfo建立映射关系,得到字符串映射表strmaptable[],实现将符合协议的帧特征信息转换为中文、字母和数字组合的字符串信息;[0031]通过特征信息feainfo、里程牌偏移信息ofsms和协议规则protrules还原数据请求帧和应答帧。[0032]进一步地,人工测试数据库包括经验测试用例和随机测试用例,其中,随机测试用例的产生和更新步骤为:[0033]当里程牌偏移信息ofsms中包括预设功能关键词时,基于前述预设功能关键词,产生预设的输入参数变量集合和输出参数变量集合;所述的输入、输出参数变量集合为根据预设的特征参数、以及按照特征参数变化量、阈值获得的集合;[0034]根据输入、输出参数变量集合获取对应特定功能的随机测试用例集合op,更新人工测试数据库:[0035]op=fun(opinput,opoutput)[oppre,oppost,rules][0036]其中:opinput是所有输入参数变量的集合,opoutput是所有输出参数变量的集合,oppre和oppost分别为操作的前者条件和后置条件,rules为测试用例的规则集。[0037]进一步地,电能表的待测功能分别包括若干个测试方案,每个测试方案均包括若干个测试用例,采用下述公式计算同类测试用例的测试贡献度:[0038][0039]其中:j表示测试用例的编号,t表示测试方案编号;numt表示对应测试功能所包含的测试方案总数,num_opt表示第t个测试方案所包含的测试用例总数,hopejt表示第t个测试方案所包含的第j个测试用例的总数。[0040]进一步地,所述的测试用例包括若干个测试路径,采用下述公式计算测试路径的覆盖率:[0041][0042]其中:nt表示第t个测试方案所包含的测试路径总数,dt表示第t个测试方案中已测试的路径数。[0043]本发明的有益效果:[0044]本发明通过测试中上位机的数据请求帧以及电能表的应答帧,正确识别当前数据请求帧以及应答帧所属的通讯规约并提取数据帧中特征信息。[0045]本发明建立参考测试数据库和人工测试数据库,生成基于特征值的测试用例,通过计算测试用例的测试贡献度和路径覆盖率,帮助用户了解电能表功能检测的覆盖度和测试效率等情况,方便用户调整方案,减少测试人员在整个测试过程中的参与度。[0046]本发明的人工测试数据库包括经验测试用例和随机测试用例,通过监测测试流程,能够识别功能关键词,生成基于特征的随机测试用例,有效可提高数据值域的检测覆盖率。[0047]本发明的其它特征和优点将在随后具体实施方式部分予以详细说明。附图说明[0048]通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。[0049]图1是根据本发明实施例的基于多协议辨识和自测试的电能表功能检测方法的流程图。[0050]图2是本发明实施例的多协议辨识和帧特征信息提取的流程图。[0051]图3是本发明实施例中建立参考测试数据库和人工测试数据库的流程图。[0052]图4是本发明实施例的基于特征值的随机测试用例生成的流程图。[0053]图5是本发明实施例的基于路径贡献度算法的测试用例生成的流程图。具体实施方式[0054]下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。[0055]本发明提供一种基于多协议辨识和自测试的电能表功能检测方法,包括:[0056]s1、建立参考测试数据库和人工测试数据库,将测试用例存储在对应的数据库中;[0057]s2、从测试流程的报文数据中,辨识数据帧归属的协议类型,并提取帧特征信息,所述的包括里程牌偏移信息ofsms和特征信息feainfo;[0058]s2中,辨识数据帧归属的协议类型具体为:[0059]采用多协议过滤分析器根据当前已接收报文数据的帧头、在对应协议中的程碑信息以及里程碑的偏移量ofsms,与对应协议的数据帧格式进行匹配;[0060]ofsmsk+1=proti(curmsk),(i=0,1,....,m且k=1,...,n)[0061]其中proti为第i个协议类型,curmsk为当前里程牌结点,m为当前支持的协议总个数,n为里程碑总个数,ofsmsk+1为下一个里程碑的偏移量。[0062]为当前支持的所有协议配置多协议过滤分析器profilter,分别执行以下操作,如图2所示:[0063]数据结构初始化,根据协议类型prottype将协议内容划分为对应的里程牌,所述的协议内容包括帧头起始符、帧数据长度、通信地址、控制码、数据标识、数据单元、帧校验符和帧尾结束符;[0064]解析报文数据,查询数据帧头指针ptrstart所指向的数据是否符合当前协议的初始里程牌,如果不符合,则将帧头指针指向下一个数据直至到符合的初始里程牌;[0065]将指针指向帧头之后的数据,获取该数据与帧头之间的偏移量ofsanaly,将偏移量ofsanaly与该协议的下一里程碑相对于帧头的偏移ofsms进行比较,如果不符合,则将指针指向下一个数据,偏移量ofsanaly+1,直到查询到偏移量ofsanaly与前述偏移ofsms匹配,记录第一里程碑,以此类推,如果报文数据符合该协议的所有里程牌偏移量ofsms,则该报文数据为当前协议类型。[0066]s3、将帧特征信息转化为中文、数字和字母组合的字符串并还原出原始数据帧,s3中、帧特征信息转化具体为:[0067]根据报文数据获取数据请求帧中的控制码ctrlreq以及应答帧中的控制码ctrres,提取帧设置或读取内容;[0068]若应答控制码ctrres为所识别协议的异常应答,则放弃此帧设置或读取内容的提取;[0069]若应答控制码ctrres为所识别协议正常应答并且对应数据请求帧中的控制码ctrlreq为设置,则提取数据请求帧中的设置内容;若应答控制码ctrres为某协议正常应答并且对应数据请求帧中的控制码ctrlreq为读取,则提取数据应答帧中的读取内容,记为字符串信息strinfo。[0070]所述的帧特征信息转化还包括:[0071]将帧特征信息即里程牌偏移信息ofsms和特征信息feainfo与字符串信息strinfo建立映射关系,得到字符串映射表strmaptable[],实现将符合协议的帧特征信息转换为中文、字母和数字组合的字符串信息;[0072]通过特征信息feainfo、里程牌偏移信息ofsms和协议规则protrules还原数据请求帧和应答帧。[0073]s4、根据原始数据帧信息,识别出对应的测试用例,进行测试。[0074]进一步地,s2中提取的帧特征信息包括:里程牌偏移信息ofsms和特征信息feainfo,特征信息feainfo的获取方式如下:[0075]根据辨识得到的协议类型中各里程牌结点curms,里程牌偏移量ofsms以及特征信息在里程碑结点中的位置pos,推导出特征信息feainfo的具体内容:[0076][0077]其中:pos为第x个特征信息对应里程碑的结点序号,frame为合法数据帧的内容,ofsmspos和ofsmspos+1分别为第x和x+1个特征信息的偏移量,q为当前协议中包含特征信息的总个数。[0078]进一步地,人工测试数据库包括经验测试用例和随机测试用例,其中,如图4所示,随机测试用例的产生和更新步骤为:[0079]当里程牌偏移信息ofsms中包括预设功能关键词时,基于前述预设功能关键词,产生预设的输入参数变量集合和输出参数变量集合;所述的输入、输出参数变量集合为根据预设的特征参数、以及按照特征参数变化量、阈值获得的集合;[0080]根据输入、输出参数变量集合获取对应特定功能的随机测试用例集合op,更新人工测试数据库:[0081]op=fun(opinput,opoutput)[oppre,oppost,rules][0082]其中:opinput是所有输入参数变量的集合,opoutput是所有输出参数变量的集合,oppre和oppost分别为操作的前者条件和后置条件,rules为测试用例的规则集。[0083]进一步地,电能表的待测功能分别包括若干个测试方案,每个测试方案均包括若干个测试用例,采用下述公式计算同类测试用例的测试贡献度:[0084][0085]其中:j表示测试用例的编号,t表示测试方案编号;numt表示对应测试功能所包含的测试方案总数,num_opt表示第t个测试方案所包含的测试用例总数,hopejt表示第t个测试方案所包含的第j个测试用例的总数。[0086]进一步地,所述的测试用例包括若干个测试路径,采用下述公式计算测试路径的覆盖率:[0087][0088]其中:nt表示第t个测试方案所包含的测试路径总数,dt表示第t个测试方案中已测试的路径数。[0089]具体实施时:[0090]图2为本实施例的多协议辨识和内容提取的流程,具体步骤为:(1)多协议过滤器的数据结构成员的初始化;(2)判断帧头指针指向的数据单元是否满足初始里程碑。若不满足,则将帧头指针指向下一个数据单元,重复(2);则若满足,则继续向下执行;(3)已分析帧偏移加1,根据当前里程碑预测下一里程碑相对于帧头的偏移;(4)判断已分析帧偏移是否等于下一里程碑相对于帧头的偏移。若不等,则已分析帧偏移加1,重复(4);若相等,则指向下一里程碑,已分析帧偏移加1;(5)判断当前分析数据是否为结束符,若不为结束符,则指向(4);若为结束符,则到符合某协议的数据帧,记录帧特征信息和数据内容。[0091]图3是本发明实施例中建立参考测试数据库和人工测试数据库的流程图,具体步骤为:(1)判断当前测试用例是否属于参考测试库。若是,则执行(2);若不是,则执行(3);(2)监测参考测试用例中的台体控源信息,上位机数据请求帧以及电表的应答帧;记录字符串映射表strmaptable1;添加至参考操作映射表maptablerefaction;(3)监测人工测试用例中的台体控源信息,上位机数据请求帧以及电表的应答帧;记录字符串映射表strmaptable2;添加至人工操作映射表actionmaptablemanual。[0092]图4为本实施例的随机测试用例生成流程,具体步骤为:(1)初始化对应功能参数的取值范围和步长和完整操作步骤;(2)基于特征产生各参数的随机值;(3)若参数的组合已存在于测试用例之中,则重复执行(2),否则产生新的随机测试用例;(4)若测试结果符合决策测试规则,则判定当前功能合格;若测试结果不符合决策测试规则,则判定功能不合格,发现软件错误。[0093]图5为本实施例的基于路径贡献度的测试用例生成流程,具体步骤为:计算测试用例的贡献度和路径的覆盖率;当某一类测试用例的贡献度小于设定的时阈值,提高该测试用例的执行次数。[0094]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本

技术领域


:的普通技术人员来说许多修改和变更都是显而易见的。当前第1页12当前第1页12

技术特征:


1.一种基于多协议辨识和自测试的电能表功能检测方法,其特征在于,包括:s1、建立参考测试数据库和人工测试数据库,将测试用例存储在对应的数据库中;s2、从测试流程的报文数据中,辨识数据帧归属的协议类型,并提取帧特征信息,所述的包括里程牌偏移信息ofsms和特征信息feainfo;s3、将帧特征信息转化为中文、数字和字母组合的字符串并还原出原始数据帧;s4、根据原始数据帧信息,识别出对应的测试用例,进行测试。2.根据权利要求1所述的基于多协议辨识和自测试的电能表功能检测方法,其特征在于,s2中,辨识数据帧归属的协议类型具体为:采用多协议过滤分析器根据当前已接收报文数据的帧头、在对应协议中的程碑信息以及里程碑的偏移量ofsms,与对应协议的数据帧格式进行匹配;ofsms
k+1
=prot
i
(curms
k
),(i=0,1,....,m且k=1,...,n)其中prot
i
为第i个协议类型,curms
k
为当前里程牌结点,m为当前支持的协议总个数,n为里程碑总个数,ofsms
k+1
为下一个里程碑的偏移量。3.根据权利要求2所述的基于多协议辨识和自测试的电能表功能检测方法,其特征在于,s2中,为当前支持的所有协议配置多协议过滤分析器profilter,分别执行以下操作:数据结构初始化,根据协议类型prottype将协议内容划分为对应的里程牌,所述的协议内容包括帧头起始符、帧数据长度、通信地址、控制码、数据标识、数据单元、帧校验符和帧尾结束符;解析报文数据,查询数据帧头指针ptrstart所指向的数据是否符合当前协议的初始里程牌,如果不符合,则将帧头指针指向下一个数据直至到符合的初始里程牌;将指针指向帧头之后的数据,获取该数据与帧头之间的偏移量ofsanaly,将偏移量ofsanaly与该协议的下一里程碑相对于帧头的偏移ofsms进行比较,如果不符合,则将指针指向下一个数据,偏移量ofsanaly+1,直到查询到偏移量ofsanaly与前述偏移ofsms匹配,记录第一里程碑,以此类推,如果报文数据符合该协议的所有里程牌偏移量ofsms,则该报文数据为当前协议类型。4.根据权利要求2所述的基于多协议辨识和自测试的电能表功能检测方法,其特征在于,s2中提取的帧特征信息包括:里程牌偏移信息ofsms和特征信息feainfo,特征信息feainfo的获取方式如下:根据辨识得到的协议类型中各里程牌结点curms,里程牌偏移量ofsms以及特征信息在里程碑结点中的位置pos,推导出特征信息feainfo的具体内容:其中:pos为第x个特征信息对应里程碑的结点序号,frame为合法数据帧的内容,ofsms
pos
和ofsms
pos+1
分别为第x和x+1个特征信息的偏移量,q为当前协议中包含特征信息的总个数。5.根据权利要求4所述的基于多协议辨识和自测试的电能表功能检测方法,其特征在于,s3中、帧特征信息转化具体为:根据报文数据获取数据请求帧中的控制码ctrlreq以及应答帧中的控制码ctrres,提
取帧设置或读取内容;若应答控制码ctrres为所识别协议的异常应答,则放弃此帧设置或读取内容的提取;若应答控制码ctrres为所识别协议正常应答并且对应数据请求帧中的控制码ctrlreq为设置,则提取数据请求帧中的设置内容;若应答控制码ctrres为某协议正常应答并且对应数据请求帧中的控制码ctrlreq为读取,则提取数据应答帧中的读取内容,记为字符串信息strinfo。6.根据权利要求5所述的基于多协议辨识和自测试的电能表功能检测方法,其特征在于,所述的帧特征信息转化还包括:将帧特征信息即里程牌偏移信息ofsms和特征信息feainfo与字符串信息strinfo建立映射关系,得到字符串映射表strmaptable[],实现将符合协议的帧特征信息转换为中文、字母和数字组合的字符串信息;通过特征信息feainfo、里程牌偏移信息ofsms和协议规则protrules还原数据请求帧和应答帧。7.根据权利要求1所述的基于多协议辨识和自测试的电能表功能检测方法,其特征在于,人工测试数据库包括经验测试用例和随机测试用例,其中,随机测试用例的产生和更新步骤为:当里程牌偏移信息ofsms中包括预设功能关键词时,基于前述预设功能关键词,产生预设的输入参数变量集合和输出参数变量集合;所述的输入、输出参数变量集合为根据预设的特征参数、以及按照特征参数变化量、阈值获得的集合;根据输入、输出参数变量集合获取对应特定功能的随机测试用例集合op,更新人工测试数据库:op=fun(op
input
,op
output
)[op
pre
,op
post
,rules]其中:op
input
是所有输入参数变量的集合,op
output
是所有输出参数变量的集合,op
pre
和op
post
分别为操作的前者条件和后置条件,rules为测试用例的规则集。8.根据权利要求7所述的基于多协议辨识和自测试的电能表功能检测方法其特征在于,电能表的待测功能分别包括若干个测试方案,每个测试方案均包括若干个测试用例,采用下述公式计算同类测试用例的测试贡献度:其中:j表示测试用例的编号,t表示测试方案编号;numt表示对应测试功能所包含的测试方案总数,num_op
t
表示第t个测试方案所包含的测试用例总数,hope
jt
表示第t个测试方案所包含的第j个测试用例的总数。9.根据权利要求8所述的基于多协议辨识和自测试的电能表功能检测方法其特征在于,所述的测试用例包括若干个测试路径,采用下述公式计算测试路径的覆盖率:
其中:n
t
表示第t个测试方案所包含的测试路径总数,d
t
表示第t个测试方案中已测试的路径数。

技术总结


本发明提供一种基于多协议辨识和自测试的电能表功能检测方法,包括:建立参考测试数据库和人工测试数据库,将测试用例存储在对应的数据库中;从测试流程的报文数据中,辨识数据帧归属的协议类型,并提取帧特征信息,所述的包括里程牌偏移信息和特征信息;将帧特征信息转化为中文、数字和字母组合的字符串并还原出原始数据帧;根据原始数据帧信息,识别出对应的测试用例,进行测试。本发明通过测试中上位机的数据请求帧以及电能表的应答帧,正确识别当前数据请求帧以及应答帧所属的通讯规约并提取数据帧中特征信息;同时,通过计算测试用例的测试贡献度和路径覆盖率,提高电能表功能检测的覆盖度和测试效率。能检测的覆盖度和测试效率。能检测的覆盖度和测试效率。


技术研发人员:

袁于程 黄健 谢晨旸 刘银虎 马骏华 陆永华

受保护的技术使用者:

江苏林洋能源股份有限公司

技术研发日:

2022.05.09

技术公布日:

2022/12/26

本文发布于:2024-09-21 03:18:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/49144.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:测试   协议   数据   特征
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议