CN109800152A - 一种自动化测试方法及终端设备 - Google Patents
一种自动化测试方法及终端设备 Download PDFInfo
- Publication number
- CN109800152A CN109800152A CN201811531674.9A CN201811531674A CN109800152A CN 109800152 A CN109800152 A CN 109800152A CN 201811531674 A CN201811531674 A CN 201811531674A CN 109800152 A CN109800152 A CN 109800152A
- Authority
- CN
- China
- Prior art keywords
- program
- source code
- code file
- quantization matrix
- program source
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 155
- 239000011159 matrix material Substances 0.000 claims description 63
- 238000013139 quantization Methods 0.000 claims description 44
- 238000000034 method Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012790 confirmation Methods 0.000 claims description 12
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 abstract description 7
- 238000001514 detection method Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000004883 computer application Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 23
- 230000008569 process Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000002860 competitive effect Effects 0.000 description 2
- 238000004573 interface analysis Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明适用于计算机应用技术领域,提供了一种自动化测试方法、终端设备及计算机可读存储介质,包括:获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识;根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告。通过根据程序源码文件确定与其对应的编码规则,并将编码规则与该程序源码文件进行比对,确定程序源码文件是否发生错误,并输出测试报告以进行之后的分析和调试,提高了程序自动测试的效率和准确度。
Description
技术领域
本发明属于计算机应用技术领域,尤其涉及一种自动化测试方法、终端设备及计算机可读存储介质。
背景技术
在互联网技术高速发展的今天,随着软件应用规模的日益扩大和软件应用环境的日益复杂,如何保证其可靠性和安全性已经成为日益紧迫的问题,软件质量成为人们关注的焦点。软件代码的质量直接关系到软件产品的可靠性、健壮性、可维护性以及软件功能的实现等诸多方面。在竞争日益激烈的软件市场,为了能够占有一席之地以免在激烈的竞争中被淘汰出局,高质量的软件一直是每个软件开发商追求的目标,而软件测试则是软件质量得以保证的关键。
软件测试团队一直以来都希望被测软件在进入正式测试(功能测试、白盒测试等)之前,就已经能够保证程序中没有违反编码标准的代码级问题,这就需要进行代码检查,而这部分工作最好能在开发编码阶段就已经完成。但是当前存在一些现象:不同项目的编写语言不同,就需要不同的代码检查工具支持,而且不同项目需要执行的代码规则检查也不尽相同,而现有技术中只能通过人工检查或者操作代码检查工具来检查代码中的这些问题,这种方式也比较耗时,严重影响代码检查的效率。
发明内容
有鉴于此,本发明实施例提供了一种自动化测试方法、终端设备及计算机可读存储介质,以解决现有技术中在进行代码检查过程中出现的耗时、严重影响代码检查的效率的问题。
本发明实施例的第一方面提供了一种自动化测试方法,包括:
获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识;所述编码规则用于检测所述程序源码文件中是否出现以下至少一种问题:接口名称拼写错误、字段拼写错误、字段遗漏、参数类型使用错误;
根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;
根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告。
本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识;
根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;所述编码规则用于检测所述程序源码文件中是否出现以下至少一种问题:接口名称拼写错误、字段拼写错误、字段遗漏、参数类型使用错误;
根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本发明实施例与现有技术相比存在的有益效果是:
本发明实施例通过获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识;根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告。通过根据程序源码文件确定与其对应的编码规则,并将编码规则与该程序源码文件进行比对,确定程序源码文件是否发生错误,并输出测试报告以进行之后的分析和调试,提高了程序自动测试的效率和准确度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的自动化测试方法的流程图;
图2是本发明实施例二提供的自动化测试方法的流程图;
图3是本发明实施例三提供的终端设备的示意图;
图4是本发明实施例四提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本发明实施例一提供的抑制图像伪彩方法的流程图。本实施例中显示页面的方法的执行主体为终端。终端包括但不限于智能手机、平板电脑、可穿戴设备等移动终端,还可以是台式电脑等。如图所示的抑制图像伪彩方法可以包括以下步骤:
S101:获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识。
在互联网技术高速发展的今天,随着软件应用规模的日益扩大和软件应用环境的日益复杂,如何保证其可靠性和安全性已经成为日益紧迫的问题,程序编码的质量成为人们关注的焦点。程序编码的质量直接关系到软件产品的可靠性、健壮性、可维护性以及软件功能的实现等诸多方面。在竞争日益激烈的软件市场,为了能够占有一席之地以免在激烈的竞争中被淘汰出局,高质量的软件一直是每个软件开发商追求的目标,而程序源码文件测试则是软件质量得以保证的关键。
在对程序源码文件进行测试之前,先获取测试程序源码文件的测试指令。获取测试指令的方式可以是实时获取的,也可以是周期性的检测系统中是否有程序源码文件需要进行测试。其中,测试指令包括程序源码文件的程序标识,在本方案中,程序标识可以为该程序的程序名称或者编号、程序的接口名称或者编号等,此处不做限定。在进行程序编写时,为了区别程序中的多个接口,对每个接口进行命名,接口的名称可以是接口的编码,也可以是按照接口的功能、接口在程序中所处的位置所起的名字,此处不做限定。需要说明的是,在本方案中,为了保证接口标识的可辨认性,统一对每个接口进行编码标识。
本实施例中的测试指令用于确定程序源码文件中需要检测的接口程序,例如接口名称、接口功能信息、接口参数等是否正确。其中,在本方案中,接口分析主要用在程序静态分析和设计分析。程序的接口分析涉及子程序以及函数之间的接口一致性。包括检查形参与实参的类型、数量、维度、顺序以及使用的一致性。通过确定接口标识,可以在确定了待检测的接口之后,自动对照系统中接口的定义,对代码中对接口的使用,按设置的检查规则自动化检查,有效检查出接口名称拼写错误、字段拼写错误、字段遗漏、参数类型使用错误等问题。
通过获取测试程序源码文件的测试指令,以对该程序源码文件进行自动化测试。自动化测试可以执行频繁的测试,更高效的执行测试任务,缩短软件的整个测试周期,让软件可以更快地投放到市场中。它可以实现手工测试无法完成的测试,如负载测试、性能测试等。自动化测试的一致性和可重复性的特质,使得测试结果更客观,提高了软件测试的准确度及软件的信任度。可以随时执行,更好地利用资源。理想的自动化测试可以在没有任何用户的状态下完全动有耐性,测试人员可以将测试任务放在晚上或者周末,节省人力资源,降低测试成本,增加有效的测试时间。可以解决开发与测试的矛盾。在开发周期的后期,即集成测试,新发布一个版本,其系统错误较少,开发人员有时间去等待测试人员的测试结果。事实上,若迭代周期很短,那么将存在更多的矛盾,此时自动化测试将派上用场,可以解决其中的矛盾。
S102:根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;所述编码规则用于检测所述程序源码文件中是否出现以下至少一种问题:接口名称拼写错误、字段拼写错误、字段遗漏、参数类型使用错误。
在本实施例中,程序源码文件中包括各种类型,其中,这些类型可以是不同的接口、不同函数或者不同的字符串等,因此在本实施例中预设有针对各种类型的程序源码文件预先制定的编码规则。在本方案中,根据程序中每个接口的程序编写习惯,制定统一的程序编写规则。编程规范保证了程序的易读性和可维护性,增加了程序的正确性和稳定性,提高了程序源码文件的可重用性和编码质量。编程规则虽然其种类繁多,但根据其具体编程规则特点可以大致分为若干个个大类,这些大类中包括但不限于版面书写类、注释类、声明定义类、命名类、操作符类、数据类型类、语句类、运算处理类、函数类、控制流类以及其它类等。具体的,每个类型的具体编码规则如下:
(1)版面书写类规则:包括与程序版面样式相关的程序规则,这些规则可以使程序条理清晰便于维护。这类规则包含了空格、空行、圆括号、花括号的使用规则;程序、函数、switch分支的行数限制;行的长度规则等。
(2)命名类规则:包括命名相关的规则,比如命名时要使用英文,不能使用拼音;命名的长度限制;命名时缩略语的使用方法;文件、变量、函数、参数的命名规则;以及重名问题等。
(3)注释类规则:包括一些书写程序注释时应该遵守的规则,注释本身可以提高程序可读性,这类规则包含了注释的书写格式相关规则,以及规定了哪些地方应该使用注释。
(4)声明定义类规则:包括声明顺序和布局;使用前必须被赋值;所有声明的变量都应该被使用。
(5)操作符类规则:包括一些不建议使用的操作符,如逗号、+=、-=以及三元操作符;谨慎使用++、禁止位操作符带有布尔型的操作数等。
(6)数据类型类规则:包括数据类型定义声明的规则以及类型转换的相关规则,例如有符号类型的位长度、位的定义必须是有符号整数或无符号整数;字符型变量必须明确定义是有符号还是无符号;禁止冗余的显式转型;混合精度的计算应该使用显式的转型来生成想要的结果;数组的使用必须保证不会出现越界等。
(7)运算处理类规则:包括赋值运算的相关规则、移位的相关规则、比较运算的相关规则以及复杂的混合运算相关规则等。
(8)语句规则:包括无效的空语句、不能执行的语句、不可达的语句、break、continue语句的使用规则等。
(9)函数规则:包括main函数的定义方式、函数参数的相关规则、函数的返回相关的规则等。
(10)控制流类规则:主要包括条件语句逻辑表达式相关的规则、if相关的规则、switch相关的规则、循环语句相关的规则等。
(11)其它类中规定不要在程序中直接引用其它提供商的程序以及在源文件中应谨慎使用美国国家标准学会(American National Standards Institute,ANSI)定义之外的字符等。
进一步的,考虑到不同的接口对应不同的功能和不同的调用规则,在本方案中,基于统一的程序编写规则,对每个程序编码定制该程序编码或者接口对应的编码规则,保证该程序功能可以正常实现。在获取到待测接口的接口标识之后,根据该接口标识获取与该接口标识对应的编码规则。需要说明的是,在本实施例中,程序编码中包括了各类函数、字符串以及接口的定义和编码,因此,在本实施例中对程序源码文件的测试也包括了对该程序源码文件中所包括的函数、字符串以及接口的测试。
S103:根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告。
在确定了程序源码文件对应的编码规则之后,根据该编码规则对该程序源码文件进行测试,以确定程序源码文件是否符合对应的编码规则。具体的,本实施例中的编码规则可以是针对每个接口、函数或者字符串的编码数值范围,通过将程序源码文件中的数值与该数据范围进行比对,来确定程序源码文件是否符合编码标准。若程序源码文件的数据值在编码规则的数据范围之内,则说明程序源码文件符合编码规则的要求;若程序源码文件的数据值与编码规则的数据范围差池较大,则说明程序源码文件不符合编码规则的要求。
在将程序源码文件与编码规则进行对比之后,根据对比结果生成并输出测试报告。进一步的,可以将不同测试结果的测试报告按照不同的标识进行标明。也可以在生成测试报告之后,只是将发生错误的测试报告输出,而不输出未发生错误的测试报告,以减少测试报告的输出数量,提高测试报告的处理效率。
上述方案,通过获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识;根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告。通过根据程序源码文件确定与其对应的编码规则,并将编码规则与该程序源码文件进行比对,确定程序源码文件是否发生错误,并输出测试报告以进行之后的分析和调试,提高了程序自动测试的效率和准确度。
参见图2,图2是本发明实施例二提供的抑制图像伪彩方法的流程图。本实施例中显示页面的方法的执行主体为终端。终端包括但不限于智能手机、平板电脑、可穿戴设备等移动终端,还可以是台式电脑等。所述编码规则用于检测所述程序源码文件中是否出现以下至少一种问题:接口名称拼写错误、字段拼写错误、字段遗漏、参数类型使用错误;
如图所示的抑制图像伪彩方法可以包括以下步骤:
S201:获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识。
在本实施例中S201与图1对应的实施例中S101的实现方式完全相同,具体可参考图1对应的实施例中的S101的相关描述,在此不再赘述。
S202:根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;所述编码规则用于检测所述程序源码文件中是否出现以下至少一种问题:接口名称拼写错误、字段拼写错误、字段遗漏、参数类型使用错误。
在本实施例中S202与图1对应的实施例中S102的实现方式完全相同,具体可参考图1对应的实施例中的S102的相关描述,在此不再赘述。
S203:将所述编码规则中的数据量进行量化得到规则量化矩阵,对应的,将所述程序源码文件中的数据量进行量化得到程序量化矩阵。
将该专用编码规则中的数据量进行量化,对应的,也将接口标识对应的接口程序中的数据量进行量化,分别得到规则量化矩阵和程序量化矩阵:
其中,特征向量用于表示规则量化矩阵Xi在每个特征上的量化值;特征向量用于程序量化矩阵Xj在每个特征上的量化值。需要说明的是,本实施例中的特征向量为根据各个规则中的每个特征确定,例如程序书写格式、注释书写格式、参数命名规则、程序行数等,此处不做限定。
S204:计算所述规则量化矩阵与所述程序量化矩阵之间的差异度。
通过公式:计算所述规则量化矩阵与所述程序量化矩阵之间的差异度;
其中,用于表示所述规则量化矩阵;用于表示所述程序量化矩阵;特征向量用于表示所述规则量化矩阵Xi在每个特征上的量化值;特征向量用于表示所述程序量化矩阵Xj在每个特征上的量化值。
具体的,公式中的分子用于表示规则量化矩阵与所述程序量化矩阵之间的标准差值,该值越大,则表示程序量化矩阵与规则量化矩阵之间的差别越大,程序源码文件相对于编码规则的出入越大;分母用于表示规则量化矩阵的标准值,通过两值相比用来表示规则量化矩阵与所述程序量化矩阵之间的差异情况,用1减去该比值,则可以说明当计算得到的DIFij值越小时,程序源码文件相对于编码规则的出入越小;当DIFij值越大时,程序源码文件相对于编码规则的出入越大,即程序源码文件的错误越严重。
进一步的,还可以在编码规则中的每个数据值对应的设置一个权重,通过该权重来衡量编码规则中不同的规则内容的重要性和严重性,并在最后计算差异度时添加进权重的计算。
S205:根据所述差异度确定所述程序源码文件是否符合所述编码规则,并输出所述测试报告。
在根据规则量化矩阵和程序量化矩阵计算出规则量化矩阵与程序量化矩阵之间的差异度之后,根据差异度确定程序源码文件是否符合所述编码规则,并输出所述测试报告。
进一步的,步骤S205可以具体包括步骤S2051~S2052:
S2051:若所述差异度大于预设的差异度阈值,则检测造成所述差异度变大的数据量,并识别造成所述差异度变大的数据量为致错数据。
在本实施例中,预设有差异度阈值,用于衡量差异度的大小。若差异度大于差异度阈值,则检测造成差异度变大的数据量,并识别该数据量为致错数据。
可选的,该差异度阈值的确定可以通过根据历史测试数据确定,根据历史测试数据中的差异度值和差异度对应的出错率,确定一个平衡的差异度阈值,用来进行差异度的衡量,以确定造成差异度变大的数据量,提高差异度衡量的准确性。
S2052:根据所述致错数据的数值和数据标识生成测试报告,并输出所述测试报告。
在根据确定了致错数据之后,根据该致错数据的数值、数据标识生成测试报告,并输出该测试报告。具体的,本实施例中可以预先确定每个各个数据的数据类型对应的编号,以及出现致错数据的原因及其编号,并将这些编号也写进测试报告中,同时,也可以通过这些编号对致错数据以及知致错原因进行统一的管理,提高测试系统的系统管理程度。
进一步的,在输出测试报告之后,还可以根据测试报告对该接口对应的程序或者运行结果进行,结果分析是程序检查自动化过程中最重要的方面之一,因为只有分析了执行结果才可以发现程序存在的问题。本实施例生成可能造成差异率过高的原因,并将这些可能原因也写入测试报告中。
S206:获取测试反馈信息;所述测试反馈信息包括用户基于所述测试报告触发的确认信息,和/或根据所述测试报告对所述编码规则库中的编码规则的调整信息。
在输出所述测试报告之后,都应该通过邮件或其它方式反馈到开发人员手中。以确保开发人员可以尽快的解决问题。输出测试结果形成报告,邮件发送给配置好的开发及测试人员,提示问题存在的位置及问题内容。执行检查无误后,将调用到已勾选接口的页面列出,以邮件的方式发送给测试人员,便于测试人员覆盖测试。这里要发送给哪些测试人员可在该管理系统中配置。
在将测试报告发送至用户之后,可以接收到测试反馈信息。测试反馈信息包括确认信息和调整信息中的一种或者两种,其中,确认信息包括用户基于测试报告触发的信息,为用户根据测试报告进行的信息确认;调整信息用于表示根据测试报告对编码规则库中的编码规则进行调整的信息。
S207:根据所述确认消息将不符合所述编码规则的程序编码归档,和/或根据所述调整信息调整所述编码规则库中的编码规则。
在接收到反馈信息之后,根据反馈信息中的确认信息将将不符合所述编码规则的程序编码归档,通过对程序编码中出现问题的编码进行统一的归档和管理,以对编程人员进行统一培训和错误示例,提高程序编码的通过率。同时,还可以根据反馈信息中的调整信息调整所述编码规则库中的编码规则。例如,当某处发生错误的概率很大的情况下,可能是编程人员的变成习惯便是如此,便可以根据出错的程序编码对编码规则进行相应的调整,减少出错的概率。
需要说明的是,在本实施例中根据所述确认消息将不符合所述编码规则的程序编码归档,以及根据所述调整信息调整所述编码规则库中的编码规则的两个方案,可以执行其中的一个,也可以同时或者不同时的两个方案都执行。使用自动化测试。可以将测试过程放在工作时间之外进行。如周末或晚上。将脚本、环境等所需的东西准备齐全后。将其放在后台自动进行。只需在工作时间对测试结果进行分析。就可以对测试用例有一个评估。而手工测试则需要测试人员在场。且速度慢等问题也会对开发过程有一个耽搁。
上述方案,通过获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识;根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;将所述编码规则中的数据量进行量化得到规则量化矩阵,对应的,将所述程序源码文件中的数据量进行量化得到程序量化矩阵;计算所述规则量化矩阵与所述程序量化矩阵之间的差异度;根据所述差异度确定所述程序源码文件是否符合所述编码规则,并输出所述测试报告。获取测试反馈信息;所述测试反馈信息包括用户基于所述测试报告触发的确认信息,和/或根据所述测试报告对所述编码规则库中的编码规则的调整信息;根据所述确认消息将不符合所述编码规则的程序编码归档,和/或根据所述调整信息调整所述编码规则库中的编码规则。通过根据量化得到的规则量化矩阵和程序量化矩阵计算得到差异度,并通过差异度确定程序源码文件是否符合所述编码规则,并输出所述测试报告,最后通过测试反馈信息实现编码程序和编码规则的统一协调和管理,即提高了自动化测试的效率,同时提高了自动化测试过程中编码程序和编码规则的协调性和统一性。
参见图3,图3是本发明实施例三提供的一种终端设备的示意图。终端设备包括的各单元用于执行图1~图2对应的实施例中的各步骤。具体请参阅图1~图2各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。本实施例的终端设备300包括:
获取指令单元301,用于获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识;
规则确定单元302,用于根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;所述编码规则用于检测所述程序源码文件中是否出现以下至少一种问题:接口名称拼写错误、字段拼写错误、字段遗漏、参数类型使用错误;
报告单元303,用于根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告。
进一步的,所述报告单元303可以包括:
量化单元,用于将所述编码规则中的数据量进行量化得到规则量化矩阵,对应的,将所述程序源码文件中的数据量进行量化得到程序量化矩阵;
计算单元,用于计算所述规则量化矩阵与所述程序量化矩阵之间的差异度;
检测单元,用于根据所述差异度确定所述程序源码文件是否符合所述编码规则,并输出所述测试报告。
进一步的,所述计算单元可以包括:
通过公式:计算所述规则量化矩阵与所述程序量化矩阵之间的差异度;其中,用于表示所述规则量化矩阵;用于表示所述程序量化矩阵;特征向量用于表示所述规则量化矩阵Xi在每个特征上的量化值;特征向量用于表示所述程序量化矩阵Xj在每个特征上的量化值。
进一步的,所述检测单元可以包括:
致错确定单元,用于若所述差异度大于预设的差异度阈值,则检测造成所述差异度变大的数据量,并识别造成所述差异度变大的数据量为致错数据;
报告输出单元,用于根据所述致错数据的数值和数据标识生成测试报告,并输出所述测试报告。
进一步的,所述终端设备还可以包括:
信息反馈单元,用于获取测试反馈信息;所述测试反馈信息包括用户基于所述测试报告触发的确认信息,和/或根据所述测试报告对所述编码规则库中的编码规则的调整信息;
编码处理单元,用于根据所述确认消息将不符合所述编码规则的程序编码归档,和/或根据所述调整信息调整所述编码规则库中的编码规则。
上述方案,通过获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识;根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告。通过根据程序源码文件确定与其对应的编码规则,并将编码规则与该程序源码文件进行比对,确定程序源码文件是否发生错误,并输出测试报告以进行之后的分析和调试,提高了程序自动测试的效率和准确度。
图4是本发明实施例四提供的终端设备的示意图。如图4所示,该实施例的终端设备4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述各个自动化测试方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图3所示单元301至303的功能。
示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述终端设备4中的执行过程。
所述终端设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端设备4的示例,并不构成对终端设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述终端设备4的内部存储单元,例如终端设备4的硬盘或内存。所述存储器41也可以是所述终端设备4的外部存储设备,例如所述终端设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card,FC)等。进一步地,所述存储器41还可以既包括所述终端设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种自动化测试方法,其特征在于,包括:
获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识;
根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;所述编码规则用于检测所述程序源码文件中是否出现以下至少一种问题:接口名称拼写错误、字段拼写错误、字段遗漏、参数类型使用错误;
根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告。
2.如权利要求1所述的自动化测试方法,其特征在于,所述根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告,包括:
将所述编码规则中的数据量进行量化得到规则量化矩阵,对应的,将所述程序源码文件中的数据量进行量化得到程序量化矩阵;
计算所述规则量化矩阵与所述程序量化矩阵之间的差异度;
根据所述差异度确定所述程序源码文件是否符合所述编码规则,并输出所述测试报告。
3.如权利要求2所述的自动化测试方法,其特征在于,计算所述规则量化矩阵与所述程序量化矩阵之间的差异度,包括:
通过公式:计算所述规则量化矩阵与所述程序量化矩阵之间的差异度;其中,用于表示所述规则量化矩阵;用于表示所述程序量化矩阵;特征向量用于表示所述规则量化矩阵Xi在每个特征上的量化值;特征向量用于表示所述程序量化矩阵Xj在每个特征上的量化值。
4.如权利要求2所述的自动化测试方法,其特征在于,所述根据所述差异度确定所述程序源码文件是否符合所述编码规则,并输出所述测试报告,包括:
若所述差异度大于预设的差异度阈值,则检测造成所述差异度变大的数据量,并识别造成所述差异度变大的数据量为致错数据;
根据所述致错数据的数值和数据标识生成测试报告,并输出所述测试报告。
5.如权利要求1-3任一项所述的自动化测试方法,其特征在于,所述根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告之后,还包括:
获取测试反馈信息;所述测试反馈信息包括用户基于所述测试报告触发的确认信息,和/或根据所述测试报告对所述编码规则库中的编码规则的调整信息;
根据所述确认消息将不符合所述编码规则的程序编码归档,和/或根据所述调整信息调整所述编码规则库中的编码规则。
6.一种终端设备,其特征在于,包括存储器以及处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如下步骤:
获取程序源码文件的测试指令;所述测试指令包括所述程序源码文件的程序标识;
根据所述程序标识,从预设的编码规则库中获取所述程序标识对应的编码规则;所述编码规则用于检测所述程序源码文件中是否出现以下至少一种问题:接口名称拼写错误、字段拼写错误、字段遗漏、参数类型使用错误;
根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告。
7.如权利要求6所述的终端设备,其特征在于,所述根据所述程序标识对应的程序源码文件与所述编码规则之间的差异度,检测所述程序源码文件是否符合所述编码规则,并输出测试报告,包括:
将所述编码规则中的数据量进行量化得到规则量化矩阵,对应的,将所述程序源码文件中的数据量进行量化得到程序量化矩阵;
计算所述规则量化矩阵与所述程序量化矩阵之间的差异度;
根据所述差异度确定所述程序源码文件是否符合所述编码规则,并输出所述测试报告。
8.如权利要求7所述的终端设备,其特征在于,所述计算所述规则量化矩阵与所述程序量化矩阵之间的差异度,包括:
通过公式:计算所述规则量化矩阵与所述程序量化矩阵之间的差异度;其中,用于表示所述规则量化矩阵;用于表示所述程序量化矩阵;特征向量用于表示所述规则量化矩阵Xi在每个特征上的量化值;特征向量用于表示所述程序量化矩阵Xj在每个特征上的量化值。
9.如权利要求7所述的终端设备,其特征在于,所述根据所述差异度确定所述程序源码文件是否符合所述编码规则,并输出所述测试报告,包括:
若所述差异度大于预设的差异度阈值,则检测造成所述差异度变大的数据量,并识别造成所述差异度变大的数据量为致错数据;
根据所述致错数据的数值和数据标识生成测试报告,并输出所述测试报告。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811531674.9A CN109800152A (zh) | 2018-12-14 | 2018-12-14 | 一种自动化测试方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811531674.9A CN109800152A (zh) | 2018-12-14 | 2018-12-14 | 一种自动化测试方法及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109800152A true CN109800152A (zh) | 2019-05-24 |
Family
ID=66556755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811531674.9A Pending CN109800152A (zh) | 2018-12-14 | 2018-12-14 | 一种自动化测试方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800152A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737985A (zh) * | 2019-10-15 | 2020-01-31 | 上海联影医疗科技有限公司 | 运行数据验证方法、装置、计算机设备和可读存储介质 |
CN112132176A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 一种差异化提取方法、装置、电子设备及计算机可读存储介质 |
CN112162929A (zh) * | 2020-10-15 | 2021-01-01 | 珠海格力电器股份有限公司 | 测试数据生成方法、装置、计算机设备和存储介质 |
CN112540766A (zh) * | 2020-12-24 | 2021-03-23 | 山东高云半导体科技有限公司 | 现场可编程门阵列编码方法、装置和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049809A (zh) * | 2012-08-23 | 2013-04-17 | 国电大渡河瀑布沟发电有限公司 | 一种设备编码方法 |
CN103092761A (zh) * | 2013-02-05 | 2013-05-08 | 烽火通信科技股份有限公司 | 基于差异信息文件识别和检查修改代码块的方法及装置 |
CN104407973A (zh) * | 2014-11-25 | 2015-03-11 | 珠海格力电器股份有限公司 | 一种自动化单元测试的实现方法及装置 |
CN106228068A (zh) * | 2016-07-21 | 2016-12-14 | 江西师范大学 | 基于混合特征的Android恶意代码检测方法 |
CN106294164A (zh) * | 2016-08-15 | 2017-01-04 | 中国银行股份有限公司 | 一种代码检查方法及装置 |
CN108536472A (zh) * | 2018-03-13 | 2018-09-14 | 中国银行股份有限公司 | 一种代码的规范性检查方法及装置 |
-
2018
- 2018-12-14 CN CN201811531674.9A patent/CN109800152A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049809A (zh) * | 2012-08-23 | 2013-04-17 | 国电大渡河瀑布沟发电有限公司 | 一种设备编码方法 |
CN103092761A (zh) * | 2013-02-05 | 2013-05-08 | 烽火通信科技股份有限公司 | 基于差异信息文件识别和检查修改代码块的方法及装置 |
CN104407973A (zh) * | 2014-11-25 | 2015-03-11 | 珠海格力电器股份有限公司 | 一种自动化单元测试的实现方法及装置 |
CN106228068A (zh) * | 2016-07-21 | 2016-12-14 | 江西师范大学 | 基于混合特征的Android恶意代码检测方法 |
CN106294164A (zh) * | 2016-08-15 | 2017-01-04 | 中国银行股份有限公司 | 一种代码检查方法及装置 |
CN108536472A (zh) * | 2018-03-13 | 2018-09-14 | 中国银行股份有限公司 | 一种代码的规范性检查方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737985A (zh) * | 2019-10-15 | 2020-01-31 | 上海联影医疗科技有限公司 | 运行数据验证方法、装置、计算机设备和可读存储介质 |
CN112132176A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 一种差异化提取方法、装置、电子设备及计算机可读存储介质 |
CN112162929A (zh) * | 2020-10-15 | 2021-01-01 | 珠海格力电器股份有限公司 | 测试数据生成方法、装置、计算机设备和存储介质 |
CN112540766A (zh) * | 2020-12-24 | 2021-03-23 | 山东高云半导体科技有限公司 | 现场可编程门阵列编码方法、装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800152A (zh) | 一种自动化测试方法及终端设备 | |
US10541042B2 (en) | Level-crossing memory trace inspection queries | |
US8997065B2 (en) | Automatic modularization of source code | |
CN110704297A (zh) | 代码评审方法、装置、计算机设备及存储介质 | |
CN102402479B (zh) | 用于静态分析的中间表示结构 | |
CN109656917A (zh) | 多数据源的数据检测方法、装置、设备及可读存储介质 | |
CN112100072A (zh) | 应用程序代码的静态检测方法、装置、设备及介质 | |
US11734159B2 (en) | Ranking test cases specific to changes in software code | |
CN112558942A (zh) | 算子注册方法和相关产品 | |
US9274925B2 (en) | Programmable symbolic execution based dynamic checker | |
CN114579452A (zh) | 接口影响检测方法及相关设备 | |
CN117215944A (zh) | 一种大模型代码生成能力的自动评测方法及相关产品 | |
US10380313B1 (en) | Implementation and evaluation of designs for heterogeneous computing platforms with hardware acceleration | |
US11526429B1 (en) | Identifying critical methods and critical paths in software code | |
US9158506B2 (en) | Loop abstraction for model checking | |
CN109471787A (zh) | 软件质量评价方法及装置、存储介质、电子设备 | |
CN111858377A (zh) | 测试脚本的质量评价方法、装置、电子设备及存储介质 | |
CN115543435A (zh) | 基于开发贡献值的软件开发质量衡量方法、装置及设备 | |
Mathur et al. | Towards an object-oriented complexity metric at the runtime boundary based on decision points in code | |
CN115292178A (zh) | 测试数据搜索方法、装置、存储介质以及终端 | |
US9824175B1 (en) | Method and system of evaluation of validity of a refinement rule for a hardware emulation | |
CN114490390A (zh) | 测试数据生成方法、装置、设备及存储介质 | |
CN114968751A (zh) | 一种无代码开发平台的程序调试方法和程序调试装置 | |
CN113220586A (zh) | 一种自动化的接口压力测试执行方法、装置和系统 | |
US11836426B1 (en) | Early detection of sequential access violations for high level synthesis |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190524 |
|
WD01 | Invention patent application deemed withdrawn after publication |