CN105868106B - 超声设备可靠性的测试方法及测试系统 - Google Patents

超声设备可靠性的测试方法及测试系统 Download PDF

Info

Publication number
CN105868106B
CN105868106B CN201610176776.8A CN201610176776A CN105868106B CN 105868106 B CN105868106 B CN 105868106B CN 201610176776 A CN201610176776 A CN 201610176776A CN 105868106 B CN105868106 B CN 105868106B
Authority
CN
China
Prior art keywords
test vector
test
sequence
vector
random
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
CN201610176776.8A
Other languages
English (en)
Other versions
CN105868106A (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.)
Feiyinuo Technology Co ltd
Original Assignee
Vinno Technology Suzhou Co Ltd
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 Vinno Technology Suzhou Co Ltd filed Critical Vinno Technology Suzhou Co Ltd
Priority to CN201610176776.8A priority Critical patent/CN105868106B/zh
Publication of CN105868106A publication Critical patent/CN105868106A/zh
Application granted granted Critical
Publication of CN105868106B publication Critical patent/CN105868106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test 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)
  • Complex Calculations (AREA)

Abstract

本发明提供一种超声设备可靠性的测试方法及测试系统,所述方法包括:提取待测试产品代码中的行为动作;根据行为动作调取指令调用映射表,生成执行函数;将执行函数的执行结果分别封装到测试程序中并转换为多个测试向量;提取测试向量中与用户交互相关的测试向量1,以建立与用户交互行为相关联的形式化规则库;随机选取测试向量生成随机测试向量序列,并对测试向量和随机测试向量序列进行功能归类;将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与形式化规则库进行匹配,在匹配成功后,确认当前的测试向量和/或随机测试序列覆盖用户需求,并继续测试;本发明优化测试序列生成,去除冗余测试序列,大幅缩短测试时间。

Description

