本文主要介绍SkyEye图形化界面(V3.2.5)中覆盖率测试的使用技巧,后续将持续更新更多使用技巧。SkyEye图形化界面,操作简单、易于理解、上手快,各功能模块区分明晰,且技术支持随时在线。若各位朋友感兴趣的话,可订阅迪捷软件公众号,也可联系官方获取试用版(迪捷软件 (digiproto.com))进行试用。
上篇文章介绍了SkyEye图形化界面的界面样式和项目层次结构,本文将着重展现如何灵活地应用SkyEye图形化界面的覆盖率功能。
01.如何开启覆盖率功能开关?
在大多数情况下,SkyEye命令脚本文件(.skyeye)内容如下图所示,其含义是搭建一块开发板,并向该板中烧写一段程序,这样一来,最简单的仿真启动脚本文件就完成了。
如何在这个基础上开启覆盖率功能呢?除了直接在SkyEye命令脚本文件中编辑覆盖率命令外,SkyEye图形化界面还提供了更为智能的方法,即通过选中工程右键,然后点击启动脚本来进行配置。
选择 enable-codecov命令,参数也都提供了备选项,可根据需求自主选择。参数1:需要计算覆盖率的板卡名称,参数2:是否需要进行覆盖率融合。填好参数,点击确定并保存。到此覆盖率功能开关已打开。
02.如何生成覆盖率数据?
要执行覆盖率功能,首先需要成功加载、运行程序。因此,SkyEye图形化界面对覆盖率功能按钮进行了限制,必须先将工程进行加载、运行并暂停,功能按钮才会被使能。
按钮使能后,直接点击该按钮即可生成覆盖率数据并打开对应反汇编文件、源码文件。
*注意:只有导入了二进制文件对应源码工程,才会显示对应源码文件。
如何巧妙导入源码工程?SkyEye图形化界面对此也进行了智能化处理,用户只需选中工程下的source文件夹,点击右键选择导入源码,并选择对应源码工程即可完成操作。
03.如何查看覆盖率数据?
SkyEye在完成覆盖率执行后,会自动在编辑器中打开工程反汇编代码、源代码。
*值得一提小技巧:当编辑器打开多个文件又想同时去看时,选择文件名位置并拖动,将其向边界靠拢,当出现虚框时松开鼠标即可。如下图所示,即可实现同时查看多文件内容。
上图中源码文件及反汇编文件中代码分布行存在不同的背景色,这些背景色表示当前行的执行情况。其中,绿色代表已执行,红色代表未执行,黄色代表执行结果为true,紫色代表执行结果为false。
除了可以在编辑器直观了解到代码的执行情况外,SkyEye图形化界面还提供了覆盖率结果统计表,其中记录着总覆盖率各项数值以及各函数对应的各项覆盖率数值。
在覆盖率结果统计表中,SkyEye图形化界面还实现了与编辑器中代码进行联动的功能。
举例说明:如需查看表格中main函数对应的汇编码位置及其执行情况,只需要点击main函数在表格中对应行的倒数第二列的目标码详情即可。同理,如需查看其对应的源代码位置以及执行情况,只需要点击对应行的倒数第一列的源码文件即可。如下图所示:
04.如何导出覆盖率报告?
对于用户来说,在SkyEye 图形化界面中即时显示覆盖率数据显然是不够的,更重要的是能将生成的覆盖率数据进行保存、共享和复用。为此,SkyEye 图形化界面特别提供了导出覆盖率报告功能,并且支持HTML、Excel等多种格式的覆盖率报告。
和受到条件限制的覆盖率执行功能不同,导出覆盖率报告功能是随时可执行的。当然,这需要当前选中的工程已经执行过覆盖率功能。选中对应工程,可直接点击报告管理按钮打开HTML格式覆盖率报告,也可在报告管理的下拉框中任意选择所需操作。
05.如何理解覆盖率报告?
打开覆盖率报告(HTML格式),显示如下(浏览器):
报告左侧向导为各类覆盖率的统计结果,支持相互切换显示。
函数覆盖率的统计结果支持与SkyEye图形化界面中覆盖率结果统计表相类似的数据与代码联动的功能,即点击对应函数的目标码和源码按钮,即可跳转到对应汇编码、源代码位置。
其中,汇编码、源代码行背景颜色的含义,也与SkyEye图形化界面中,执行完覆盖率功能的编辑器显示相同。注意,在汇编码的显示部分,报告显示会比界面显示展现更多信息。为了让用户能够更好、更清晰地查看目标码信息,报告特别在目标码测试覆盖率详情信息中给各函数块进行了区分标识。
再简单介绍一下Excel格式覆盖率报告。相对于HTML格式覆盖率报告,Excel就简单些,它只记录了总覆盖率各项数值以及各函数所对应的各项覆盖率数值。
除上述讲解的覆盖率功能外,SkyEye图形化界面还支持异常触发,故障注入,查看内存,查看反汇编,查看、设置设备寄存器,查看、设置处理器寄存器,查看内存映射,远程调试,多工程时间同步等功能,还有更多使用技巧讲解持续上新中,敬请期待!
网友评论