超声设备可靠性的测试方法及测试系统的制作方法

文档序号:10512094阅读:283来源:国知局
超声设备可靠性的测试方法及测试系统的制作方法
【专利摘要】本发明提供一种超声设备可靠性的测试方法及测试系统,所述方法包括:提取待测试产品代码中的行为动作;根据行为动作调取指令调用映射表,生成执行函数;将执行函数的执行结果分别封装到测试程序中并转换为多个测试向量;提取测试向量中与用户交互相关的测试向量1,以建立与用户交互行为相关联的形式化规则库;随机选取测试向量生成随机测试向量序列,并对测试向量和随机测试向量序列进行功能归类;将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与形式化规则库进行匹配,在匹配成功后,确认当前的测试向量和/或随机测试序列覆盖用户需求,并继续测试;本发明优化测试序列生成,去除冗余测试序列,大幅缩短测试时间。
【专利说明】
超声设备可靠性的测试方法及测试系统
技术领域
[0001] 本发明属于医疗超声诊断技术领域,尤其涉及一种用于超声设备可靠性的测试方 法及测试系统。
【背景技术】
[0002] 超声成像因为其无创性、实时性、操作方便、价格便宜等诸多优势,使其成为临床 上应用最为广泛的诊断工具之一。
[0003] 对超声设备的可靠性测试中,通常包括软件、硬件两方面的测试,采用覆盖测试算 法通过等价类划分获取测试因素集合,然后通过组合测试生成覆盖表,用来验证软件、硬件 的可靠性;该种测试算法通过等价类划分测试集合生成的组合覆盖表冗余数据较多,且生 成的数据量较大不适用敏捷迭代开发中实施自动化测试,同时,采用该覆盖测试算法仅可 获得局部覆盖测试效果,在产品新功能年度开发周期里,对整体系统可靠性提升有限。

【发明内容】

