CN113220307B - 一种代码覆盖分析的优化方法、装置及电子设备 - Google Patents

一种代码覆盖分析的优化方法、装置及电子设备 Download PDF

Info

Publication number
CN113220307B
CN113220307B CN202110637494.4A CN202110637494A CN113220307B CN 113220307 B CN113220307 B CN 113220307B CN 202110637494 A CN202110637494 A CN 202110637494A CN 113220307 B CN113220307 B CN 113220307B
Authority
CN
China
Prior art keywords
interpretation
coverage analysis
uncovered
link
coverage
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.)
Active
Application number
CN202110637494.4A
Other languages
English (en)
Other versions
CN113220307A (zh
Inventor
张博林
牛文生
牟明
陆敏敏
王闯
郭雨枫
邹方林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avic Airborne System General Technology Co ltd
Original Assignee
Avic Airborne System General Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Avic Airborne System General Technology Co ltd filed Critical Avic Airborne System General Technology Co ltd
Priority to CN202110637494.4A priority Critical patent/CN113220307B/zh
Publication of CN113220307A publication Critical patent/CN113220307A/zh
Application granted granted Critical
Publication of CN113220307B publication Critical patent/CN113220307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis

Abstract

本发明属于基于SCADE的代码覆盖分析技术领域,具体涉及一种代码覆盖分析的优化方法、装置及电子设备。该种代码覆盖分析的优化方法,包括以下步骤:获取待测试代码对应的覆盖分析报告;定位出所述覆盖分析报告中的未覆盖项,并在所述覆盖分析报告中增加未覆盖项对应的解释链接;响应针对所述覆盖分析报告中任一解释链接的触发操作,显示解释信息输入界面;响应通过所述解释信息输入界面输入的确认操作,根据所述解释信息输入界面内的输入内容,更新所述覆盖分析报告中所述任一解释链接对应的未覆盖项的解释信息。该方法简化了对代码覆盖分析报告进行解释说明的流程,从而提高代码覆盖分析过程的工作效率。

Description

一种代码覆盖分析的优化方法、装置及电子设备
技术领域
本发明涉及基于SCADE的代码覆盖分析技术领域,具体涉及一种代码覆盖分析的优化方法、装置及电子设备。
背景技术
基于SCADE进行的覆盖率分析中,通常一组完整的仿真用例和仿真规程可以使模型覆盖和代码覆盖达到相同的百分比,但是某些情况下因为模型生成的代码包含有额外的防御性编码内容,所以代码覆盖结果可能无法达到模型覆盖分析已经达到的100%,此时需要新增解释记录,使生成的覆盖分析报告满足DO-178C的要求,但是目前这些工作只能通过手动输入特定格式的解释记录,通过命令行运行代码覆盖分析的方式新增解释记录,无法在SCADE IDE中直接完成,极大的增加了代码覆盖分析过程中的工作量。
目前面向SCADE代码覆盖分析过程为:首先,通过SCADE IDE运行代码覆盖,生成代码覆盖报告;之后,基于代码覆盖报告进行代码覆盖分析;然后,通过优化设计模型、增加测试用例以及对未覆盖项增加解释说明增加代码覆盖程度;最终,完成符合各级软件对代码覆盖要求的覆盖分析。其中,增加解释说明过程比较繁杂,具体过程为:首先,通过打开代码覆盖率分析结果路径中的report.txt文件,在文本编辑器搜索“Not Cover”未覆盖项进行分析;其次,对每一个未覆盖项以特定方式逐一编写其解释文件;再次,通过命令行输入SCADE覆盖分析命令的方式重新进行每一个场景的覆盖分析,并配置好代码覆盖分析结果存放的新路径;最后,通过命令行输入命令的方式合并新生成覆盖分析报告与编写的解释文件,最终生成新的html格式的代码覆盖报告。
原有的代码覆盖分析过程过度的依赖手动编辑来推动,由于其过程的复杂性,增加了基于代码覆盖报告进行代码覆盖分析的成本,同时手工执行过程也增加了覆盖分析中错误出现的概率,难以完成DO-178C中对结构覆盖的要求。
发明内容
有鉴于此,本发明实施例提供了一种代码覆盖分析的优化方法、装置及电子设备,至少部分的解决现有技术中存在的问题。
第一方面,本发明实施例提供了一种代码覆盖分析的优化方法,包括以下步骤:
获取待测试代码对应的覆盖分析报告;
定位出所述覆盖分析报告中的未覆盖项,并在所述覆盖分析报告中增加未覆盖项对应的解释链接;
响应针对所述覆盖分析报告中任一解释链接的触发操作,显示解释信息输入界面;
响应所述解释信息输入界面的确认操作,根据所述解释信息输入界面内的输入内容,更新所述覆盖分析报告中所述任一解释链接对应的未覆盖项的解释信息。
根据本发明实施例的一种具体实现方式,所述定位出所述覆盖分析报告中的未覆盖项,并在所述覆盖分析报告中增加未覆盖项对应的解释链接,具体包括:
在所述覆盖分析报告对应的HTML文件中查找包含覆盖分析信息的目标文件;
在所述目标文件的指定标签内查找是否存在表示代码项的覆盖状态为未覆盖的标签,若存在,则确定对应代码项为未覆盖项,并在所述指定标签内添加解释链接对应的链接标签。
根据本发明实施例的一种具体实现方式,所述优化方法还包括:
在所述链接标签中增加监听代码一,所述监听代码一用于监听所述解释链接是否被触发。
根据本发明实施例的一种具体实现方式,所述优化方法还包括:
响应针对所述覆盖分析报告中任一解释链接的触发操作,在所述解释信息输入界面中显示所述未覆盖项的覆盖分析信息,所述覆盖分析信息包括覆盖点路径信息和/或覆盖类型信息。
根据本发明实施例的一种具体实现方式,所述优化方法还包括:
在所述解释信息输入界面中增加监听代码二,所述监听代码二用于监听所述解释信息输入界面内的输入内容是否被确认。
根据本发明实施例的一种具体实现方式,所述根据所述解释信息输入界面内的输入内容,更新所述覆盖分析报告中所述任一解释链接对应的未覆盖项的解释信息,具体包括:
将所述解释信息输入界面内的输入内容作为所述任一解释链接对应的未覆盖项的解释信息,添加到对应的解释文件中;
在所述覆盖分析报告中添加所述任一解释链接对应的未覆盖项的解释信息查看链接,其中,所述解释信息查看链接用于在被触发时显示对应的解释文件。
根据本发明实施例的一种具体实现方式,在所述更新所述覆盖分析报告中所述任一解释链接对应的未覆盖项的解释信息之后,所述优化方法还包括:
将所述覆盖分析报告中所述任一解释链接对应的未覆盖项的覆盖状态修改为已解释;
根据覆盖状态更新所述覆盖分析报告中的覆盖统计数据。
第二方面,本发明实施例提供了一种代码覆盖分析的优化装置,包括:
获取模块,用于获取待测试代码对应的覆盖分析报告;
定位模块,用于定位出所述覆盖分析报告中的未覆盖项,并在所述覆盖分析报告中增加未覆盖项对应的解释链接;
输入模块,用于响应针对所述覆盖分析报告中任一解释链接的触发操作,显示解释信息输入界面;
更新模块,用于响应所述解释信息输入界面的确认操作,根据所述解释信息输入界面内的输入内容,更新所述覆盖分析报告中所述任一解释链接对应的未覆盖项的解释信息。
第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:
至少一个处理器;以及,
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述第一方面的任一实现方式中的方法。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述第一方面的任一实现方式中的方法。
本发明的实施例至少具有如下技术效果:
在覆盖分析报告里,用户可以通过解释链接打开解释信息输入界面,通过解释信息输入界面随时更新未覆盖项的解释信息,整个覆盖分析报告随着用户的操作而实时修改,最终得到符合DO-178C中规定的软件级别要求的代码覆盖报告;该方法简化了使用SCADE对代码覆盖分析报告进行解释说明的流程,从而提高代码覆盖分析过程的工作效率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1示出了本发明一种代码覆盖分析的优化方法的步骤流程图;
图2示出了本发明一种代码覆盖分析的优化方法的具体实施流程图;
图3示出了本发明实施例所提供的一种代码覆盖分析的优化装置的结构框图;
图4示出了本发明实施例所提供的一种代码覆盖分析的优化电子设备的结构示意图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
需要说明的是,各个模块按照流式布局进行排列,仅仅是本发明的一个实施例,也可以采用其他的方式排列,本发明对此不做限定。
本发明实施例提供的代码覆盖分析的优化方法,可应用于任意一种代码覆盖分析软件,对软件输出的覆盖分析报告进行优化,以简化操作方式。本发明实施例提供的代码覆盖分析的优化方法可以脚本的形式植入任意一种现有的代码覆盖分析软件中,从而在代码覆盖分析软件进行覆盖分析并生成覆盖分析报告的过程中实现相应的功能。
本发明实施例主要以SCADE软件为例,对代码覆盖分析的优化方法的具体实现方法进行说明。
图1示出了本发明实施例提供的一种代码覆盖分析的优化方法的步骤流程图,该方法包括以下步骤:
S101、获取待测试代码对应的覆盖分析报告。
S102、定位出覆盖分析报告中的未覆盖项,并在覆盖分析报告中增加未覆盖项对应的解释链接。
其中,未覆盖项指的是在代码覆盖分析之后,未被覆盖的代码段;未覆盖项的解释链接可添加到覆盖分析报告中该未覆盖项之后的区域内,以可点击的显示状态显示,以指示用户该解释链接是可以点击的,用户点击解释链接后触发跳转至解释信息输入界面。
在一个实施例中,在链接标签中增加监听代码一,监听代码一用于监听解释链接是否被触发。通过添加javascript监听代码块的方式监测解释链接是否被触发,若解释链接被触发,则执行后续相应操作。
S103、响应针对覆盖分析报告中任一解释链接的触发操作,显示解释信息输入界面。
解释信息输入界面可包括输入框和确认提交按钮,输入框内用以供用户输入解释信息相关说明内容,确认输入的内容无误后,用户可通过点击确认提交按钮输入确认操作。
在一个实施例中,在解释信息输入界面中增加监听代码二,监听代码二用于监听解释信息输入界面内的输入内容是否被确认。通过添加javascript监听代码块的方式监测解释信息输入界面内的输入内容是否被确认,若输入内容被确认,则执行后续相应操作。
S104、响应通过解释信息输入界面输入的确认操作,根据解释信息输入界面内的输入内容,更新覆盖分析报告中该解释链接对应的未覆盖项的解释信息。
上述实施例有益效果在于:在覆盖分析报告里,用户可以通过解释链接打开解释信息输入界面,通过解释信息输入界面随时更新未覆盖项的解释信息,整个覆盖分析报告随着用户的操作而实时修改,最终得到符合DO-178C中规定的软件级别要求的代码覆盖报告;该方法简化了使用代码覆盖分析软件(如SCADE)进行代码覆盖分析后,对代码覆盖分析报告进行解释说明的流程,从而提高代码覆盖分析过程的工作效率。
在一个实施例中,步骤S101具体包括如下步骤:
获取当前待测试代码工程的路径,然后在当前项目目录下新建覆盖分析文件夹;
对待测试代码执行的代码级插桩命令;
检索当前工程下的测试规程,执行所有的测试规程,进行代码覆盖分析,生成覆盖分析报告,覆盖分析报告存放于新建的覆盖分析文件夹内。
上述实施例中可利用SCADE软件的代码覆盖分析模块生成覆盖分析报告。
在一个实施例中,用户可根据测试需求预先在代码覆盖分析软件中输入本次测试选择的覆盖方式,例如户输入的覆盖方式可为“MCDC”或“DC”等,代码覆盖分析软件根据用户输入的覆盖方式,对待测试代码进行分析,并生成相应的覆盖分析报告。
在一个实施例中,步骤S102具体包括:
在覆盖分析报告对应的HTML文件中查找包含覆盖分析信息的目标文件;
在目标文件的指定标签内查找是否存在表示代码项的覆盖状态为未覆盖的标签,若存在,则确定对应代码项为未覆盖项,并在指定标签内添加解释链接对应的链接标签;否则确定该目标文件中不存在未覆盖项。
其中,包含覆盖分析信息的目标文件可为指定后缀的文件,例如在SCADE软件中针对C文件进行的代码覆盖分析,后缀为“.c.cov.html”的文件即为目标文件。每个指定标签对应一行被测试的代码,指定标签是用于存储被测试的代码项的覆盖状态的标签,不同的代码覆盖分析软件的指定标签可能不同,例如SCADE软件中的指定标签为标签<li>,标签<li>内的类型class的值表示覆盖状态。
以SCADE软件为例,上述步骤具体为:通过遍历后缀为“.c.cov.html”的目标文件中的标签<li>,找到其中类型class为“not_covered”且内容包含“:NOT COVERED”的标签<li>,包含该种类型和内容的标签<li>所对应的代码即为未覆盖项。进一步地,在待测试代码对应的工程文件夹下,为未覆盖项新建对应的Control_Justifications.html文件(即解释文件),该文件用于存放用户为每个未覆盖项新增的解释信息,同时新建Add_Justification.html文件,该文件为解释信息输入界面文件,用于暂存解释说明的内容以及未覆盖项相关的覆盖分析信息。SCADE软件根据定位到的未覆盖项对应的标签<li>,在标签<li>内最后添加内容为“Add Justification”的标签<a>的解释链接,该解释链接为“href=Add_Justification.html”,这样即可在覆盖分析报告中未覆盖项的对应位置处显示用户可操作的解释链接。
用户在触发覆盖分析报告中显示的解释链接后,SCADE软件会弹出解释输入界面,用户在解释输入界面中输入需要添加的解释信息,用户完成解释信息的输入后点击解释输入界面中的确认按钮,SCADE软件将Add_Justification.html文件中的解释信息添加到对应的Control_Justifications.html文件,完成解释信息的添加。
该实施例中通过指定后缀的文件及指定标签状态来快速准确定位出未覆盖项,并通过在指定标签内添加解释链接对应的链接标签,进而在覆盖分析报告的各未覆盖项中添加对应的解释链接,方便用户通过触发解释链接快速实现解释信息的添加。
在一个实施例中,响应针对覆盖分析报告中任一解释链接的触发操作,在解释信息输入界面中显示未覆盖项的覆盖分析信息,覆盖分析信息包括覆盖点路径信息和/或覆盖类型信息。
其中,在未覆盖项的解释链接被触发时,从未覆盖项对应的标签内容中获取覆盖点路径信息和/或覆盖类型信息等信息,并在解释信息输入界面中显示。
为此,解释信息输入界面在被显示时可自动获取并显示未覆盖项的覆盖点路径信息和/或覆盖类型信息,方便用户查看并定位对应未覆盖项。
在一个实施例中,步骤S104具体包括:将解释信息输入界面内的输入内容作为该解释链接对应的未覆盖项的解释信息,添加到对应的解释文件中。
进一步地,解释信息输入界面内除覆盖点路径信息和覆盖类型信息外,还可以包括由用户输入的作者信息和解释内容信息,在用户确认提交后,解释信息输入界面将上述四项信息全部更新至对应的解释文件中,方便用户查看到完整的信息。
在一个实施例中,在执行完步骤S104后,本发明实施例的优化方法还包括如下步骤:在覆盖分析报告中添加该解释链接对应的未覆盖项的解释信息查看链接,其中,解释信息查看链接用于在被触发时显示对应的解释文件中对应的解释信息。
在覆盖分析报告中针对未覆盖项增加解释信息查看链接,这样用户可通过点击解释信息查看链接,打开对应的解释文件,便捷地查看对应的解释信息、覆盖点路径信息、覆盖类型信息、作者信息以及解释内容信息等。进一步地,用户还可以对解释文件中的信息进行修改。
在一个实施例中,在执行完步骤S104后,本发明实施例的优化方法还包括如下步骤:
将覆盖分析报告中该解释链接对应的未覆盖项的覆盖状态修改为已解释;
根据覆盖状态更新覆盖分析报告中的覆盖统计数据。
其中,覆盖统计数据包括但不限于:已覆盖代码项数量、已解释代码项数量、总代码项数量。
以SCADE软件为例,在添加完某一未覆盖项的解释信息后,SCADE软件将修改该未覆盖项对应CoverageA.c.cov.html文件中的标签<li>,将其类型class修改为“justified”,并删除标签内容“NOT COVERED”的项,即将该未覆盖项的覆盖状态修改为已解释。此外,还可以在标签<li>后面增加内容为“JUSTIFIED”标签<a>的链接,这样即可在覆盖分析报告中该未覆盖项的对应位置处显示用户可操作的解释信息查看链接,用户点击解释信息查看链接,可打开Control_Justifications.html文件,并定位到相应的解释内容。
进一步地,完成未覆盖项的覆盖状态的修改后,SCADE软件将统计文件中内容为“JUSTIFIED”的标签<li>的数量just_number,just_number表示已解释代码项数量。然后,从覆盖分析报告的主页index.html文件的标签<a>链接href中,定位到包含“CoverageA.c.html”的列标签<td>,此定位到列标签<td>为第一列,将此列和第三列中的内容innerText修改为just_number,即完成已解释代码项数量的更新。
以定位到列标签<td>为第一列,获取第二列列标签<td>的内容innerText为number1,number1即为已覆盖代码项数量,获取第三列标签<td>的内容innerText为number2,number2即为已解释代码项数量,并将第四列内容innerText由“number3/number4”修改为“number1+number2/number4”,number4为总代码项数量,判断number1+number2是否等于number4,即判断已覆盖项和已解释项是否等于总代码项数量,从而判断覆盖率是否已达到100%。
若判断number1+number2等于number4,则将上述定位到的标签<td>的后续第四个标签内容innerText修改为“C”,即COVERED表示已全部覆盖,并其自身及后续四列标签<td>的类型修改为“justified”。表示以解释方式通过的覆盖分析。
定位覆盖分析报告的主页index.html文件中内容innerText为“Justificationfiles”的标签<h2>,将该标签<h2>下的标签<pre>删除,并新增标签<ul><li><a>,其中标签<a>的链接,其内容innerText为Control_Justifications.html的绝对地址,链接href为“Control_Justifications.html”。上述步骤将覆盖报告主页文件的二级列表标题h2内容修改为解释文件的链接。
针对未覆盖项添加解释说明之后,即将未覆盖项覆盖状态改为已解释,已解释的未覆盖项记为已覆盖数据来更新覆盖分析报告中的覆盖统计数据。
图2示出了本发明实施例提供的一种代码覆盖分析的优化方法的具体实施流程图:
A1:在SCADE覆盖分析文件夹内新建解释文件Control_Justifications.html,解释文件Control_Justifications.html用于存放用户新增的解释信息;新建新增界面文件Add_Justification.html,Add_Justification.html文件设置有确认增加解释信息按钮“ADD”及相应的javascript监听代码块二,Add_Justification.html的页面内容包括Coverage point path、Coverage kind、Author以及Description四点内容的输入,Add_Justification.html文件用于供用户添加解释信息使用;
A2:遍历SCADE覆盖分析文件夹下所有的HTML文件,找到目标目录下的所有后缀为“.c.cov.html”的文件,对每个后缀为“.c.cov.html”的文件分别执行以下步骤;后续以CoverageA.c.cov.html文件为例,执行以下步骤;
A3:根据步骤A2中得到的CoverageA.c.cov.html文件,依次遍历文件中的标签<li>,找到其中类型class为“not_covered”且内容包含“:NOT COVERED”的标签<li>;
A4:根据A3中遍历得到的标签<li>,在标签内最后添加内容为“AddJustification”的标签<a>的链接,链接为“href=Add_Justification.html”;
A5:在A4添加的链接中,增加javascript监听代码块一,当单击链接时javascript监听代码块一自动获取当前标签<li>下第一个标签<a>的id内容,并将id内容传入到Add_Justification.html的Coverage point path中,以确保Coverage point path的正确性;同时自动获取当前标签<li>内容中“observed:”后的字符串,将获取的字符串传入到Add_Justification.html的Coverage kind中,确保Coverage kind的类型输入的正确性;
其中,解释信息输入界面Add_Justification.html在添加解释信息确认完成后,触发javascript监听代码块二,从而依次执行以下步骤:
B1:将Add_Justification.html的四项页面内容传入到Control_Justifications.html文件中;
B2:修改对应CoverageA.c.cov.html文件中的标签<li>,将其类型class修改为“justified”,删除标签内容“NOT COVERED”的项,在后面增加内容为“JUSTIFIED”标签<a>的链接,“JUSTIFIED”标签<a>的链接,用以连接打开Control_Justifications.html文件,并定位到相应的解释内容;
B3:遍历覆盖报告文件中的HTML文件找到对应文件CoverageA.c.html,然后找到id为Coverage point path内容的标签<span>,将该标签类型修改为<justified>,并修改标签<span>前一个标签<spane>中的内容,将其内容修改为Add_Justification.html界面中的四项内容;
B4:返回CoverageACoverageA.c.cov.html界面,同时统计文件中内容为“JUSTIFIED”的标签<li>的数量just_number;
B5:根据步骤B4中统计得到的数量just_number,修改报告主页index.html界面中标签<a>链接href中包含“CoverageA.c.html”的标签<td>,将此标签<td>及其后第二个标签<td>的内容innerText修改为just_number;获取标签<td>后第一个<td>标签内容innerText为number1,后续第二个<td>标签内容innerText为number2,将后续第三个标签内容innerText由“number3/number4”修改为“number1+number2/number4”,并判断number1+number2是否等于number4,若是则顺序执行B6,若否则跳过B6直接执行B7;
B6:将步骤B5的标签<td>的后续第四个标签内容innerText修改为“C”,并将其自身及后续四个标签<td>的类型修改为“justified”;
B7:将index.html文件中的标签<h2>内容innerText为“Justification files”下的标签<pre>删除,新增标签<ul><li><a>,其中标签<a>的链接,其内容innerText为Control_Justifications.html的绝对地址,链接为“href=Control_Justifications.html”。
用户针对生成的覆盖分析报告操作过程如下:
从SCADE中打开覆盖分析报告主页index.html界面,找到未覆盖项,点击未覆盖项可以链接到特定的模型中或对应的生成的代码插装处;
用户对未覆盖项进行分析,判断是否是额外的防御性编码内容,若是,则在点击覆盖分析报告中该未覆盖项的解释链接,进入解释信息输入界面增加相应的解释说明,并提交;若否,则分析测试用例或模型,判断是否是未覆盖的测试项或是多余的无用代码,然后对测试用例或软件模型进行修改;
反复进行覆盖分析使当前软件的代码覆盖分析满足DO-178C对软件的结构覆盖要求。
图3为一种本发明实施例提供的一种面向SCADE代码覆盖分析的装置的结构框图,该装置包括:
本发明实施例提供了一种代码覆盖分析的优化装置,包括:
获取模块,用于获取待测试代码对应的覆盖分析报告;
定位模块,用于定位出所述覆盖分析报告中的未覆盖项,并在所述覆盖分析报告中增加未覆盖项对应的解释链接;
输入模块,用于响应针对所述覆盖分析报告中任一解释链接的触发操作,显示解释信息输入界面;
更新模块,用于响应所述解释信息输入界面的确认操作,根据所述解释信息输入界面内的输入内容,更新所述覆盖分析报告中所述任一解释链接对应的未覆盖项的解释信息。
在一个实施例中,获取模块具体包括:
目标文件查找单元,用于在所述覆盖分析报告对应的HTML文件中查找包含覆盖分析信息的目标文件;
未覆盖项查找单元,用于在所述目标文件的指定标签内查找是否存在表示代码项的覆盖状态为未覆盖的标签,若存在,则确定对应代码项为未覆盖项,并在所述指定标签内添加解释链接对应的链接标签。
在一个实施例中,优化装置还包括:
监听模块,用于在所述链接标签中增加监听代码,所述监听代码用于监听所述解释链接是否被触发。
在一个实施例中,所述输入模块还用以响应针对所述覆盖分析报告中任一解释链接的触发操作,在所述解释信息输入界面中显示所述未覆盖项的覆盖分析信息,所述覆盖分析信息包括覆盖点路径信息和/或覆盖类型信息。
在一个实施例中,所述更新模块还用于将所述解释信息输入界面内的输入内容作为所述任一解释链接对应的未覆盖项的解释信息,添加到所述覆盖分析报告中所述任一解释链接对应的解释文件中。
在一个实施例中,所述更新模块还用于在所述覆盖分析报告中添加所述任一解释链接对应的未覆盖项的解释信息查看链接,其中,所述解释信息查看链接用于在被触发时显示对应的解释文件。
在一个实施例中,优化装置还包括:
修改模块,用于将所述覆盖分析报告中所述任一解释链接对应的未覆盖项的覆盖状态修改为已解释;根据覆盖状态更新所述覆盖分析报告中的覆盖统计数据。
本实施例未详细描述的部分,可参考对图1-2所示实施例的相关说明。在此不再赘述。
图4示出了本发明实施例提供的电子设备40的结构示意图,电子设备40包括至少一个处理器401(例如CPU),至少一个输入输出接口404,存储器402,和至少一个通信总线403,用于实现这些部件之间的连接通信。至少一个处理器401用于执行存储器402中存储的计算机指令,以使所述至少一个处理器401能够执行前述任一方法的实施例。存储器402为非暂态存储器(non-transitory memory),其可以包含易失性存储器,例如高速随机存取存储器(RAM:Random Access Memory),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个输入输出接口404(可以是有线或者无线通信接口)实现与至少一个其他设备或单元之间的通信连接。
在一些实施方式中,存储器402存储了程序4021,处理器401执行程序4021,用于执行前述任一分表方法实施例中的内容。
该电子设备可以以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)特定服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。
在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (9)

