System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种Erlang代码覆盖度测试方法、系统及存储介质技术方案_技高网

一种Erlang代码覆盖度测试方法、系统及存储介质技术方案

技术编号:42063610 阅读:3 留言:0更新日期:2024-07-19 16:48
一种Erlang代码覆盖度测试方法、系统及存储介质,其包括S10、获取覆盖度测试指令;S20、获取覆盖度测试对象文件的路径并写入配置文件;S30、通过cover工具进行单次测试并输出原生测试结果;S40、验证源代码文件与编译后二进制文件的一致性并根据验证结果与预设记录格式,对原生测试结果进行更新;S50、通过cover工具清除本次原生测试结果并编译更新后的源代码文件;S60、重复步骤S40‑S50以进行多次测试并统计各模块对应的覆盖度测试结果。本发明专利技术能够快速进行多次测试并保留所有测试结果,将测试结果记录在源代码中,自动统计各模块对应的覆盖度测试结果,提高了测试的准确性和有效性。

【技术实现步骤摘要】

本专利技术涉及软件工程测试,特别是一种erlang代码覆盖度测试方法、系统及存储介质。


技术介绍

1、在软件工程中,覆盖度测试是一种评估代码质量的重要手段,它通过记录代码的运行次数并统计单个模块或整个工程已运行的行数与所有代码行数的比例,从而判断模块或工程的测试程度。这种测试方法对于确保软件的稳定性和可靠性至关重要。

2、erlang作为一种面向并发、分布式和容错性设计的编程语言,广泛应用于电信、金融和实时系统等领域。erlang提供了原生的覆盖度测试工具——cover模块,使得开发者能够在开发过程中有效地评估代码的覆盖情况。

3、但是,现有的cover工具存在一个明显的局限性,即无法在多次测试中同时保留测试结果。具体而言,如某个erlang模块存在两个函数,在第一次测试中仅运行了第一个函数,会在测试结果中记录,但是再次进行测试时如果仅运行了第二个函数,第一次的结果无法保留,第一个函数显示运行次数为0。这种局限性使得开发者无法全面了解模块在迭代和开发过程中的测试覆盖度情况,也无法保留过程中的所有测试结果,从而影响了测试的准确性和有效性。

4、即,现有的erlang代码覆盖度测试方法存在测试的准确性和有效性不高的问题。


技术实现思路

1、本专利技术的主要目的在于提供了一种erlang代码覆盖度测试方法、系统及存储介质,旨在解决现有的erlang代码覆盖度测试方法的准确性和有效性不高的技术问题。

2、为实现上述目的,本专利技术提供了一种erlang代码覆盖度测试方法,其包括以下步骤:s10、获取覆盖度测试指令,该指令中包括覆盖度测试对象文件;s20、获取覆盖度测试对象文件的路径并写入配置文件,以进行覆盖度测试;s30、通过cover工具进行单次测试并输出原生测试结果,原生测试结果具体为本次测试中各模块每行代码运行次数;s40、验证源代码文件与编译后二进制文件的一致性,并根据验证结果与预设记录格式,对原生测试结果进行更新,得到更新测试结果,预设记录格式内的记录内容至少包括本次测试中某行代码运行次数,以及所有测试中某行代码运行次数之和;s50、通过cover工具清除本次原生测试结果,并编译更新后的源代码文件;s60、重复步骤s40-s50以进行多次测试,并根据多次测试结果统计各模块对应的覆盖度测试结果。

3、可选的,步骤s10中,获取覆盖度测试指令具体为:提供第一交互界面,在该界面内显示一工程的文件目录,且在每个文件前设有对应的选择选项供用户进行选择,以获取覆盖度测试指令。

4、可选的,在第一交互界面内还显示测试结果输出控件供用户操作,以输出对应的测试结果;或者,提供第二交互界面,该界面内显示测试结果输出控件供用户操作,以输出对应的测试结果。

5、可选的,步骤s40中预设记录格式具体为:%%{x,y},其中,%%为erlang文件的注释格式,x为本次测试中某行代码运行次数,y为所有测试中某行代码运行次数之和。

6、可选的,步骤s60中根据多次测试结果统计各模块对应的覆盖度测试结果,具体为根据y值获取所有测试中某行代码运行次数之和,从而统计出各模块对应的覆盖度测试结果。

7、可选的,步骤s40中验证源代码文件与编译后二进制文件的一致性,具体为:根据编译后二进制文件的修改时间与源代码文件的修改时间,验证源代码文件与编译后二进制文件的一致性。

8、可选的,步骤s40至少包括以下步骤:s41、验证源代码文件与编译后二进制文件的一致性,判断编译后二进制文件的修改时间是否晚于源代码文件的修改时间,若是,则执行步骤s42;s42、逐行检查原生测试结果,并将其与源文件进行比对,若原生测试结果中某行代码存在执行次数的输出,则记为:times并执行s43;s43、通过正则表达式匹配源文件代码,判断该行代码在本次测试前是否已存在测试结果,若是,则记为:%%{x1,y1},并更新测试结果为:%%{times,y1+times},其中,x1为本次测试中该行代码运行次数,y1为已存在测试结果;若否,则记为:%%{times,times},并作为更新测试结果。

9、可选的,在每次测试后,将对应的测试结果同步至当前开发的代码文件上进行显示。