[0004] 本发明的目的在于提供一种超声设备可靠性的测试方法及测试系统。
[0005] 为了实现上述发明目的之一,本发明一实施方式提供一种超声设备可靠性的测试 方法,所述方法包括:
[0006] S1、提取待测试产品代码中的行为动作;
[0007] 所述行为动作至少包括:namespace、classname、MethodName、PropertyName、 Type、Argument list、ReturnType;
[0008] S2、根据所述行为动作调取指令调用映射表,生成执行函数;所述指令调用映射表 为函数调用指令或函数调用模板;
[0009] S3、将所述执行函数的执行结果分别封装到测试程序中并转换为多个测试向量;
[0010] 每个所述测试向量至少包括:Time stamp、State、Id、Action、Parameter、 Children、Precondition、Postcondition;
[0011] S4、提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建 立与用户交互行为相关联的形式化规则库;
[0012] 同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述 随机测试向量序列进行功能归类;
[0013] S5、将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所 述形式化规则库进行匹配,
[0014] 若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用户需求,将其加入 到随机测试序列集,以生成固定格式的数据文件继续执行;
[0015] 若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行 测试;
[0016] 若可以通过实际运行测试,则返回修改形式化规则库;
[0017] 若未通过实际运行测试,则丢弃当前的测试向量和/或随机测试序列。
[0018] 作为本发明一实施方式的进一步改进,所述步骤S4中,"提取所述测试向量中与用 户交互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则 库"具体包括:
[0019] P1、在测试程序中,采用预设的形式化规则方法描述各个所述测试向量1之间的交 互行为,以生成多个形式化测试序列的集合;
[0020] P2、按照系统预设循环次数阈值,循环执行步骤P1,并去除所述形式化测试序列集 合中相同的形式化测试序列,形成形式化规则库;
[0021 ]所述预设的形式化规则方法包括:
[0022] 按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序 列执行。
[0023] 作为本发明一实施方式的进一步改进,所述方法还包括:
[0024] 对所述形式化规则库中的任意一个测试向量1进行词频统计,并计算与之相邻的 测试向量1同时出现的次序频,按照各个测试向量1相关次序频的大小,依次执行各个测试 向量1。
[0025] 作为本发明一实施方式的进一步改进,对选取所述测试向量采用隐马尔可夫随机 模型生成随机测试向量序列。
[0026]作为本发明一实施方式的进一步改进,采用Softmax分类器对所述测试向量和所 述随机测试向量序列进行功能归类。
[0027] 为了实现上述发明目的之一,本发明一实施方式提供一种超声设备可靠性的测试 系统,所述系统包括:参数获取模块,用于提取待测试产品代码中的行为动作;
[0028] 所述行为动作至少包括:namespace、classname、MethodName、PropertyName、 TypenArgument list、ReturnType;
[0029] 执行模块,用于根据所述行为动作调取指令调用映射表,生成执行函数;所述指令 调用映射表为函数调用指令或函数调用模板;
[0030] 封装模块,用于将所述执行函数的执行结果分别封装到测试程序中并转换为多个 测试向量;
[0031 ]每个所述测试向量至少包括:Time stamp、State、Id、Action、Parameter、 Children、Precondition、Postcondition;
[0032] 解析模块,用于提取所述测试向量中与用户交互相关的测试向量1,并根据所述测 试向量1建立与用户交互行为相关联的形式化规则库;
[0033] 同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述 随机测试向量序列进行功能归类;
[0034] 将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所述 形式化规则库进行匹配,
[0035] 若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用户需求,将其加入 到随机测试序列集,以生成固定格式的数据文件继续执行;
[0036] 若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行 测试;
[0037] 若可以通过实际运行测试,则返回修改形式化规则库;
[0038] 若未通过实际运行测试,则丢弃当前的测试向量和/或随机测试序列。
[0039]作为本发明一实施方式的进一步改进,所述解析模块具体用于:
[0040] 在测试程序中,采用预设的形式化规则方法描述各个所述测试向量1之间的交互 行为,以生成多个形式化测试序列的集合;
[0041] 按照系统预设循环次数阈值,循环采用预设的形式化规则方法描述各个所述测试 向量1之间的交互行为,并去除所述形式化测试序列集合中相同的形式化测试序列,形成形 式化规则库;
[0042] 所述预设的形式化规则方法包括:
[0043] 按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序 列执行。
[0044] 作为本发明一实施方式的进一步改进,所述解析模块还用于:
[0045] 对所述形式化规则库中的任意一个测试向量1进行词频统计,并计算与之相邻的 测试向量1同时出现的次序频,按照各个测试向量1相关次序频的大小,依次执行各个测试 向量1。
[0046] 作为本发明一实施方式的进一步改进,所述解析模块对选取所述测试向量采用隐 马尔可夫随机模型生成随机测试向量序列。
[0047]作为本发明一实施方式的进一步改进,所述解析模块采用Softmax分类器对所述 测试向量和所述随机测试向量序列进行功能归类。
[0048] 与现有技术相比,本发明的有益效果是:本发明的超声设备可靠性的测试方法及 测试系统,采用系统预设的形式化规则方法描述与用户交互相关的各个测试向量间的约束 关系,并建立形式规则库;使用隐马尔可夫模型生成随机测试向量序列,并对所述随机测试 向量序列进行功能归类,进一步的,将经过功能分类的随机测试向量序列与上述形式规则 库进行匹配,优化测试序列生成,去除冗余测试序列;并进一步的使用Softmax模型分类,用 于生成专属类别的测试用例,可以有针对性进行覆盖测试,同时大幅缩短测试时间。
【附图说明】
[0049] 图1是本发明一实施方式中超声设备可靠性的测试方法的流程图;
[0050] 图2A、2B是本发明一具体示例中依据所述预设的形式化规则方法描述实际需求示 意图;
[0051] 图3是本发明一实施方式中超声设备可靠性的测试系统的模块示意图。
【具体实施方式】
[0052] 以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不 限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变 换均包含在本发明的保护范围内。
[0053]如图1所示,在本发明一实施方式提供的超声设备可靠性的测试方法,所述方法包 括:
[0054] S1、提取待测试产品代码中的行为动作。所述行为动作至少包括:namespace、 class、MethodName、PropertyName、Type、Argument 1ist、ReturnType 〇
[0055] 其中,namespace表不命名空间,Classname表不类名,MethodName表不方法名, PropertyName表示属性名,Type表示属性类型,Argument list表示方法名使用的参数集 合,ReturnType表示方法名的返回值类型;在以下的调取过程中,命名空间用于生成引用头 文件,类名称和属性名称,方法名称组合用于生成唯一标识ID和调用函数名。
[0056] 本发明一【具体实施方式】中,可辅助使用编译工具或静态分析工具等提取待测试产 品代码中的行为动作。
[0057] 进一步的,为了便于后期调用所述行为动作,还可以将行为动作生成行为数据文 件进行统一存储,在此不做详细赘述。
[0058]进一步的,本发明一实施方式中,所述超声设备可靠性的测试方法还包括:
[0059] S2、根据所述行为动作调取指令调用映射表,生成执行函数;所述指令调用映射表 为函数调用指令或函数调用模板。
[0060] 本发明一【具体实施方式】中,将所述行为动作添加到函数调用指令,该种调取方式 为一对一调用,即一组行为动作对应一个函数调用指令;或将所述行为动作添加到函数调 用模板,该种调取方式为多对一调用,即多组行为动作对应一个函数调用模板。
[0061] 所述执行函数的生成形式例如:
[0062] 〈布尔返回值〉{class name}_{Property/Method Name} () = >call instructions or template。
[0063] 进一步的,本发明一实施方式中,所述超声设备可靠性的测试方法还包括:
[0064] S3、将所述执行函数的执行结果分别封装到测试程序中并转换为多个测试向量;
[0065] 每个所述测试向量至少包括:Time stamp、State、Id、Action、Parameter、 Children、Precondition、Postcondition。
[0066] 其中,Timestamp用于描述执行函数的执行时间;State为执行函数的执行状态标 识,Id为唯一标识的字段,用于唯一标识以及搜寻TestAction对象,可以表示为:Id = {class name}_{Property/Method Name},Action表不对应的执行函数、Parameter为所述 执行函数需要调用的参数集合、Children用于描述从属行为集合、Precondition前置约束 条件,用于定义执行一个TestAction前需要定义的环境、Postcondition后置约束条件,用 于定义执行一个TestAction后需要清理的环境。
[0067] 本发明一【具体实施方式】中,所述测试向量以TestAction表示,对所述TestAction 的定义如下:
[0068] TestAction(Timestamp, State, Id,Action,Parameter,Children,Precondition, Postcondition)
[0069] 可以理解的是,上述对所述TestAction的定义中,在实际执行时,各个参数的位置 并不固定,各个参数的位置可以根据需要任意变动,在此不做详细赘述。
[0070] 进一步的,本发明一实施方式中,所述超声设备可靠性的测试方法还包括:
[0071] S4、提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建 立与用户交互行为相关联的形式化规则库;
[0072] 同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述 随机测试向量序列进行功能归类。
[0073] 本发明一【具体实施方式】中,提取所述测试向量中与用户交互相关的测试向量1,并 根据所述测试向量1建立与用户交互行为相关联的形式化规则库具体包括:
[0074] P1、在测试程序中,采用预设的形式化规则方法描述各个所述测试向量1之间的交 互行为,以生成多个形式化测试序列的集合;
[0075] 所述预设的形式化规则方法包括:
[0076] 按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序 列执行。
[0077] 按照顺序序列执行过程中,顺序序列A = ai+a2+,. . .,+an表示一个完整的执行序 列,A表示形式化测试序列,ai、a2.....an表示不同的测试向量1。
[0078] 按照选择序列执行过程中,选择序列A = ai | a21,....,| an表示形式化测试序列A中 的任意成员。
[0079] 按照分支序列执行过程中,若前项序列包含单个行为,则执行分支序列if (contain(ai))then ai+a2+,···,+an;
[0080] 若前项序列包含多个行为,则执行分支序丨;1^((301^3;[11(31+32+...+310)1:1161131+已2 +,· · ·,+an; (k〈 = n);
[0081] 若布尔条件condition满足,贝执行分支序列if(condition)then A = ai+a2+,..., +&n 〇
[0082] 按照幂集随机多选序列执行过程中,对于已定义的执行序列:A = ai+a2+,. . .,+an; 该序列表示为集合A = {ai,a2, . . .,an},求该集合A的幂集{0:,{ai},{ai,a2},. . .,{ai, a2, . . .,an}},随机选取该幂集中的任一成员。
[0083] 为了便于理解,依据所述预设的形式化规则方法描述实际需求,示例如图2A所示, 该示例的具体流程如下:提取用户交互相关的测试向量1,采用预设的形式化规则方法描述 各个所述测试向量1之间的交互行为,以生成多个形式化测试序列的集合;
[0084]新建病人_>进入病人管理中心_>进入病人报告_>进行预览,存储和打印然后退 出_>导出指定格式病例到指定存储位置_>进入导入病人管理_>选择存储位置导入病人。 [0085]结合图2B所示,图2B为根据所述预设的形式化规则方法生成的多个形式化测试序 列的集合,本发明具体示例中,以图表表示,在此不做详细赘述。
[0086] P2、按照系统预设循环次数阈值,循环执行步骤P1,并去除所述形式化测试序列集 合中相同的形式化测试序列,形成形式化规则库;
[0087] 步骤P2中,多次采用预设的形式化规则方法描述各个所述测试向量1之间的交互 行为过程中,会不断的生成新的形式化测试序列,进一步的,将新生成的形式化测试序列与 之前形成的形式化测试序列进行比对,若相同,则仅保留其中的任一个形式化测试序列,如 此,优化形式化规则库,去除冗余的形式化测试序列,提高随机测试的覆盖效率。
[0088] 本发明一实施方式中,所述步骤S3还可以包括:对所述形式化规则库中的任意一 个测试向量1进行词频统计,并计算与之相邻的测试向量1同时出现的次序频,按照各个测 试向量1相关次序频的大小,依次执行各个测试向量1。
[0089] 本发明一【具体实施方式】中,通过N-Gram模型对每个测试向量1进行词频统计,然后 对于任意一个测试向量1,计算与之相邻的测试向量1 一同出现的次序频,即统计anaw出现 的次数,当执行完成任意一个测试向量1后,可以自动执行与之相邻概率较大的测试向量1; 用公式表示如下:
[0091] 本发明一优选实施方式中,所述步骤S3中对选取所述测试向量采用隐马尔可夫随 机模型生成随机测试向量序列。
[0092] 随机选取所述测试向量生成随机测试向量序列具体包括:
[0093] Ml、可采用传统的随机测试向量序列生成方法,也可以采用优化后的随机测试向 量序列生成方法。
[0094] 本发明一优选实施方式中,对选取所述测试向量采用隐马尔可夫随机模型生成随 机测试向量序列。具体的,随机选取所述测试向量,并统计在实际交互测试过程中,各个测 试向量的运行结果,各个所述测试向量对应的State,下一个测试向量对应的State与当前 所述测试向量的State同时出现的概率,以及每个State对应出现Ac t i on的概率。
[0095] M2、根据上述参数生成隐马尔可夫模型的状态转置矩阵和State、Action的混淆矩 阵;
[0096] M3、根据状态转置矩阵,对于当前的测试向量对应的State,随机选取下一个可能 出现的测试向量的State,再依据混淆矩阵随机选取一个Action,依次迭代,可以生成相应 的随机测试序列。
[0097]具体的,对于任意一个测试向量对应的状态Si,下一个测试向量对应的State与当 前所述测试向量的State同时出现的概率值依次以S^Ss. . .?表示,则生成的状态转置矩阵 为:
[0099]对于任意一个测试向量对应的状态Si,对应可能出现的指令函数的概率值分别以 八1,八2..^,表示,贝1】生成的5七3七6、4(31:;[011的混淆矩阵为:
[0101] 本发明一实施方式中,对所述测试向量和所述随机测试向量序列进行功能归类具 体包括:
[0102] 统计所述测试向量和所述随机测试向量序列在测试过程中出现的故障,并根据故 障的类型对其对应的所述测试向量和所述随机测试向量序列进行功能分类。
[0103] 通常情况下,故障的类型通常根据下述对应的状况进行划分,例如:测试向量和测 试序列用于硬件可靠性测试,与硬件性能相关;测试向量和测试序列用于验收测试,有较高 的功能优先级;测试向量和测试序列可以验证是否与系统崩溃相关;相应的,按照故障的类 型为:系统崩溃、硬件通讯故障、功能验证等,各故障类型对应的功能分类分别为:验收安全 测试、硬件可靠性测试、功能测试。
[0104] 为了方便描述,本发明一【具体实施方式】中,系统崩溃以W1表示,硬件通讯故障以W2 表示、功能验证以W3表示、验收安全测试以yl表示、硬件可靠性测试以y2表示、功能测试以 y3表不。
[0105]则功能分类的概率可以表示为:
[0107] 根据该公式可以获得各个测试向量分别对应的yl、y2、y3的值,将所述测试向量按 照其对应的最大概率值进行功能归类;
[0108] 其中,y(1)的值与w权值相关,需要对w优化,其梯度下降优化公式如下:
[0110] 每一次迭代需要进行如下更新:
[0111] Wj=Wj-aVwjJ(w);
[0112] a为学习率,取值在0~1之间,以确定梯度下降的步长。
[0113]本发明优选实施方式中,采用Softmax分类器获取优化后的w权值,以对所述测试 向量进行功能分类。
[0114]相应的,采用Softmax分类器同样对所述随机测试向量序列进行功能归类,对测试 序列进行功能归类时,将所述测试序列中每个测试向量的功能分类概率值相加,然后取平 均值作为当前测试序列的功能分类概率值,最后,采用Softmax分类器获取优化后的w权值, 以对所述测试向量序列进行功能分类。
[0116] 进一步的,本发明一实施方式中,所述方法还包括:
[0117] S5、将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所 述形式化规则库进行匹配,若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用 户需求;将其加入到随机测试序列集,以生成固定格式的数据文件继续执行;
[0118] 若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行 测试,
[0119] 若可以通过实际运行测试,则返回修改形式化规则库;若未通过实际运行测试,则 丢弃当前的测试向量和/或随机测试序列。本发明【具体实施方式】中,通过N-Gram模型将与用 户交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配;
[0120] 匹配判别函数可表示为:
[0122]其中,N表示形式化方法生成的测试序列,例如:选择trigram三元模型时,n = 3。
[0123] 将该匹配判别函数与系统预设相似阈值进行对比,若其大于系统预设相似阈值, 则确认匹配成功,否则,确认匹配失败;所述系统预设相似阈值的取值范围通常为0-1之间, 例如:0.6,其大小可以根据需要具体调整,在此不做详细赘述。
[0124] 相应的,若匹配失败,则需要进一步验证当前的测试向量和/或随机测试序列的有 效性,若其可以通过实际的交互测试,则表示形式化规则库的建立有误,需要修改其运行逻 辑,若未通过实际的交互测试,则表示当前的测试向量和/或随机测试序列未能覆盖用户需 求,对其进行丢弃处理,以去除冗余数据,加快下一步的测试进程。
[0125] 上述固定格式例如:JS0N,XML,该所述随机测试序列集可以多次执行,也可以在执 行过程中直接回放出现问题点的测试向量和/或测试序列,以进行统计和历史比对,在此不 做详细赘述。
[0126] 进一步的,在时间上,一轮随机测试序列集执行完毕后,统计每个测试向量的运行 时长,对于耗时过长的行为可以寻找相应函数、或函数调用链相关的代码进行优化;在空间 上,一轮随机测试序列集执行完毕后,比对历史运行内存占用记录,检查是否存在内存增长 异常情况,若是,则可以版本间比对寻找内存增长的测试向量;在此不做详细赘述。
[0127] 结合图3所示,本发明一实施方式中提供的超声设备可靠性的测试系统,所述系统 包括:参数获取模块1 〇〇、执行模块200、封装模块300、解析模块。
[0128] 参数获取模块100用于提取待测试产品代码中的行为动作;所述行为动作至少包 括:namespace、class、MethodName、PropertyName、Type、Argument 1ist、ReturnType 〇
[0129] 其中,namespace表不命名空间,Classname表不类名,MethodName表不方法名, PropertyName表示属性名,Type表示属性类型,Argument list表示方法名使用的参数集 合,ReturnType表示方法名的返回值类型;在以下的调取过程中,命名空间用于生成引用头 文件,类名称和属性名称,方法名称组合用于生成唯一标识ID和调用函数名。
[0130] 本发明一【具体实施方式】中,参数获取模块100可辅助使用编译工具或静态分析工 具等提取待测试产品代码中的行为动作。
[0131] 进一步的,为了便于后期调用所述行为动作,还可以将行为动作生成行为数据文 件进行统一存储,在此不做详细赘述。
[0132] 进一步的,本发明一实施方式中,执行模块200用于根据所述行为动作调取指令调 用映射表,生成执行函数;所述指令调用映射表为函数调用指令或函数调用模板。
[0133] 本发明一【具体实施方式】中,执行模块200将所述行为动作添加到函数调用指令,该 种调取方式为一对一调用,即一组行为动作对应一个函数调用指令;或将所述行为动作添 加到函数调用模板,该种调取方式为多对一调用,即多组行为动作对应一个函数调用模板。
[0134] 所述执行函数的生成形式例如:
[0135] 〈布尔返回{|>{class name}_{Property/Method Name} () = >call instructions or template。
[0136] 进一步的,本发明一实施方式中,封装模块300用于将所述执行函数的执行结果分 别封装到测试程序中并转换为多个测试向量;
[0137] 每个所述测试向量至少包括:Time stamp、State、Id、Action、Parameter、 Children、Precondition、Postcondition。
[0138] 其中,Timestamp用于描述执行函数的执行时间;State为执行函数的执行状态标 识,Id为唯一标识的字段,用于唯一标识以及搜寻TestAction对象,可以表示为:Id = {class name}_{Property/Method Name},Action表不对应的执行函数、Parameter为所述 执行函数需要调用的参数集合、Children用于描述从属行为集合、Precondition前置约束 条件,用于定义执行一个TestAction前需要定义的环境、Postcondition后置约束条件,用 于定义执行一个TestAction后需要清理的环境。
[0139] 本发明一【具体实施方式】中,所述测试向量以TestAction表示,对所述TestAction 的定义如下:
[0140] TestAction(Timestamp, State, Id,Action,Parameter,Children,Precondition, Postcondition)
[0141] 可以理解的是,上述对所述TestAction的定义中,在实际执行时,各个参数的位置 并不固定,各个参数的位置可以根据需要任意变动,在此不做详细赘述。
[0142] 进一步的,本发明一实施方式中,解析模块400用于提取所述测试向量中与用户交 互相关的测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库;
[0143] 同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述 随机测试向量序列进行功能归类。
[0144] 本发明一【具体实施方式】中,解析模块400提取所述测试向量中与用户交互相关的 测试向量1,并根据所述测试向量1建立与用户交互行为相关联的形式化规则库具体包括:
[0145] 在测试程序中,解析模块400采用预设的形式化规则方法描述各个所述测试向量1 之间的交互行为,以生成多个形式化测试序列的集合;
[0146] 所述预设的形式化规则方法包括:
[0147] 按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序 列执行。
[0148] 按照顺序序列执行过程中,顺序序列A = ai+a2+,. . .,+an表示一个完整的执行序 列,A表示形式化测试序列,ai、a2.....an表示不同的测试向量1。
[0149] 按照选择序列执行过程中,选择序列A = ai | a21,....,| an表示形式化测试序列A中 的任意成员。
[0150]按照分支序列执行过程中,若前项序列包含单个行为,则执行分支序列if (contain(ai))then ai+a2+,···,+an;
[0151 ] 若前项序列包含多个行为,则执行分支序丨1^((301^3;[11(31+32+...+310)1:1161131+&2 +,· · ·,+an; (k〈 = n);
[0152] 若布尔条件condition满足,贝执行分支序列if(condition)then A = ai+a2+,..., +&n 〇
[0153] 按照幂集随机多选序列执行过程中,对于已定义的执行序列:A = ai+a2+,. . .,+an; 该序列表示为集合A= {ai,a2,…,an},求该集合A的幂集{0:,:{ai},{ai,a2},…,{ai,a2,…, an}},随机选取该幂集中的任一成员。
[0154] 为了便于理解,依据所述预设的形式化规则方法描述实际需求,示例如图2A所示, 该示例的具体流程如下:提取用户交互相关的测试向量1,采用预设的形式化规则方法描述 各个所述测试向量1之间的交互行为,以生成多个形式化测试序列的集合;
[0155] 新建病人->进入病人管理中心->进入病人报告->进行预览,存储和打印然后退 出_>导出指定格式病例到指定存储位置_>进入导入病人管理_>选择存储位置导入病人。 [0156]结合图2B所示,图2B为根据所述预设的形式化规则方法生成的多个形式化测试序 列的集合,本发明具体示例中,以图表表示,在此不做详细赘述。
[0157]解析模块400还用于按照系统预设循环次数阈值,循环采用预设的形式化规则方 法描述各个所述测试向量1之间的交互行为,并去除所述形式化测试序列集合中相同的形 式化测试序列,形成形式化规则库;
[0158] 解析模块400多次采用预设的形式化规则方法描述各个所述测试向量1之间的交 互行为过程中,会不断的生成新的形式化测试序列,进一步的,将新生成的形式化测试序列 与之前形成的形式化测试序列进行比对,若相同,则仅保留其中的任一个形式化测试序列, 如此,优化形式化规则库,去除冗余的形式化测试序列,提高随机测试的覆盖效率。
[0159] 本发明一实施方式中,解析模块400还用于对所述形式化规则库中的任意一个测 试向量1进行词频统计,并计算与之相邻的测试向量1同时出现的次序频,按照各个测试向 量1相关次序频的大小,依次执行各个测试向量1。
[0160]本发明一【具体实施方式】中,解析模块400通过N-Gram模型对每个测试向量1进行词 频统计,然后对于任意一个测试向量1,计算与之相邻的测试向量1 一同出现的次序频,即统 计anaw出现的次数,当执行完成任意一个测试向量1后,可以自动执行与之相邻概率较大 的测试向量1;用公式表示如下:
[0162] 本发明一优选实施方式中,解析模块400对选取所述测试向量采用隐马尔可夫随 机模型生成随机测试向量序列。
[0163] 随机选取所述测试向量生成随机测试向量序列具体包括:
[0164] 解析模块400可采用传统的随机测试向量序列生成方法,也可以采用优化后的随 机测试向量序列生成方法。
[0165] 本发明一优选实施方式中,解析模块400对选取所述测试向量采用隐马尔可夫随 机模型生成随机测试向量序列。具体的,随机选取所述测试向量,并统计在实际交互测试过 程中,各个测试向量的运行结果,各个所述测试向量对应的State,下一个测试向量对应的 State与当前所述测试向量的State同时出现的概率,以及每个State对应出现Act ion的概 率。
[0166] 进一步的,解析模块400还用于根据上述参数生成隐马尔可夫模型的状态转置矩 阵和State、Action的混淆矩阵;
[0167] 进一步的,解析模块400还用于根据状态转置矩阵,对于当前的测试向量对应的 State,随机选取下一个可能出现的测试向量的State,再依据混淆矩阵随机选取一个 Action,依次迭代,可以生成相应的随机测试序列。
[0168]具体的,对于任意一个测试向量对应的状态Si,下一个测试向量对应的State与当 前所述测试向量的State同时出现的概率值依次以S^Ss. . .?表示,则生成的状态转置矩阵 为:
[0170]对于任意一个测试向量对应的状态Si,对应可能出现的指令函数的概率值分别以 八1,八2..^,表示,贝1】生成的5七3七6、4(31:;[011的混淆矩阵为:
[0172] 本发明一实施方式中,解析模块400还对所述测试向量和所述随机测试向量序列 进行功能归类具体包括:
[0173] 统计所述测试向量和所述随机测试向量序列在测试过程中出现的故障,并根据故 障的类型对其对应的所述测试向量和所述随机测试向量序列进行功能分类。
[0174] 通常情况下,故障的类型通常根据下述对应的状况进行划分,例如:测试向量和测 试序列用于硬件可靠性测试,与硬件性能相关;测试向量和测试序列用于验收测试,有较高 的功能优先级;测试向量和测试序列可以验证是否与系统崩溃相关;相应的,按照故障的类 型为:系统崩溃、硬件通讯故障、功能验证等,各故障类型对应的功能分类分别为:验收安全 测试、硬件可靠性测试、功能测试。
[0175] 为了方便描述,本发明一【具体实施方式】中,系统崩溃以W1表示,硬件通讯故障以W2 表示、功能验证以W3表示、验收安全测试以yl表示、硬件可靠性测试以y2表示、功能测试以 y3表不。
[0176] 则功能分类的概率可以表示为:
[0178] 根据该公式可以获得各个测试向量分别对应的yl、y2、y3的值,将所述测试向量按 照其对应的最大概率值进行功能归类;
[0179] 其中,y(1)的值与w权值相关,需要对w优化,其梯度下降优化公式如下:
[0181 ]每一次迭代需要进行如下更新:
[0182] Wj=Wj-aVwjJ(w);
[0183] a为学习率,取值在0~1之间,以确定梯度下降的步长。
[0184] 本发明优选实施方式中,解析模块400还用于采用Softmax分类器获取优化后的w 权值,以对所述测试向量进行功能分类。
[0185] 相应的,采用Softmax分类器同样对所述随机测试向量序列进行功能归类,对测试 序列进行功能归类时,将所述测试序列中每个测试向量的功能分类概率值相加,然后取平 均值作为当前测试序列的功能分类概率值,最后,采用Softmax分类器获取优化后的w权值, 以对所述测试向量序列进行功能分类。
[0187]进一步的,本发明一实施方式中,解析模块400还用于将进行功能归类后,与用户 交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配,若匹配成功, 则确认当前的测试向量和/或随机测试序列覆盖用户需求;将其加入到随机测试序列集,以 生成固定格式的数据文件继续执行;
[0188] 若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行 测试,若可以通过实际运行测试,则返回修改形式化规则库;若未通过实际运行测试,则丢 弃当前的测试向量和/或随机测试序列。本发明【具体实施方式】中,通过N-Gram模型将与用户 交互相关的测试向量和/或随机测试向量序列与所述形式化规则库进行匹配;
[0189] 匹配判别函数可表示为:
[0191]其中,N表示形式化方法生成的测试序列,例如:选择trigram三元模型时,n = 3。
[0192] 将该匹配判别函数与系统预设相似阈值进行对比,若其大于系统预设相似阈值, 则确认匹配成功,否则,确认匹配失败;所述系统预设相似阈值的取值范围通常为0-1之间, 例如:0.6,其大小可以根据需要具体调整,在此不做详细赘述。
[0193] 相应的,若匹配失败,则需要进一步验证当前的测试向量和/或随机测试序列的有 效性,若其可以通过实际的交互测试,则表示形式化规则库的建立有误,需要修改其运行逻 辑,若未通过实际的交互测试,则表示当前的测试向量和/或随机测试序列未能覆盖用户需 求,对其进行丢弃处理,以去除冗余数据,加快下一步的测试进程。
[0194] 上述固定格式例如:JS0N,XML,该所述随机测试序列集可以多次执行,也可以在执 行过程中直接回放出现问题点的测试向量和/或测试序列,以进行统计和历史比对,在此不 做详细赘述。
[0195] 进一步的,在时间上,一轮随机测试序列集执行完毕后,统计每个测试向量的运行 时长,对于耗时过长的行为可以寻找相应函数、或函数调用链相关的代码进行优化;在空间 上,一轮随机测试序列集执行完毕后,比对历史运行内存占用记录,检查是否存在内存增长 异常情况,若是,则可以版本间比对寻找内存增长的测试向量;在此不做详细赘述。
[0196] 综上所述,本发明的超声设备可靠性的测试方法及测试系统,采用系统预设的形 式化规则方法描述与用户交互相关的各个测试向量间的约束关系,并建立形式规则库;使 用隐马尔可夫模型生成随机测试向量序列,并对所述随机测试向量序列进行功能归类,进 一步的,将经过功能分类的随机测试向量序列与上述形式规则库进行匹配,优化测试序列 生成,去除冗余测试序列;并进一步的使用Softmax模型分类,用于生成专属类别的测试用 例,可以有针对性进行覆盖测试,同时大幅缩短测试时间。
[0197] 为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本 申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0198] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可 借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质 上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品 可以保存在保存介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备 (可以是个人计算机,信息推送服务器,或者网络设备等)执行本申请各个实施方式或者实 施方式的某些部分所述的方法。
[0199] 以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的模块 可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模 块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其 中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造 性劳动的情况下,即可以理解并实施。
[0200] 本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、信息 推送服务器计算机、手持设备或便携式设备、平板型设备、多处理模块系统、基于微处理模 块的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任 何系统或设备的分布式计算环境等等。
[0201] 本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序 模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组 件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由 通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以 位于包括保存设备在内的本地和远程计算机保存介质中。
[0202] 应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一 个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说 明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可 以理解的其他实施方式。
[0203] 上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说 明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式 或变更均应包含在本发明的保护范围之内。
【主权项】
1. 一种超声设备可靠性的测试方法,其特征在于,所述方法包括: 51、 提取待测试产品代码中的行为动作; 所述行为动作至少包括:namespace、c las sname、MethodName、PropertyName、Type、 Argument list、ReturnType; 52、 根据所述行为动作调取指令调用映射表,生成执行函数;所述指令调用映射表为函 数调用指令或函数调用模板; 53、 将所述执行函数的执行结果分别封装到测试程序中并转换为多个测试向量; 每个所述测试向量至少包括:Timestamp、State、Id、Act ion、Parameter、Chi ldren、 Precondition、Postcondition; 54、 提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向量1建立与 用户交互行为相关联的形式化规则库; 同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述随机 测试向量序列进行功能归类; 55、 将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所述形 式化规则库进行匹配, 若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用户需求,将其加入到随 机测试序列集,以生成固定格式的数据文件继续执行; 若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行测试; 若可以通过实际运行测试,则返回修改形式化规则库; 若未通过实际运行测试,则丢弃当前的测试向量和/或随机测试序列。2. 根据权利要求1所述的超声设备可靠性的测试方法,其特征在于, 所述步骤S4中,"提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试 向量1建立与用户交互行为相关联的形式化规则库"具体包括: P1、在测试程序中,采用预设的形式化规则方法描述各个所述测试向量1之间的交互行 为,以生成多个形式化测试序列的集合; P2、按照系统预设循环次数阈值,循环执行步骤P1,并去除所述形式化测试序列集合中 相同的形式化测试序列,形成形式化规则库; 所述预设的形式化规则方法包括: 按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序列执 行。3. 根据权利要求1或2所述的超声设备可靠性的测试方法,其特征在于,所述方法还包 括: 对所述形式化规则库中的任意一个测试向量1进行词频统计,并计算与之相邻的测试 向量1同时出现的次序频,按照各个测试向量1相关次序频的大小,依次执行各个测试向量 1〇4. 根据权利要求1所述的超声设备可靠性的测试方法,其特征在于, 对选取所述测试向量采用隐马尔可夫随机模型生成随机测试向量序列。5. 根据权利要求1所述的超声设备可靠性的测试方法,其特征在于, 采用Softmax分类器对所述测试向量和所述随机测试向量序列进行功能归类。6. -种超声设备可靠性的测试系统,其特征在于,所述系统包括: 参数获取模块,用于提取待测试产品代码中的行为动作; 所述行为动作至少包括:namespace、c las sname、MethodName、PropertyName、Type、 Argument list、ReturnType; 执行模块,用于根据所述行为动作调取指令调用映射表,生成执行函数;所述指令调用 映射表为函数调用指令或函数调用模板; 封装模块,用于将所述执行函数的执行结果分别封装到测试程序中并转换为多个测试 向量; 每个所述测试向量至少包括:Timestamp、State、Id、Act ion、Parameter、Chi ldren、 Precondition、Postcondition; 解析模块,用于提取所述测试向量中与用户交互相关的测试向量1,并根据所述测试向 量1建立与用户交互行为相关联的形式化规则库; 同时,随机选取所述测试向量生成随机测试向量序列,并对所述测试向量和所述随机 测试向量序列进行功能归类; 将进行功能归类后,与用户交互相关的测试向量和/或随机测试向量序列与所述形式 化规则库进行匹配, 若匹配成功,则确认当前的测试向量和/或随机测试序列覆盖用户需求,将其加入到随 机测试序列集,以生成固定格式的数据文件继续执行; 若匹配失败,则验证当前的测试向量和/或随机测试序列是否可以通过实际运行测试; 若可以通过实际运行测试,则返回修改形式化规则库; 若未通过实际运行测试,则丢弃当前的测试向量和/或随机测试序列。7. 根据权利要求6所述的超声设备可靠性的测试系统,其特征在于,所述解析模块具体 用于: 在测试程序中,采用预设的形式化规则方法描述各个所述测试向量1之间的交互行为, 以生成多个形式化测试序列的集合; 按照系统预设循环次数阈值,循环采用预设的形式化规则方法描述各个所述测试向量 1之间的交互行为,并去除所述形式化测试序列集合中相同的形式化测试序列,形成形式化 规则库; 所述预设的形式化规则方法包括: 按照顺序序列执行、按照选择序列执行,按照分支序列执行、按照幂集随机多选序列执 行。8. 根据权利要求6或7所述的超声设备可靠性的测试系统,其特征在于,所述解析模块 还用于: 对所述形式化规则库中的任意一个测试向量1进行词频统计,并计算与之相邻的测试 向量1同时出现的次序频,按照各个测试向量1相关次序频的大小,依次执行各个测试向量 1〇9. 根据权利要求6所述的超声设备可靠性的测试系统,其特征在于,所述解析模块对选 取所述测试向量采用隐马尔可夫随机模型生成随机测试向量序列。10. 根据权利要求6所述的超声设备可靠性的测试系统,其特征在于, 所述解析模块采用Softmax分类器对所述测试向量和所述随机测试向量序列进行功能 归类。
【文档编号】G06F11/36GK105868106SQ201610176776
【公开日】2016年8月17日
【申请日】2016年3月24日
【发明人】霍仲辰
【申请人】飞依诺科技(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1