超声设备可靠性的测试方法及测试系统
技术领域
本发明属于医疗超声诊断技术领域,尤其涉及一种用于超声设备可靠性的测试方法及测试系统。
背景技术
超声成像因为其无创性、实时性、操作方便、价格便宜等诸多优势,使其成为临床上应用最为广泛的诊断工具之一。
对超声设备的可靠性测试中,通常包括软件、硬件两方面的测试,采用覆盖测试算法通过等价类划分获取测试因素集合,然后通过组合测试生成覆盖表,用来验证软件、硬件的可靠性;该种测试算法通过等价类划分测试集合生成的组合覆盖表冗余数据较多,且生成的数据量较大不适用敏捷迭代开发中实施自动化测试,同时,采用该覆盖测试算法仅可获得局部覆盖测试效果,在产品新功能年度开发周期里,对整体系统可靠性提升有限。
发明内容
本发明的目的在于提供一种超声设备可靠性的测试方法及测试系统。
为了实现上述发明目的之一,本发明一实施方式提供一种超声设备可靠性的测试方法,所述方法包括:
S1、提取待测试产品代码中的行为动作;
所述行为动作至少包括:namespace、classname、MethodName、PropertyName、Type、Argument list、ReturnType;
S2、根据所述行为动作调取指令调用映射表,生成执行函数;所述指令调用映射表为函数调用指令或函数调用模板;
S3、将所述执行函数的执行结果分别封装到测试程序中并转换为多个测试向量;
每个所述测试向量至少包括:Timestamp、State、Id、Action、Parameter、Children、Precondition、Postcondition;
S4、提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库;
同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述随机测试向量序列进行功能归类;
S5、将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配,
若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用户需求,将其加入到随机测试序列集,以生成固定格式的数据文件继续执行;
若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行测试;
若可以通过实际运行测试,则返回修改形式化规则库;
若未通过实际运行测试,则丢弃当前的测试向量和/或随机测试序列。
作为本发明一实施方式的进一步改进,所述步骤S4中,“提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库”具体包括:
P1、在测试程序中,采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,以生成多个形式化测试序列的集合;
P2、按照系统预设循环次数阈值,循环执行步骤P1,并去除所述形式化测试序列集合中相同的形式化测试序列,形成形式化规则库;
所述预设的形式化规则方法包括:
按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序列执行。
作为本发明一实施方式的进一步改进,所述方法还包括:
对所述形式化规则库中的任意一个测试向量1进行词频统计,并计算与之相邻的测试向量1同时出现的次序频,按照各个测试向量1相关次序频的大小,依次执行各个测试向量1。
作为本发明一实施方式的进一步改进,对选取所述测试向量采用隐马尔可夫随机模型生成随机测试向量序列。
作为本发明一实施方式的进一步改进,采用Softmax分类器对所述测试向量和所述随机测试向量序列进行功能归类。
为了实现上述发明目的之一,本发明一实施方式提供一种超声设备可靠性的测试系统,所述系统包括:参数获取模块,用于提取待测试产品代码中的行为动作;
所述行为动作至少包括:namespace、classname、MethodName、PropertyName、Type、Argument list、ReturnType;
执行模块,用于根据所述行为动作调取指令调用映射表,生成执行函数;所述指令调用映射表为函数调用指令或函数调用模板;
封装模块,用于将所述执行函数的执行结果分别封装到测试程序中并转换为多个测试向量;
每个所述测试向量至少包括:Timestamp、State、Id、Action、Parameter、Children、Precondition、Postcondition;
解析模块,用于提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库;
同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述随机测试向量序列进行功能归类;
将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配,
若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用户需求,将其加入到随机测试序列集,以生成固定格式的数据文件继续执行;
若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行测试;
若可以通过实际运行测试,则返回修改形式化规则库;
若未通过实际运行测试,则丢弃当前的测试向量和/或随机测试序列。
作为本发明一实施方式的进一步改进,所述解析模块具体用于:
在测试程序中,采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,以生成多个形式化测试序列的集合;
按照系统预设循环次数阈值,循环采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,并去除所述形式化测试序列集合中相同的形式化测试序列,形成形式化规则库;
所述预设的形式化规则方法包括:
按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序列执行。
作为本发明一实施方式的进一步改进,所述解析模块还用于:
对所述形式化规则库中的任意一个测试向量1进行词频统计,并计算与之相邻的测试向量1同时出现的次序频,按照各个测试向量1相关次序频的大小,依次执行各个测试向量1。
作为本发明一实施方式的进一步改进,所述解析模块对选取所述测试向量采用隐马尔可夫随机模型生成随机测试向量序列。
作为本发明一实施方式的进一步改进,所述解析模块采用Softmax分类器对所述测试向量和所述随机测试向量序列进行功能归类。
与现有技术相比,本发明的有益效果是:本发明的超声设备可靠性的测试方法及测试系统,采用系统预设的形式化规则方法描述与用户交互相关的各个测试向量间的约束关系,并建立形式规则库;使用隐马尔可夫模型生成随机测试向量序列,并对所述随机测试向量序列进行功能归类,进一步的,将经过功能分类的随机测试向量序列与上述形式规则库进行匹配,优化测试序列生成,去除冗余测试序列;并进一步的使用Softmax模型分类,用于生成专属类别的测试用例,可以有针对性进行覆盖测试,同时大幅缩短测试时间。
附图说明
图1是本发明一实施方式中超声设备可靠性的测试方法的流程图;
图2A、2B是本发明一具体示例中依据所述预设的形式化规则方法描述实际需求示意图;
图3是本发明一实施方式中超声设备可靠性的测试系统的模块示意图。
具体实施方式
以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
如图1所示,在本发明一实施方式提供的超声设备可靠性的测试方法,所述方法包括:
S1、提取待测试产品代码中的行为动作。所述行为动作至少包括:namespace、class、MethodName、PropertyName、Type、Argument list、ReturnType。
其中,namespace表示命名空间,Classname表示类名,MethodName表示方法名,PropertyName表示属性名,Type表示属性类型,Argument list表示方法名使用的参数集合,ReturnType表示方法名的返回值类型;在以下的调取过程中,命名空间用于生成引用头文件,类名称和属性名称,方法名称组合用于生成唯一标识ID和调用函数名。
本发明一具体实施方式中,可辅助使用编译工具或静态分析工具等提取待测试产品代码中的行为动作。
进一步的,为了便于后期调用所述行为动作,还可以将行为动作生成行为数据文件进行统一存储,在此不做详细赘述。
进一步的,本发明一实施方式中,所述超声设备可靠性的测试方法还包括:
S2、根据所述行为动作调取指令调用映射表,生成执行函数;所述指令调用映射表为函数调用指令或函数调用模板。
本发明一具体实施方式中,将所述行为动作添加到函数调用指令,该种调取方式为一对一调用,即一组行为动作对应一个函数调用指令;或将所述行为动作添加到函数调用模板,该种调取方式为多对一调用,即多组行为动作对应一个函数调用模板。
所述执行函数的生成形式例如:
<布尔返回值>{class name}_{Property/Method Name}()=>call instructionsor template。
进一步的,本发明一实施方式中,所述超声设备可靠性的测试方法还包括:
S3、将所述执行函数的执行结果分别封装到测试程序中并转换为多个测试向量;
每个所述测试向量至少包括:Timestamp、State、Id、Action、Parameter、Children、Precondition、Postcondition。
其中,Timestamp用于描述执行函数的执行时间;State为执行函数的执行状态标识,Id为唯一标识的字段,用于唯一标识以及搜寻TestAction对象,可以表示为:Id={class name}_{Property/Method Name},Action表示对应的执行函数、Parameter为所述执行函数需要调用的参数集合、Children用于描述从属行为集合、Precondition前置约束条件,用于定义执行一个TestAction前需要定义的环境、Postcondition后置约束条件,用于定义执行一个TestAction后需要清理的环境。
本发明一具体实施方式中,所述测试向量以TestAction表示,对所述TestAction的定义如下:
TestAction(Timestamp,State,Id,Action,Parameter,Children,Precondition,Postcondition)
可以理解的是,上述对所述TestAction的定义中,在实际执行时,各个参数的位置并不固定,各个参数的位置可以根据需要任意变动,在此不做详细赘述。
进一步的,本发明一实施方式中,所述超声设备可靠性的测试方法还包括:
S4、提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库;
同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述随机测试向量序列进行功能归类。
本发明一具体实施方式中,提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库具体包括:
P1、在测试程序中,采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,以生成多个形式化测试序列的集合;
所述预设的形式化规则方法包括:
按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序列执行。
按照顺序序列执行过程中,顺序序列A=a1+a2+,...,+an表示一个完整的执行序列,A表示形式化测试序列,a1、a2、...、an表示不同的测试向量1。
按照选择序列执行过程中,选择序列A=a1|a2|,....,|an表示形式化测试序列A中的任意成员。
按照分支序列执行过程中,若前项序列包含单个行为,则执行分支序列if(contain(a1))then a1+a2+,...,+an
若前项序列包含多个行为,则执行分支序if(contain(a1+a2+...+ak))then a1+a2+,...,+an;(k<=n);
若布尔条件condition满足,则执行分支序列if(condition)then A=a1+a2+,...,+an
按照幂集随机多选序列执行过程中,对于已定义的执行序列:A=a1+a2+,...,+an;该序列表示为集合A={a1,a2,...,an},求该集合A的幂集{{a1},{a1,a2},...,{a1,a2,...,an}},随机选取该幂集中的任一成员。
为了便于理解,依据所述预设的形式化规则方法描述实际需求,示例如图2A所示,该示例的具体流程如下:提取用户交互相关的测试向量1,采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,以生成多个形式化测试序列的集合;
新建病人->进入病人管理中心->进入病人报告->进行预览,存储和打印然后退出->导出指定格式病例到指定存储位置->进入导入病人管理->选择存储位置导入病人。
结合图2B所示,图2B为根据所述预设的形式化规则方法生成的多个形式化测试序列的集合,本发明具体示例中,以图表表示,在此不做详细赘述。
P2、按照系统预设循环次数阈值,循环执行步骤P1,并去除所述形式化测试序列集合中相同的形式化测试序列,形成形式化规则库;
步骤P2中,多次采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为过程中,会不断的生成新的形式化测试序列,进一步的,将新生成的形式化测试序列与之前形成的形式化测试序列进行比对,若相同,则仅保留其中的任一个形式化测试序列,如此,优化形式化规则库,去除冗余的形式化测试序列,提高随机测试的覆盖效率。
本发明一实施方式中,所述步骤S3还可以包括:对所述形式化规则库中的任意一个测试向量1进行词频统计,并计算与之相邻的测试向量1同时出现的次序频,按照各个测试向量1相关次序频的大小,依次执行各个测试向量1。
本发明一具体实施方式中,通过N-Gram模型对每个测试向量1进行词频统计,然后对于任意一个测试向量1,计算与之相邻的测试向量1一同出现的次序频,即统计anan-1出现的次数,当执行完成任意一个测试向量1后,可以自动执行与之相邻概率较大的测试向量1;用公式表示如下:
本发明一优选实施方式中,所述步骤S3中对选取所述测试向量采用隐马尔可夫随机模型生成随机测试向量序列。
随机选取所述测试向量生成随机测试向量序列具体包括:
M1、可采用传统的随机测试向量序列生成方法,也可以采用优化后的随机测试向量序列生成方法。
本发明一优选实施方式中,对选取所述测试向量采用隐马尔可夫随机模型生成随机测试向量序列。具体的,随机选取所述测试向量,并统计在实际交互测试过程中,各个测试向量的运行结果,各个所述测试向量对应的State,下一个测试向量对应的State与当前所述测试向量的State同时出现的概率,以及每个State对应出现Action的概率。
M2、根据上述参数生成隐马尔可夫模型的状态转置矩阵和State、Action的混淆矩阵;
M3、根据状态转置矩阵,对于当前的测试向量对应的State,随机选取下一个可能出现的测试向量的State,再依据混淆矩阵随机选取一个Action,依次迭代,可以生成相应的随机测试序列。
具体的,对于任意一个测试向量对应的状态Si,下一个测试向量对应的State与当前所述测试向量的State同时出现的概率值依次以S1,S2...Sj表示,则生成的状态转置矩阵为:
对于任意一个测试向量对应的状态Si,对应可能出现的指令函数的概率值分别以A1,A2...Aj,表示,则生成的State、Action的混淆矩阵为:
本发明一实施方式中,对所述测试向量和所述随机测试向量序列进行功能归类具体包括:
统计所述测试向量和所述随机测试向量序列在测试过程中出现的故障,并根据故障的类型对其对应的所述测试向量和所述随机测试向量序列进行功能分类。
通常情况下,故障的类型通常根据下述对应的状况进行划分,例如:测试向量和测试序列用于硬件可靠性测试,与硬件性能相关;测试向量和测试序列用于验收测试,有较高的功能优先级;测试向量和测试序列可以验证是否与系统崩溃相关;相应的,按照故障的类型为:系统崩溃、硬件通讯故障、功能验证等,各故障类型对应的功能分类分别为:验收安全测试、硬件可靠性测试、功能测试。
为了方便描述,本发明一具体实施方式中,系统崩溃以W1表示,硬件通讯故障以W2表示、功能验证以W3表示、验收安全测试以y1表示、硬件可靠性测试以y2表示、功能测试以y3表示。
则功能分类的概率可以表示为:
根据该公式可以获得各个测试向量分别对应的y1、y2、y3的值,将所述测试向量按照其对应的最大概率值进行功能归类;
其中,y(i)的值与w权值相关,需要对w优化,其梯度下降优化公式如下:
每一次迭代需要进行如下更新:
wj=wj-α▽wjJ(w);
α为学习率,取值在0~1之间,以确定梯度下降的步长。
本发明优选实施方式中,采用Softmax分类器获取优化后的w权值,以对所述测试向量进行功能分类。
相应的,采用Softmax分类器同样对所述随机测试向量序列进行功能归类,对测试序列进行功能归类时,将所述测试序列中每个测试向量的功能分类概率值相加,然后取平均值作为当前测试序列的功能分类概率值,最后,采用Softmax分类器获取优化后的w权值,以对所述测试向量序列进行功能分类。
则:
进一步的,本发明一实施方式中,所述方法还包括:
S5、将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配,若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用户需求;将其加入到随机测试序列集,以生成固定格式的数据文件继续执行;
若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行测试,
若可以通过实际运行测试,则返回修改形式化规则库;若未通过实际运行测试,则丢弃当前的测试向量和/或随机测试序列。本发明具体实施方式中,通过N-Gram模型将与用户交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配;
匹配判别函数可表示为:
其中,N表示形式化方法生成的测试序列,例如:选择trigram三元模型时,n=3。
将该匹配判别函数与系统预设相似阈值进行对比,若其大于系统预设相似阈值,则确认匹配成功,否则,确认匹配失败;所述系统预设相似阈值的取值范围通常为0-1之间,例如:0.6,其大小可以根据需要具体调整,在此不做详细赘述。
相应的,若匹配失败,则需要进一步验证当前的测试向量和/或随机测试序列的有效性,若其可以通过实际的交互测试,则表示形式化规则库的建立有误,需要修改其运行逻辑,若未通过实际的交互测试,则表示当前的测试向量和/或随机测试序列未能覆盖用户需求,对其进行丢弃处理,以去除冗余数据,加快下一步的测试进程。
上述固定格式例如:JSON,XML,该所述随机测试序列集可以多次执行,也可以在执行过程中直接回放出现问题点的测试向量和/或测试序列,以进行统计和历史比对,在此不做详细赘述。
进一步的,在时间上,一轮随机测试序列集执行完毕后,统计每个测试向量的运行时长,对于耗时过长的行为可以寻找相应函数、或函数调用链相关的代码进行优化;在空间上,一轮随机测试序列集执行完毕后,比对历史运行内存占用记录,检查是否存在内存增长异常情况,若是,则可以版本间比对寻找内存增长的测试向量;在此不做详细赘述。
结合图3所示,本发明一实施方式中提供的超声设备可靠性的测试系统,所述系统包括:参数获取模块100、执行模块200、封装模块300、解析模块。
参数获取模块100用于提取待测试产品代码中的行为动作;所述行为动作至少包括:namespace、class、MethodName、PropertyName、Type、Argument list、ReturnType。
其中,namespace表示命名空间,Classname表示类名,MethodName表示方法名,PropertyName表示属性名,Type表示属性类型,Argument list表示方法名使用的参数集合,ReturnType表示方法名的返回值类型;在以下的调取过程中,命名空间用于生成引用头文件,类名称和属性名称,方法名称组合用于生成唯一标识ID和调用函数名。
本发明一具体实施方式中,参数获取模块100可辅助使用编译工具或静态分析工具等提取待测试产品代码中的行为动作。
进一步的,为了便于后期调用所述行为动作,还可以将行为动作生成行为数据文件进行统一存储,在此不做详细赘述。
进一步的,本发明一实施方式中,执行模块200用于根据所述行为动作调取指令调用映射表,生成执行函数;所述指令调用映射表为函数调用指令或函数调用模板。
本发明一具体实施方式中,执行模块200将所述行为动作添加到函数调用指令,该种调取方式为一对一调用,即一组行为动作对应一个函数调用指令;或将所述行为动作添加到函数调用模板,该种调取方式为多对一调用,即多组行为动作对应一个函数调用模板。
所述执行函数的生成形式例如:
<布尔返回值>{class name}_{Property/Method Name}()=>call instructionsor template。
进一步的,本发明一实施方式中,封装模块300用于将所述执行函数的执行结果分别封装到测试程序中并转换为多个测试向量;
每个所述测试向量至少包括:Timestamp、State、Id、Action、Parameter、Children、Precondition、Postcondition。
其中,Timestamp用于描述执行函数的执行时间;State为执行函数的执行状态标识,Id为唯一标识的字段,用于唯一标识以及搜寻TestAction对象,可以表示为:Id={class name}_{Property/Method Name},Action表示对应的执行函数、Parameter为所述执行函数需要调用的参数集合、Children用于描述从属行为集合、Precondition前置约束条件,用于定义执行一个TestAction前需要定义的环境、Postcondition后置约束条件,用于定义执行一个TestAction后需要清理的环境。
本发明一具体实施方式中,所述测试向量以TestAction表示,对所述TestAction的定义如下:
TestAction(Timestamp,State,Id,Action,Parameter,Children,Precondition,Postcondition)
可以理解的是,上述对所述TestAction的定义中,在实际执行时,各个参数的位置并不固定,各个参数的位置可以根据需要任意变动,在此不做详细赘述。
进一步的,本发明一实施方式中,解析模块400用于提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库;
同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述随机测试向量序列进行功能归类。
本发明一具体实施方式中,解析模块400提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库具体包括:
在测试程序中,解析模块400采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,以生成多个形式化测试序列的集合;
所述预设的形式化规则方法包括:
按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序列执行。
按照顺序序列执行过程中,顺序序列A=a1+a2+,...,+an表示一个完整的执行序列,A表示形式化测试序列,a1、a2、...、an表示不同的测试向量1。
按照选择序列执行过程中,选择序列A=a1|a2|,....,|an表示形式化测试序列A中的任意成员。
按照分支序列执行过程中,若前项序列包含单个行为,则执行分支序列if(contain(a1))then a1+a2+,...,+an
若前项序列包含多个行为,则执行分支序if(contain(a1+a2+...+ak))then a1+a2+,...,+an;(k<=n);
若布尔条件condition满足,则执行分支序列if(condition)then A=a1+a2+,...,+an
按照幂集随机多选序列执行过程中,对于已定义的执行序列:A=a1+a2+,...,+an;该序列表示为集合A={a1,a2,...,an},求该集合A的幂集{{a1},{a1,a2},...,{a1,a2,...,an}},随机选取该幂集中的任一成员。
为了便于理解,依据所述预设的形式化规则方法描述实际需求,示例如图2A所示,该示例的具体流程如下:提取用户交互相关的测试向量1,采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,以生成多个形式化测试序列的集合;
新建病人->进入病人管理中心->进入病人报告->进行预览,存储和打印然后退出->导出指定格式病例到指定存储位置->进入导入病人管理->选择存储位置导入病人。
结合图2B所示,图2B为根据所述预设的形式化规则方法生成的多个形式化测试序列的集合,本发明具体示例中,以图表表示,在此不做详细赘述。
解析模块400还用于按照系统预设循环次数阈值,循环采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,并去除所述形式化测试序列集合中相同的形式化测试序列,形成形式化规则库;
解析模块400多次采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为过程中,会不断的生成新的形式化测试序列,进一步的,将新生成的形式化测试序列与之前形成的形式化测试序列进行比对,若相同,则仅保留其中的任一个形式化测试序列,如此,优化形式化规则库,去除冗余的形式化测试序列,提高随机测试的覆盖效率。
本发明一实施方式中,解析模块400还用于对所述形式化规则库中的任意一个测试向量1进行词频统计,并计算与之相邻的测试向量1同时出现的次序频,按照各个测试向量1相关次序频的大小,依次执行各个测试向量1。
本发明一具体实施方式中,解析模块400通过N-Gram模型对每个测试向量1进行词频统计,然后对于任意一个测试向量1,计算与之相邻的测试向量1一同出现的次序频,即统计anan-1出现的次数,当执行完成任意一个测试向量1后,可以自动执行与之相邻概率较大的测试向量1;用公式表示如下:
本发明一优选实施方式中,解析模块400对选取所述测试向量采用隐马尔可夫随机模型生成随机测试向量序列。
随机选取所述测试向量生成随机测试向量序列具体包括:
解析模块400可采用传统的随机测试向量序列生成方法,也可以采用优化后的随机测试向量序列生成方法。
本发明一优选实施方式中,解析模块400对选取所述测试向量采用隐马尔可夫随机模型生成随机测试向量序列。具体的,随机选取所述测试向量,并统计在实际交互测试过程中,各个测试向量的运行结果,各个所述测试向量对应的State,下一个测试向量对应的State与当前所述测试向量的State同时出现的概率,以及每个State对应出现Action的概率。
进一步的,解析模块400还用于根据上述参数生成隐马尔可夫模型的状态转置矩阵和State、Action的混淆矩阵;
进一步的,解析模块400还用于根据状态转置矩阵,对于当前的测试向量对应的State,随机选取下一个可能出现的测试向量的State,再依据混淆矩阵随机选取一个Action,依次迭代,可以生成相应的随机测试序列。
具体的,对于任意一个测试向量对应的状态Si,下一个测试向量对应的State与当前所述测试向量的State同时出现的概率值依次以S1,S2...Sj表示,则生成的状态转置矩阵为:
对于任意一个测试向量对应的状态Si,对应可能出现的指令函数的概率值分别以A1,A2...Aj,表示,则生成的State、Action的混淆矩阵为:
本发明一实施方式中,解析模块400还对所述测试向量和所述随机测试向量序列进行功能归类具体包括:
统计所述测试向量和所述随机测试向量序列在测试过程中出现的故障,并根据故障的类型对其对应的所述测试向量和所述随机测试向量序列进行功能分类。
通常情况下,故障的类型通常根据下述对应的状况进行划分,例如:测试向量和测试序列用于硬件可靠性测试,与硬件性能相关;测试向量和测试序列用于验收测试,有较高的功能优先级;测试向量和测试序列可以验证是否与系统崩溃相关;相应的,按照故障的类型为:系统崩溃、硬件通讯故障、功能验证等,各故障类型对应的功能分类分别为:验收安全测试、硬件可靠性测试、功能测试。
为了方便描述,本发明一具体实施方式中,系统崩溃以W1表示,硬件通讯故障以W2表示、功能验证以W3表示、验收安全测试以y1表示、硬件可靠性测试以y2表示、功能测试以y3表示。
则功能分类的概率可以表示为:
根据该公式可以获得各个测试向量分别对应的y1、y2、y3的值,将所述测试向量按照其对应的最大概率值进行功能归类;
其中,y(i)的值与w权值相关,需要对w优化,其梯度下降优化公式如下:
每一次迭代需要进行如下更新:
wj=wj-α▽wjJ(w);
α为学习率,取值在0~1之间,以确定梯度下降的步长。
本发明优选实施方式中,解析模块400还用于采用Softmax分类器获取优化后的w权值,以对所述测试向量进行功能分类。
相应的,采用Softmax分类器同样对所述随机测试向量序列进行功能归类,对测试序列进行功能归类时,将所述测试序列中每个测试向量的功能分类概率值相加,然后取平均值作为当前测试序列的功能分类概率值,最后,采用Softmax分类器获取优化后的w权值,以对所述测试向量序列进行功能分类。
则:
进一步的,本发明一实施方式中,解析模块400还用于将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配,若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用户需求;将其加入到随机测试序列集,以生成固定格式的数据文件继续执行;
若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行测试,若可以通过实际运行测试,则返回修改形式化规则库;若未通过实际运行测试,则丢弃当前的测试向量和/或随机测试序列。本发明具体实施方式中,通过N-Gram模型将与用户交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配;
匹配判别函数可表示为:
其中,N表示形式化方法生成的测试序列,例如:选择trigram三元模型时,n=3。
将该匹配判别函数与系统预设相似阈值进行对比,若其大于系统预设相似阈值,则确认匹配成功,否则,确认匹配失败;所述系统预设相似阈值的取值范围通常为0-1之间,例如:0.6,其大小可以根据需要具体调整,在此不做详细赘述。
相应的,若匹配失败,则需要进一步验证当前的测试向量和/或随机测试序列的有效性,若其可以通过实际的交互测试,则表示形式化规则库的建立有误,需要修改其运行逻辑,若未通过实际的交互测试,则表示当前的测试向量和/或随机测试序列未能覆盖用户需求,对其进行丢弃处理,以去除冗余数据,加快下一步的测试进程。
上述固定格式例如:JSON,XML,该所述随机测试序列集可以多次执行,也可以在执行过程中直接回放出现问题点的测试向量和/或测试序列,以进行统计和历史比对,在此不做详细赘述。
进一步的,在时间上,一轮随机测试序列集执行完毕后,统计每个测试向量的运行时长,对于耗时过长的行为可以寻找相应函数、或函数调用链相关的代码进行优化;在空间上,一轮随机测试序列集执行完毕后,比对历史运行内存占用记录,检查是否存在内存增长异常情况,若是,则可以版本间比对寻找内存增长的测试向量;在此不做详细赘述。
综上所述,本发明的超声设备可靠性的测试方法及测试系统,采用系统预设的形式化规则方法描述与用户交互相关的各个测试向量间的约束关系,并建立形式规则库;使用隐马尔可夫模型生成随机测试向量序列,并对所述随机测试向量序列进行功能归类,进一步的,将经过功能分类的随机测试向量序列与上述形式规则库进行匹配,优化测试序列生成,去除冗余测试序列;并进一步的使用Softmax模型分类,用于生成专属类别的测试用例,可以有针对性进行覆盖测试,同时大幅缩短测试时间。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以保存在保存介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,信息推送服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、信息推送服务器计算机、手持设备或便携式设备、平板型设备、多处理模块系统、基于微处理模块的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括保存设备在内的本地和远程计算机保存介质中。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