10、与所述erlang代码覆盖度测试方法相对应的,本专利技术提供一种erlang代码覆盖度测试系统,其包括:覆盖度测试指令获取模块,用于获取覆盖度测试指令,该指令中包括覆盖度测试对象文件;配置文件读取模块,用于获取覆盖度测试对象文件的路径并写入配置文件,以进行覆盖度测试;测试模块,用于通过cover工具进行单次测试并输出原生测试结果,原生测试结果具体为本次测试中各模块每行代码运行次数;以及,用于重复执行测试结果更新模块与编译模块的操作,以进行多次测试;测试结果更新模块,用于验证源代码文件与编译后二进制文件的一致性,并根据验证结果与预设记录格式,对原生测试结果进行更新,得到更新测试结果,预设记录格式内的记录内容至少包括本次测试中某行代码运行次数,以及所有测试中某行代码运行次数之和;编译模块,用于通过cover工具清除本次原生测试结果,并编译更新后的源代码文件;统计模块,用于根据多次测试结果统计各模块对应的覆盖度测试结果。

11、此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有erlang代码覆盖度测试程序,所述erlang代码覆盖度测试程序被处理器执行时实现如上文所述的erlang代码覆盖度测试方法的步骤。

12、本专利技术的有益效果是:

13、(1)与现有技术相比,本专利技术通过验证源代码文件与编译后二进制文件的一致性,并根据验证结果与预设记录格式,对原生测试结果进行更新,得到更新测试结果,结合cover工具清除本次原生测试结果,并编译更新后的源代码文件,能够快速进行多次测试并保留所有测试结果,将测试结果记录在源代码中,自动统计各模块对应的覆盖度测试结果,提高了erlang代码覆盖度测试的准确性和有效性;

14、(2)与现有技术相比,本专利技术通过提供第一交互界面,在该界面内显示一工程的文件目录,且在每个文件前设有对应的选择选项供用户进行选择,以获取覆盖度测试指令,解决了不同开发者在需要切换测试目录和模块时,需要重复输入命令的难题,通过直观的文件目录以及选择选项,能够有效提高用户的操作效率与使用体验感;

15、(3)与现有技术相比,本专利技术通过在第一交互界面或第二交互界面内显示测试结果输出控件供用户操作,以输出对应的测试结果,便于用户操作,一键输出结果的方式,能够避免原生覆盖度测试工具cover控制台调用繁杂的问题;

16、(4)与现有技术相比,本专利技术通过根据y值获取所有测试中某行代码运行次数之和,从而统计出各模块对应的覆盖度测试结果,能够解决erlang原生覆盖度测试工具cover不能保留多次覆盖度测试结果的问题;

17、(5)与现有技术相比,本专利技术通过在每次测试后,将对应本文档来自技高网...

【技术保护点】

1.一种Erlang代码覆盖度测试方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的Erlang代码覆盖度测试方法,其特征在于:步骤S10中,获取覆盖度测试指令具体为:提供第一交互界面,在该界面内显示一工程的文件目录,且在每个文件前设有对应的选择选项供用户进行选择,以获取覆盖度测试指令。

3.根据权利要求2所述的Erlang代码覆盖度测试方法,其特征在于:在第一交互界面内还显示测试结果输出控件供用户操作,以输出对应的测试结果;

4.根据权利要求1所述的Erlang代码覆盖度测试方法,其特征在于:步骤S40中预设记录格式具体为:%%{X,Y},其中,%%为Erlang文件的注释格式,X为本次测试中某行代码运行次数,Y为所有测试中某行代码运行次数之和。

5.根据权利要求4所述的Erlang代码覆盖度测试方法,其特征在于:步骤S60中根据多次测试结果统计各模块对应的覆盖度测试结果,具体为根据Y值获取所有测试中某行代码运行次数之和,从而统计出各模块对应的覆盖度测试结果。

6.根据权利要求4所述的Erlang代码覆盖度测试方法,其特征在于:步骤S40中验证源代码文件与编译后二进制文件的一致性,具体为:根据编译后二进制文件的修改时间与源代码文件的修改时间,验证源代码文件与编译后二进制文件的一致性。

7.根据权利要求6所述的Erlang代码覆盖度测试方法,其特征在于:步骤S40至少包括以下步骤:

8.根据权利要求1所述的Erlang代码覆盖度测试方法,其特征在于:在每次测试后,将对应的测试结果同步至当前开发的代码文件上进行显示。

9.一种Erlang代码覆盖度测试系统,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有Erlang代码覆盖度测试程序,所述Erlang代码覆盖度测试程序被处理器执行时实现如权利要求1至8任一项所述的Erlang代码覆盖度测试方法的步骤。

...

【技术特征摘要】

1.一种erlang代码覆盖度测试方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的erlang代码覆盖度测试方法,其特征在于:步骤s10中,获取覆盖度测试指令具体为:提供第一交互界面,在该界面内显示一工程的文件目录,且在每个文件前设有对应的选择选项供用户进行选择,以获取覆盖度测试指令。

3.根据权利要求2所述的erlang代码覆盖度测试方法,其特征在于:在第一交互界面内还显示测试结果输出控件供用户操作,以输出对应的测试结果;

4.根据权利要求1所述的erlang代码覆盖度测试方法,其特征在于:步骤s40中预设记录格式具体为:%%{x,y},其中,%%为erlang文件的注释格式,x为本次测试中某行代码运行次数,y为所有测试中某行代码运行次数之和。

5.根据权利要求4所述的erlang代码覆盖度测试方法,其特征在于:步骤s60中根据多次测试结果统计各模块对应的覆盖度测试结果,具体为根据y值获取所有测试...

【专利技术属性】
技术研发人员:钟守镭
申请(专利权)人:厦门极致互动网络技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1