CN112416773A - 一种跨平台的数据可视化方法 - Google Patents
一种跨平台的数据可视化方法 Download PDFInfo
- Publication number
- CN112416773A CN112416773A CN202011325989.5A CN202011325989A CN112416773A CN 112416773 A CN112416773 A CN 112416773A CN 202011325989 A CN202011325989 A CN 202011325989A CN 112416773 A CN112416773 A CN 112416773A
- Authority
- CN
- China
- Prior art keywords
- data
- platform
- source
- cross
- file
- 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
- 238000000034 method Methods 0.000 title claims description 33
- 238000013079 data visualisation Methods 0.000 title claims description 30
- 238000012360 testing method Methods 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000001914 filtration Methods 0.000 claims description 19
- 230000000007 visual effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012800 visualization Methods 0.000 abstract description 5
- 238000007794 visualization technique Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 230000000593 degrading effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
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)
Abstract
本发明公开了一种跨平台的代码覆盖率统计可视化方法,包括获取所述windows平台下生成的源数据,对所述源数据进行处理,得到编辑数据,根据所述编辑数据请求测试指令,得到可视化数据,本发明根据Windows平台下的源代码、编译文件,拷贝至Linux平台,结合Lcov工具的特性,最终生成Html样式的可视化数据。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种跨平台的数据可视化方法。
背景技术
软件单元测试是通过编写测试用例对源代码的一个模块、一个函数或者一个类来进行正确性检验的测试工作,通过单元测试用例的执行结果,可以有效的检查源代码的覆盖率,所谓源代码的覆盖率指的是代码已经测试的部分和总代码量的比率,覆盖率百分之百则表明都测试完成了,编码人员根据覆盖率结果对未覆盖代码进行用例补充或代码审查修正,这对提高代码质量有着重要的作用。
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文件包含了弧跳变的次数和其他的概要信息,并使用gcov命令将所述gcda文件生成gcov文件;
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还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的具体实施例,但本发明的技术特征并不局限于此,任何本领域的技术人员在本发明的领域内,所作的变化或修饰皆涵盖在本发明的专利范围之中。
Claims (9)
1.一种跨平台的数据可视化方法,其特征在于,所述方法为linux平台获取windows平台下生成的数据在linux平台实现数据可视化,包括:
获取所述windows平台下生成的源数据;
对所述源数据进行处理,得到编辑数据;
根据所述编辑数据请求测试指令,得到可视化数据。
2.根据权利要求1所述的一种跨平台的数据可视化方法,其特征在于,所述源数据包括源代码文件、gcda文件和gcno文件。
3.根据权利要求1所述的一种跨平台的数据可视化方法,其特征在于,对所述源数据进行处理,得到编辑数据,包括:
根据过滤指令过滤所述源数据的windows式覆盖率信息;
根据编辑工具对所述源数据进行符号替换;
将所述源数据的源路径更新为本地源路径,得到更新后的编辑数据。
4.根据权利要求1所述的一种跨平台的数据可视化方法,其特征在于,所述方法之前还包括确定所述源文件不在所述Windows平台下的覆盖工具运行。
5.一种跨平台的数据可视化装置,其特征在于,包括:
获取模块:用于获取所述windows平台下生成的源数据;
处理模块:用于对所述获取模块获取的所述源数据进行处理,得到编辑数据;
请求模块:用于根据所述处理模块得到的所述编辑数据请求测试指令,得到可视化数据。
6.根据权利要求5所述的一种跨平台的数据可视化装置,其特征在于,所述处理模块具体包括:
过滤单元:用于根据过滤指令过滤所述源数据的windows式覆盖率信息;
替换单元:用于根据编辑工具对所述源数据进行符号替换;
更新单元:用于将所述源数据的源路径更新为本地源路径,得到更新后的编辑数据。
7.根据权利要求5所述的一种跨平台的数据可视化装置,其特征在于,还包括:
判断模块:用于判断所述源文件不在所述Windows平台下编译。
8.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如权利要求1~4中任一项所述的一种跨平台的数据可视化方法。
9.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序使计算机执行时实现如权利要求1~4中任一项所述的一种跨平台的数据可视化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011325989.5A CN112416773A (zh) | 2020-11-23 | 2020-11-23 | 一种跨平台的数据可视化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011325989.5A CN112416773A (zh) | 2020-11-23 | 2020-11-23 | 一种跨平台的数据可视化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112416773A true CN112416773A (zh) | 2021-02-26 |
Family
ID=74777429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011325989.5A Pending CN112416773A (zh) | 2020-11-23 | 2020-11-23 | 一种跨平台的数据可视化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416773A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130298110A1 (en) * | 2012-05-02 | 2013-11-07 | International Business Machines Corporation | Software Visualization Using Code Coverage Information |
CN106126430A (zh) * | 2016-08-19 | 2016-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种代码覆盖率的测试方法及装置 |
US20170083430A1 (en) * | 2015-09-22 | 2017-03-23 | Red Hat Israel, Ltd. | Code coverage plugin |
CN106776338A (zh) * | 2016-12-30 | 2017-05-31 | 北京金山安全软件有限公司 | 一种测试方法、装置及服务器 |
CN107153608A (zh) * | 2016-03-02 | 2017-09-12 | 腾讯科技(深圳)有限公司 | 代码检测方法以及代码检测装置 |
CN107729239A (zh) * | 2017-10-10 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种代码覆盖率统计方法、系统、装置及计算机存储介质 |
CN108121658A (zh) * | 2017-11-29 | 2018-06-05 | 北京轩宇信息技术有限公司 | 基于windows端测试工具测试linux端被测软件的方法 |
CN110928776A (zh) * | 2019-11-15 | 2020-03-27 | 武汉极意网络科技有限公司 | 一种基于lcov实现增量代码覆盖率的检测方法、装置及设备 |
-
2020
- 2020-11-23 CN CN202011325989.5A patent/CN112416773A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130298110A1 (en) * | 2012-05-02 | 2013-11-07 | International Business Machines Corporation | Software Visualization Using Code Coverage Information |
US20170083430A1 (en) * | 2015-09-22 | 2017-03-23 | Red Hat Israel, Ltd. | Code coverage plugin |
CN107153608A (zh) * | 2016-03-02 | 2017-09-12 | 腾讯科技(深圳)有限公司 | 代码检测方法以及代码检测装置 |
CN106126430A (zh) * | 2016-08-19 | 2016-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种代码覆盖率的测试方法及装置 |
CN106776338A (zh) * | 2016-12-30 | 2017-05-31 | 北京金山安全软件有限公司 | 一种测试方法、装置及服务器 |
CN107729239A (zh) * | 2017-10-10 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种代码覆盖率统计方法、系统、装置及计算机存储介质 |
CN108121658A (zh) * | 2017-11-29 | 2018-06-05 | 北京轩宇信息技术有限公司 | 基于windows端测试工具测试linux端被测软件的方法 |
CN110928776A (zh) * | 2019-11-15 | 2020-03-27 | 武汉极意网络科技有限公司 | 一种基于lcov实现增量代码覆盖率的检测方法、装置及设备 |
Non-Patent Citations (4)
Title |
---|
BAO SUN等: "Study on the automated unit testing solution on the Linux platform", 《IEEE》, 7 October 2019 (2019-10-07) * |
姜文;刘立康;: "基于持续集成的C/C++软件覆盖率测试", 计算机技术与发展, no. 03, 15 November 2017 (2017-11-15) * |
朱健: "基于Qt Test的自动化单元测试", 《价值工程》, no. 14, 31 May 2019 (2019-05-31) * |
赵婷婷;: "基于嵌入式系统的BullseyeCoverage逻辑覆盖测试方法", 电子世界, no. 13, 15 July 2020 (2020-07-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897724B (zh) | 功能完成进度确定方法及装置 | |
CN111414409B (zh) | 游戏引擎之间数据交换方法及装置、存储介质及电子设备 | |
CN110674047B (zh) | 软件测试方法、装置及电子设备 | |
CN106528067B (zh) | 一种生成报表的方法及装置 | |
CN110704297A (zh) | 代码评审方法、装置、计算机设备及存储介质 | |
CN108170425B (zh) | 一种程序代码的修改方法、修改装置及终端设备 | |
US20090119653A1 (en) | Instrumenting a compiled software routine for augmentation | |
CN109800152A (zh) | 一种自动化测试方法及终端设备 | |
US10380313B1 (en) | Implementation and evaluation of designs for heterogeneous computing platforms with hardware acceleration | |
CN110134598B (zh) | 一种批量处理方法、装置及系统 | |
CN110674044A (zh) | 功能自动化测试的覆盖率获取方法、系统、设备及介质 | |
CN118151998A (zh) | 一种代码注释质量确定方法、装置、设备及可读存储介质 | |
CN110688320B (zh) | 全局变量的检测方法、装置及终端设备 | |
CN111127223B (zh) | 保险产品测试方法、装置和存储介质 | |
CN109871172B (zh) | 一种自动化测试中的鼠标点击方法、装置及可读存储介质 | |
CN109902001B (zh) | 对未初始化变量的检测方法及终端设备 | |
CN109582318B (zh) | Portobuf本地化的处理方法、装置、终端及存储介质 | |
CN112416773A (zh) | 一种跨平台的数据可视化方法 | |
CN115543435A (zh) | 基于开发贡献值的软件开发质量衡量方法、装置及设备 | |
US11397662B2 (en) | Method for debugging computer program, device employing method, and storage medium | |
CN113918444A (zh) | 崩溃源代码定位方法、装置、介质及电子设备 | |
CN110988661B (zh) | 一种fpga原型验证开发板时分分析系统、方法、介质及终端 | |
US10803219B1 (en) | Method and system for combined formal static analysis of a design code | |
CN113806231A (zh) | 一种代码覆盖率分析方法、装置、设备和介质 | |
US20200167152A1 (en) | Identification of a partial code to be refactored within a source code |
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 |