1.一种代码覆盖分析的优化方法,其特征在于,包括以下步骤:
获取待测试代码对应的覆盖分析报告;
定位出所述覆盖分析报告中的未覆盖项,并在所述覆盖分析报告中增加未覆盖项对应的解释链接,具体包括:在所述覆盖分析报告对应的HTML文件中查找包含覆盖分析信息的目标文件;在所述目标文件的指定标签内查找是否存在表示代码项的覆盖状态为未覆盖的标签,若存在,则确定对应代码项为未覆盖项,并在所述指定标签内添加解释链接对应的链接标签;
响应针对所述覆盖分析报告中任一解释链接的触发操作,显示解释信息输入界面;
响应通过所述解释信息输入界面输入的确认操作,根据所述解释信息输入界面内的输入内容,更新所述覆盖分析报告中所述任一解释链接对应的未覆盖项的解释信息。
2.根据权利要求1所述的优化方法,其特征在于,所述优化方法还包括:
在所述链接标签中增加监听代码,所述监听代码用于监听所述解释链接是否被触发。
3.根据权利要求1所述的优化方法,其特征在于,所述优化方法还包括:
响应针对所述覆盖分析报告中任一解释链接的触发操作,在所述解释信息输入界面中显示所述未覆盖项的覆盖分析信息,所述覆盖分析信息包括覆盖点路径信息和/或覆盖类型信息。
4.根据权利要求1-3任一所述的优化方法,其特征在于,所述根据所述解释信息输入界面内的输入内容,更新所述覆盖分析报告中所述任一解释链接对应的未覆盖项的解释信息,具体包括:
将所述解释信息输入界面内的输入内容作为所述任一解释链接对应的未覆盖项的解释信息,添加到所述覆盖分析报告中所述任一解释链接对应的解释文件中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述覆盖分析报告中添加所述任一解释链接对应的未覆盖项的解释信息查看链接,其中,所述解释信息查看链接用于在被触发时显示对应的解释文件。
6.根据权利要求1-3任一所述的优化方法,其特征在于,在所述更新所述覆盖分析报告中所述任一解释链接对应的未覆盖项的解释信息之后,所述优化方法还包括:
将所述覆盖分析报告中所述任一解释链接对应的未覆盖项的覆盖状态修改为已解释;
根据覆盖状态更新所述覆盖分析报告中的覆盖统计数据。
7.一种代码覆盖分析的优化装置,其特征在于,包括:
获取模块,用于获取待测试代码对应的覆盖分析报告;
定位模块,用于定位出所述覆盖分析报告中的未覆盖项,并在所述覆盖分析报告中增加未覆盖项对应的解释链接,具体包括:在所述覆盖分析报告对应的HTML文件中查找包含覆盖分析信息的目标文件;在所述目标文件的指定标签内查找是否存在表示代码项的覆盖状态为未覆盖的标签,若存在,则确定对应代码项为未覆盖项,并在所述指定标签内添加解释链接对应的链接标签;
输入模块,用于响应针对所述覆盖分析报告中任一解释链接的触发操作,显示解释信息输入界面;
更新模块,用于响应所述解释信息输入界面的确认操作,根据所述解释信息输入界面内的输入内容,更新所述覆盖分析报告中所述任一解释链接对应的未覆盖项的解释信息。
8.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-6任一项所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行如权利要求1-6任一项所述的方法。
CN202110637494.4A 2021-06-08 2021-06-08 一种代码覆盖分析的优化方法、装置及电子设备 Active CN113220307B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110637494.4A CN113220307B (zh) 2021-06-08 2021-06-08 一种代码覆盖分析的优化方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110637494.4A CN113220307B (zh) 2021-06-08 2021-06-08 一种代码覆盖分析的优化方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113220307A CN113220307A (zh) 2021-08-06
CN113220307B true CN113220307B (zh) 2022-02-22

