公开/公告号CN112416773A
专利类型发明专利
公开/公告日2021-02-26
原文格式PDF
申请/专利权人 通号万全信号设备有限公司;
申请/专利号CN202011325989.5
申请日2020-11-23
分类号G06F11/36(20060101);
代理机构33293 杭州快知知识产权代理事务所(特殊普通合伙);
代理人杨冬玲
地址 310000 浙江省杭州市余杭区仁和街道粮站路11号2幢3楼
入库时间 2023-06-19 10:02:03
技术领域
本发明涉及软件测试技术领域,尤其涉及一种跨平台的数据可视化方法。
背景技术
软件单元测试是通过编写测试用例对源代码的一个模块、一个函数或者一个类来进行正确性检验的测试工作,通过单元测试用例的执行结果,可以有效的检查源代码的覆盖率,所谓源代码的覆盖率指的是代码已经测试的部分和总代码量的比率,覆盖率百分之百则表明都测试完成了,编码人员根据覆盖率结果对未覆盖代码进行用例补充或代码审查修正,这对提高代码质量有着重要的作用。
Qt表示一个跨平台的C++图形用户界面应用程序开发框架,QTest表示一个Qt提供的单元测试框架,Gcov表示一个可用于C/C++的代码覆盖工具,是Gcc的内建工具,Lcov表示一个开源的Linux平台覆盖率可视化统计工具,没有Windows版本,在Windows下用Qt编写的源代码,通过Gcov工具可以快速的统计每个源代码文件的覆盖率,但由于Lcov只支持Linux系统,我们无法得出可视化的覆盖率数据表示方式,仅使用Gcov进行覆盖率统计有以下缺点:各个文件的覆盖率数据分散,没有形成整个代码工程的覆盖率,可读性差;不易于查看每个源码文件的代码行执行情况,包括代码行是否被执行、代码行执行次数等。
发明内容
本发明提供的一种跨平台的数据可视化方法,旨在解决现有技术中统计源代码的覆盖率只能限定平台并覆盖率统计效率不高、效果不佳的问题。
为实现上述目的,本发明采用以下技术方案:
本发明的一种跨平台的数据可视化方法,包括以下步骤:
获取所述windows平台下生成的源数据;
对所述源数据进行处理,得到编辑数据;
根据所述编辑数据请求测试指令,得到可视化数据。
获取windows平台下生成的源数据,复制上传至linux平台,根据所述linux平台下的编辑工具对所述源数据进行处理,得到编辑数据,根据所述编辑数据请求测试指令,得到可视化数据。
作为优选,所述源数据包括源代码文件、gcda文件和gcno文件。
作为优选,所述对所述源数据进行处理,得到编辑数据,包括:
根据过滤指令过滤所述源数据的windows式覆盖率信息;
根据编辑工具对所述源数据进行符号替换;
将所述源数据的源路径更新为本地源路径,得到更新后的编辑数据。
作为优选,还包括确定所述源文件不在所述Windows平台下的覆盖工具运行。
一种跨平台的数据可视化装置,包括:
获取模块:用于获取所述windows平台下生成的源数据;
处理模块:用于对所述源数据进行处理,得到编辑数据;
请求模块:用于根据所述编辑数据请求测试指令,得到可视化数据。
作为优选,所述处理模块具体包括:
过滤单元:用于根据过滤指令过滤所述源数据的windows式覆盖率信息;
替换单元:用于根据编辑工具对所述源数据进行符号替换;
更新单元:用于将所述源数据的源路径更新为本地源路径,得到更新后的编辑数据。
作为优选,还包括:
判断模块:用于确定所述源文件不在所述Windows平台下的覆盖工具运行。
一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如上述中任一项所述的一种跨平台的数据可视化方法。
一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述中任一项所述的一种跨平台的数据可视化方法。
本发明具有如下有益效果:
本发明为了使Windows平台下通过Gcc编译的代码的覆盖率统计也能实现可视化效果,本文基于上述的步骤中对info文件进行改造,在linux平台下实现Windows平台下通过Gcc编译的代码的可视化。
附图说明
图1是本发明实施例实现一种跨平台的数据可视化方法第一流程图;
图2是本发明实施例实现一种跨平台的数据可视化方法第二流程图;
图3是本发明实施例实现一种跨平台的数据可视化方法具体实施流程图;
图4是本发明实施例实现一种跨平台的数据可视化装置示意图;
图5是本发明实施例实现一种跨平台的数据可视化装置的处理模块示意图;
图6是本发明实施例实现一种跨平台的数据可视化装置具体实施流程图;
图7是本发明实施例实现一种跨平台的数据可视化装置的一种电子设备示意图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,一种跨平台的数据可视化方法,包括以下步骤:
S110、获取所述windows平台下生成的源数据;
S120、对所述源数据进行处理,得到编辑数据;
S130、根据所述编辑数据请求测试指令,得到可视化数据。
获取在windows平台下gcov文件,源代码文件,测试工程,并上传到linux平台,在Linux平台下可执行lcov工具进行覆盖率统计,弥补了gcov工具的缺陷。
实施例2
如图2所示,一种跨平台的数据可视化方法,包括:
S210、获取所述windows平台下生成的源数据;
S220、根据过滤指令过滤所述源数据的windows式覆盖率信息;
S230、根据编辑工具对所述源数据进行符号替换;
S240、将所述源数据的源路径更新为本地源路径,得到更新后的编辑数据;
S250、根据所述编辑数据请求测试指令,得到可视化数据。
由实施例2可知,获取windows平台下生成的gcov文件,源代码文件,测试工程文件并上传到linux平台;判断windows平台的Gcc版本和linux平台的Gcc版本是否一致,若不一致,进行相应的升级或降级;在linux平台下,使用Lcov工具,生成info文件,所述info文件包含所有数据的覆盖率信息,所述info文件引用的路径为所述windows平台的路径格式;根据所述Lcov工具过滤所述info文件中包含windows格式的覆盖率信息;使用Notepad++文本编辑工具对所述info文件中的’\’符号进行’/’符号替换;根据所述linux平台的本地源代码路径,将所述info文件的源代码路径更正成本地源代码路径;根据ghtml命令,生成html报告,所述html报告标识目标可视化输出文件。
实施例3
如图3所示,一种具体的实施方式可为:
S310、Windows平台和linux平台都可以创建源代码工程和测试工程,并对所述测试工程添加编译参数;
S320、将所述源代码工程包含到测试工程中,并对所述测试工程重新编译,生成gcno文件,所述gcno文件是包含了重建基本块图和相应的块的源码的行号信息;
S330、运行所述测试工程,生成gcda文件,所述gcda文件包含了弧跳变的次数和其他的概要信息,并使用gcov命令将所述gcda文件生成gcov文件;
S340、判断所述gcov文件是否在windows平台下编译,若是,则点击源代码文件对应的gcov文件查看代码执行情况;
S350、若否,获取windows平台下生成的gcov文件,源代码文件,测试工程文件并上传到linux平台,判断windows平台的Gcc版本和linux平台的Gcc版本是否一致,若不一致,进行相应的升级或降级;
S360、在linux平台下,使用Lcov工具,生成info文件,所述info文件包含所有数据的覆盖率信息,所述info文件引用的路径为所述windows平台的路径格式;
S370、根据所述Lcov工具过滤所述info文件中包含windows格式的覆盖率信息;使用Notepad++文本编辑工具对所述info文件中的’\’符号进行’/’符号替换,根据所述linux平台的本地源代码路径,将所述info文件的源代码路径更正成本地源代码路径;
S380、根据ghtml命令,生成html报告,所述html报告标识目标可视化输出文件。
实施例4
如图4所示,一种跨平台的数据可视化装置,包括:
获取模块10:用于获取所述windows平台下生成的源数据;
处理模块20:用于对所述源数据进行处理,得到编辑数据;
请求模块30:用于根据所述编辑数据请求测试指令,得到可视化数据。
上述装置的一种实施方式可为:获取模块10获取所述windows平台下生成的源数据,处理模块20根据所述linux平台下的编辑工具对所述源数据进行处理,得到编辑数据,请求模块30根据所述编辑数据请求测试指令,得到可视化数据。
实施例5
如图5所示,一种跨平台的数据可视化装置的处理模块20包括:
过滤单元22:用于根据过滤指令过滤所述源数据的windows式覆盖率信息;
替换单元24:用于根据编辑工具对所述源数据进行符号替换;
更新单元26:用于将所述源数据的源路径更新为本地源路径,得到更新后的编辑数据。
上述装置的处理模块20的一种实施方式可为:过滤单元22根据过滤指令过滤所述源数据的windows式覆盖率信息,替换单元24根据编辑工具对所述源数据进行符号替换,更新单元26在所述linux平台下,将所述源数据的源路径更新为本地源路径,得到更新后的编辑数据。
实施例6
如图6所示,一种具体的实施装置可为:
S610、Windows平台和linux平台都可以创建源代码工程和测试工程,并对所述测试工程添加编译参数;
S620、将所述源代码工程包含到测试工程中,并对所述测试工程重新编译,生成gcno文件,所述gcno文件是包含了重建基本块图和相应的块的源码的行号信息;
S630、运行所述测试工程,生成gcda文件,所述gcda文件包含了弧跳变的次数和其他的概要信息
S640、判断所述gcov文件是否在windows平台下编译,若是,则点击源代码文件对应的gcov文件查看代码执行情况;
S650、若否,获取windows平台下生成的gcov文件,源代码文件,测试工程文件并上传到linux平台,判断windows平台的Gcc版本和linux平台的Gcc版本是否一致,若不一致,进行相应的升级或降级;
S660、在linux平台下,使用Lcov工具,生成info文件,所述info文件包含所有数据的覆盖率信息,所述info文件引用的路径为所述windows平台的路径格式;
S670、根据所述Lcov工具过滤所述info文件中包含windows格式的覆盖率信息;使用Notepad++文本编辑工具对所述info文件中的’\’符号进行’/’符号替换,根据所述linux平台的本地源代码路径,将所述info文件的源代码路径更正成本地源代码路径;
S680、根据ghtml命令,生成html报告,所述html报告标识目标可视化输出文件。
实施例7
如图7所示,一种电子设备,包括存储器701和处理器702,所述存储器701用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器702执行以实现上述的一种跨平台的数据可视化方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述的一种跨平台的数据可视化方法。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器701中,并由处理器702执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机设备中的执行过程。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,存储器701、处理器702。本领域技术人员可以理解,本实施例仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
处理器702可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器702、数字信号处理器702(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgRAM503mableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器702可以是微处理器702或者该处理器702也可以是任何常规的处理器702等。
存储器701可以是计算机设备的内部存储单元,例如计算机设备的硬盘或内存。存储器701也可以是计算机设备的外部存储设备,例如计算机设备上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器701还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器701用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器701还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的具体实施例,但本发明的技术特征并不局限于此,任何本领域的技术人员在本发明的领域内,所作的变化或修饰皆涵盖在本发明的专利范围之中。
机译: 生成数据可视化和控制界面以将计算分析框架转换为跨平台实时决策系统的方法和系统
机译: 一种改进的数据可视化和数据分类方法
机译: 数据可视化和排序的一种改进方法