Claims (8)

1.一种超声设备可靠性的测试方法,其特征在于,所述方法包括:
S1、提取待测试产品代码中的行为动作;
所述行为动作至少包括:namespace、classname、MethodName、PropertyName、Type、Argument list、ReturnType;namespace表示命名空间,classname表示类名,MethodName表示方法名,PropertyName表示属性名,Type表示属性类型,Argument list表示方法名使用的参数集合,ReturnType表示方法名的返回值类型;
S2、根据所述行为动作调取指令调用映射表,生成执行函数;所述指令调用映射表为函数调用指令或函数调用模板;
S3、将所述执行函数的执行结果分别封装到测试程序中并转换为多个测试向量;
每个所述测试向量至少包括:Timestamp、State、Id、Action、Parameter、Children、Precondition、Postcondition;Timestamp用于描述执行函数的执行时间,State为执行函数的执行状态标识,Id为唯一标识的字段,Action表示对应的执行函数,Parameter为所述执行函数需要调用的参数集合,Children用于描述从属行为集合,Precondition前置约束条件,Postcondition后置约束条件;
S4、提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库;
同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述随机测试向量序列进行功能归类;
S5、将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配,
若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用户需求,将其加入到随机测试序列集,以生成固定格式的数据文件继续执行;
若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行测试;
若可以通过实际运行测试,则返回修改形式化规则库;
若未通过实际运行测试,则丢弃当前的测试向量和/或随机测试序列;
其中,所述步骤S4中,“提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库”具体包括:
P1、在测试程序中,采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,以生成多个形式化测试序列的集合;
P2、按照系统预设循环次数阈值,循环执行步骤P1,并去除所述形式化测试序列集合中相同的形式化测试序列,形成形式化规则库;
所述预设的形式化规则方法包括:
按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序列执行。
2.根据权利要求1所述的超声设备可靠性的测试方法,其特征在于,所述方法还包括:
对所述形式化规则库中的任意一个测试向量1进行词频统计,并计算与之相邻的测试向量1同时出现的次序频,按照各个测试向量1相关次序频的大小,依次执行各个测试向量1。
3.根据权利要求1所述的超声设备可靠性的测试方法,其特征在于,
对选取所述测试向量采用隐马尔可夫随机模型生成随机测试向量序列。
4.根据权利要求1所述的超声设备可靠性的测试方法,其特征在于,
采用Softmax分类器对所述测试向量和所述随机测试向量序列进行功能归类。
5.一种超声设备可靠性的测试系统,其特征在于,所述系统包括:
参数获取模块,用于提取待测试产品代码中的行为动作;
所述行为动作至少包括:namespace、classname、MethodName、PropertyName、Type、Argument list、ReturnType;namespace表示命名空间,classname表示类名,MethodName表示方法名,PropertyName表示属性名,Type表示属性类型,Argument list表示方法名使用的参数集合,ReturnType表示方法名的返回值类型;
执行模块,用于根据所述行为动作调取指令调用映射表,生成执行函数;所述指令调用映射表为函数调用指令或函数调用模板;
封装模块,用于将所述执行函数的执行结果分别封装到测试程序中并转换为多个测试向量;
每个所述测试向量至少包括:Timestamp、State、Id、Action、Parameter、Children、Precondition、Postcondition;Timestamp用于描述执行函数的执行时间,State为执行函数的执行状态标识,Id为唯一标识的字段,Action表示对应的执行函数,Parameter为所述执行函数需要调用的参数集合,Children用于描述从属行为集合,Precondition前置约束条件,Postcondition后置约束条件;
解析模块,用于提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库;
同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述随机测试向量序列进行功能归类;
将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配,
若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用户需求,将其加入到随机测试序列集,以生成固定格式的数据文件继续执行;
若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行测试;
若可以通过实际运行测试,则返回修改形式化规则库;
若未通过实际运行测试,则丢弃当前的测试向量和/或随机测试序列;
其中,所述解析模块具体用于:
在测试程序中,采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,以生成多个形式化测试序列的集合;
按照系统预设循环次数阈值,循环采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为,并去除所述形式化测试序列集合中相同的形式化测试序列,形成形式化规则库;
所述预设的形式化规则方法包括:
按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序列执行。
6.根据权利要求5所述的超声设备可靠性的测试系统,其特征在于,所述解析模块还用于:
对所述形式化规则库中的任意一个测试向量1进行词频统计,并计算与之相邻的测试向量1同时出现的次序频,按照各个测试向量1相关次序频的大小,依次执行各个测试向量1。
7.根据权利要求5所述的超声设备可靠性的测试系统,其特征在于,所述解析模块对选取所述测试向量采用隐马尔可夫随机模型生成随机测试向量序列。
8.根据权利要求5所述的超声设备可靠性的测试系统,其特征在于,
所述解析模块采用Softmax分类器对所述测试向量和所述随机测试向量序列进行功能归类。
CN201610176776.8A 2016-03-24 2016-03-24 超声设备可靠性的测试方法及测试系统 Active CN105868106B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610176776.8A CN105868106B (zh) 2016-03-24 2016-03-24 超声设备可靠性的测试方法及测试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610176776.8A CN105868106B (zh) 2016-03-24 2016-03-24 超声设备可靠性的测试方法及测试系统