Family

ID=77083165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110637494.4A Active CN113220307B (zh) 2021-06-08 2021-06-08 一种代码覆盖分析的优化方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113220307B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180058579A (ko) * 2016-11-24 2018-06-01 경북대학교 산학협력단 액티비티 스택에 기반한 테스트 시나리오 생성 방법
CN109086215A (zh) * 2018-10-18 2018-12-25 北京轩宇信息技术有限公司 一种嵌入式软件单元测试用例生成方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6857598B2 (ja) * 2017-12-26 2021-04-14 株式会社日立製作所 カバレッジテスト支援装置およびカバレッジテスト支援方法
CN112035376B (zh) * 2020-11-05 2021-04-09 四川科道芯国智能技术股份有限公司 一种生成覆盖率报告的方法、装置、设备及存储介质
CN112685312A (zh) * 2020-12-31 2021-04-20 广州品唯软件有限公司 一种未覆盖代码的测试用例推荐方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180058579A (ko) * 2016-11-24 2018-06-01 경북대학교 산학협력단 액티비티 스택에 기반한 테스트 시나리오 생성 방법
CN109086215A (zh) * 2018-10-18 2018-12-25 北京轩宇信息技术有限公司 一种嵌入式软件单元测试用例生成方法及系统

Also Published As

Publication number Publication date
CN113220307A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN109086204B (zh) 节点关系树建立、页面标记和识别方法、装置和存储介质
CN107925696B (zh) 用于识别、索引和导航至移动应用的深度状态的系统和方法
US8473914B2 (en) Semi-automated update of application test scripts
CN107992458B (zh) 表格规则的生成方法和装置、存储介质以及电子设备
US8578334B2 (en) Dynamic language-based integrated development environment
CN110955428A (zh) 一种页面显示方法、装置、电子设备及介质
US9229691B2 (en) Method and apparatus for programming assistance
CN110781091B (zh) 应用程序的测试方法、装置、电子设备及存储介质
CN103136100B (zh) 一种Android测试的方法和系统
CN110928763A (zh) 测试方法、装置、存储介质及计算机设备
US20200233624A1 (en) Method, device and computer program product for updating user interface
US11726803B2 (en) Artificial intelligence based systems and methods for autonomously generating customer service help guides with integrated graphical components and for autonomously error-checking knowledge base support resources
CN110377910B (zh) 一种表格描述的处理方法、装置、设备及存储介质
CN116560683A (zh) 软件更新方法、装置、设备及存储介质
CN115268879A (zh) 代码处理方法、装置、电子设备及存储介质
CN112286486B (zh) 智能终端上应用程序的运行方法、智能终端和存储介质
CN113553268A (zh) 一种ai智能软件测试方法
CN113220307B (zh) 一种代码覆盖分析的优化方法、装置及电子设备
CN111679976A (zh) 一种页面对象的查找方法及装置
CN104683310A (zh) 联网游戏的新手向导实现方法
CN110705637A (zh) 一种基于应用安装列表信息的用户分类的方法、装置和电子设备
CN111723134A (zh) 信息处理方法、装置、电子设备及存储介质
CN109101429A (zh) 一种机顶盒的浏览器页面调试的方法及装置
CN112667502A (zh) 页面测试方法、装置及介质
CN113934959A (zh) 一种程序预览方法、装置、计算机设备和存储介质

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
GR01 Patent grant
GR01 Patent grant