Publications (2)

Publication Number Publication Date
CN105868106A CN105868106A (zh) 2016-08-17
CN105868106B true CN105868106B (zh) 2018-07-13

Family

ID=56624836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610176776.8A Active CN105868106B (zh) 2016-03-24 2016-03-24 超声设备可靠性的测试方法及测试系统

Country Status (1)

Country Link
CN (1) CN105868106B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108614769B (zh) * 2018-03-19 2022-02-08 南京邮电大学盐城大数据研究院有限公司 一种面向Appium的Java测试代码质量评判方法
CN108446230B (zh) * 2018-03-19 2021-07-20 南京邮电大学 一种面向WebDriver的Java测试代码质量评判方法
CN108470002B (zh) * 2018-03-19 2022-05-03 南京邮电大学 一种面向Selenium IDE的XML测试脚本质量评判方法
CN108415843B (zh) * 2018-03-21 2021-08-27 南京邮电大学盐城大数据研究院有限公司 一种面向Selenium Remote Control的Java测试代码质量评判方法
CN108897676B (zh) * 2018-06-06 2021-05-07 中国人民解放军海军工程大学 基于形式化规则的飞行引导控制软件可靠性分析系统与方法
CN110095711B (zh) * 2019-05-06 2021-10-15 苏州盛科通信股份有限公司 一种基于测试向量乱序和丢弃行为的验证方法
CN110221965B (zh) * 2019-05-09 2023-01-20 创新先进技术有限公司 测试用例生成、测试方法、装置、设备及系统
CN110349618A (zh) * 2019-06-18 2019-10-18 珠海博雅科技有限公司 一种基于FPGA的flash可靠性测试系统及测试方法
CN111475415B (zh) * 2020-04-07 2021-07-27 北京航空航天大学 一种可靠性策略模型与代码的一致性检测方法和装置
CN111597121B (zh) * 2020-07-24 2021-04-27 四川新网银行股份有限公司 一种基于历史测试用例挖掘的精准测试方法
CN111949555B (zh) * 2020-09-18 2022-07-19 苏州浪潮智能科技有限公司 一种基于多维向量和规则脚本的随机测试方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473159A (zh) * 2013-10-13 2013-12-25 西安电子科技大学 基于动态重构的fpga配置信息翻转测试平台及测试方法
CN103970654A (zh) * 2014-04-30 2014-08-06 北京航空航天大学 一种软件可靠性虚拟测试方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015031683A1 (en) * 2013-08-28 2015-03-05 Stc.Unm Systems and methods for leveraging path delay variations in a circuit and generating error-tolerant bitstrings

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473159A (zh) * 2013-10-13 2013-12-25 西安电子科技大学 基于动态重构的fpga配置信息翻转测试平台及测试方法
CN103970654A (zh) * 2014-04-30 2014-08-06 北京航空航天大学 一种软件可靠性虚拟测试方法

Also Published As

Publication number Publication date
CN105868106A (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN105868106B (zh) 超声设备可靠性的测试方法及测试系统
CN107066382B (zh) 一种基于模型的航天器系统自动化测试方法
CN106570513B (zh) 大数据网络系统的故障诊断方法和装置
Hunter Mathematical techniques of applied probability: Discrete time models: Basic theory
CN110362484B (zh) 软件多故障的定位方法、装置、电子设备以及存储介质
CN105224458B (zh) 一种数据库测试方法及系统
CN108459957A (zh) 基金系统测试用例的测试方法、装置、设备及存储介质
CN109298998A (zh) 工作量评估及模型训练方法、电子设备及存储介质
Mancini et al. Anytime system level verification via random exhaustive hardware in the loop simulation
CN108804322A (zh) 自动化测试方法、装置、计算机设备及存储介质
CN103995780B (zh) 一种基于语句频度统计的程序错误定位方法
CN104361169A (zh) 一种基于分解法建模的可靠性监测方法
CN109522228A (zh) 接口自动化测试数据构造方法、装置、平台及存储介质
CN105243245A (zh) 一种基于Petri网的电路模块故障机理相关关系的可靠性建模方法
CN106546278A (zh) 验证核安全级仪控平台安全失效率的统计测试装置及方法
CN114168740A (zh) 基于图卷积神经网络和知识图谱的变压器并发性故障诊断方法
CN107918358B (zh) 数控装备故障分析方法和装置
CN103970654B (zh) 一种软件可靠性虚拟测试方法
CN107506509A (zh) 应用逻辑及其验证方法和构成方法
Stützle et al. New benchmark instances for the QAP and the experimental analysis of algorithms
US6963997B2 (en) Transaction logging and intelligent error reporting in an expectation-based memory agent checker
CN105955927A (zh) 基于分解-并行遗传算法的约束优化算法
CN112131587A (zh) 一种智能合约伪随机数安全检验方法、系统、介质和装置
CN106980749A (zh) 疾病的快速辅助定位方法
CN110058995A (zh) 一种可避免数据库类型的干扰的数据库测试方法以及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 215123 5th floor, building a, 4th floor, building C, No. 27, Xinfa Road, Suzhou Industrial Park, Jiangsu Province

Patentee after: Feiyinuo Technology Co.,Ltd.

Address before: 215123 5th floor, building a, 4th floor, building C, No. 27, Xinfa Road, Suzhou Industrial Park, Jiangsu Province

Patentee before: Feiyinuo Technology (Suzhou) Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP03 Change of name, title or address

Address after: 215123 5th floor, building a, 4th floor, building C, No. 27, Xinfa Road, Suzhou Industrial Park, Jiangsu Province

Patentee after: Feiyinuo Technology (Suzhou) Co.,Ltd.

Address before: 215123 5F, building a, No. 27, Xinfa Road, Suzhou Industrial Park, Jiangsu Province

Patentee before: VINNO TECHNOLOGY (SUZHOU) Co.,Ltd.

CP03 Change of name, title or address