一种代码覆盖分析的优化方法、装置及电子设备
文献发布时间:2023-06-19 12:07:15
技术领域
本发明涉及基于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软件中的指定标签为标签
以SCADE软件为例,上述步骤具体为:通过遍历后缀为“.c.cov.html”的目标文件中的标签
用户在触发覆盖分析报告中显示的解释链接后,SCADE软件会弹出解释输入界面,用户在解释输入界面中输入需要添加的解释信息,用户完成解释信息的输入后点击解释输入界面中的确认按钮,SCADE软件将Add_Justification.html文件中的解释信息添加到对应的Control_Justifications.html文件,完成解释信息的添加。
该实施例中通过指定后缀的文件及指定标签状态来快速准确定位出未覆盖项,并通过在指定标签内添加解释链接对应的链接标签,进而在覆盖分析报告的各未覆盖项中添加对应的解释链接,方便用户通过触发解释链接快速实现解释信息的添加。
在一个实施例中,响应针对覆盖分析报告中任一解释链接的触发操作,在解释信息输入界面中显示未覆盖项的覆盖分析信息,覆盖分析信息包括覆盖点路径信息和/或覆盖类型信息。
其中,在未覆盖项的解释链接被触发时,从未覆盖项对应的标签内容中获取覆盖点路径信息和/或覆盖类型信息等信息,并在解释信息输入界面中显示。
为此,解释信息输入界面在被显示时可自动获取并显示未覆盖项的覆盖点路径信息和/或覆盖类型信息,方便用户查看并定位对应未覆盖项。
在一个实施例中,步骤S104具体包括:将解释信息输入界面内的输入内容作为该解释链接对应的未覆盖项的解释信息,添加到对应的解释文件中。
进一步地,解释信息输入界面内除覆盖点路径信息和覆盖类型信息外,还可以包括由用户输入的作者信息和解释内容信息,在用户确认提交后,解释信息输入界面将上述四项信息全部更新至对应的解释文件中,方便用户查看到完整的信息。
在一个实施例中,在执行完步骤S104后,本发明实施例的优化方法还包括如下步骤:在覆盖分析报告中添加该解释链接对应的未覆盖项的解释信息查看链接,其中,解释信息查看链接用于在被触发时显示对应的解释文件中对应的解释信息。
在覆盖分析报告中针对未覆盖项增加解释信息查看链接,这样用户可通过点击解释信息查看链接,打开对应的解释文件,便捷地查看对应的解释信息、覆盖点路径信息、覆盖类型信息、作者信息以及解释内容信息等。进一步地,用户还可以对解释文件中的信息进行修改。
在一个实施例中,在执行完步骤S104后,本发明实施例的优化方法还包括如下步骤:
将覆盖分析报告中该解释链接对应的未覆盖项的覆盖状态修改为已解释;
根据覆盖状态更新覆盖分析报告中的覆盖统计数据。
其中,覆盖统计数据包括但不限于:已覆盖代码项数量、已解释代码项数量、总代码项数量。
以SCADE软件为例,在添加完某一未覆盖项的解释信息后,SCADE软件将修改该未覆盖项对应CoverageA.c.cov.html文件中的标签
进一步地,完成未覆盖项的覆盖状态的修改后,SCADE软件将统计文件中内容为“JUSTIFIED”的标签
以定位到列标签
若判断number1+number2等于number4,则将上述定位到的标签
定位覆盖分析报告的主页index.html文件中内容innerText为“Justificationfiles”的标签
,将该标签下的标签删除,并新增标签
- ,其中标签的链接,其内容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文件,依次遍历文件中的标签
- ,找到其中类型class为“not_covered”且内容包含“:NOT COVERED”的标签
- ;
A4:根据A3中遍历得到的标签
- ,在标签内最后添加内容为“AddJustification”的标签的链接,链接为“href=Add_Justification.html”;
A5:在A4添加的链接中,增加javascript监听代码块一,当单击链接时javascript监听代码块一自动获取当前标签
- 下第一个标签的id内容,并将id内容传入到Add_Justification.html的Coverage point path中,以确保Coverage point path的正确性;同时自动获取当前标签
- 内容中“observed:”后的字符串,将获取的字符串传入到Add_Justification.html的Coverage kind中,确保Coverage kind的类型输入的正确性;
其中,解释信息输入界面Add_Justification.html在添加解释信息确认完成后,触发javascript监听代码块二,从而依次执行以下步骤:
B1:将Add_Justification.html的四项页面内容传入到Control_Justifications.html文件中;
B2:修改对应CoverageA.c.cov.html文件中的标签
- ,将其类型class修改为“justified”,删除标签内容“NOT COVERED”的项,在后面增加内容为“JUSTIFIED”标签的链接,“JUSTIFIED”标签的链接,用以连接打开Control_Justifications.html文件,并定位到相应的解释内容;
B3:遍历覆盖报告文件中的HTML文件找到对应文件CoverageA.c.html,然后找到id为Coverage point path内容的标签,将该标签类型修改为,并修改标签前一个标签中的内容,将其内容修改为Add_Justification.html界面中的四项内容;
B4:返回CoverageACoverageA.c.cov.html界面,同时统计文件中内容为“JUSTIFIED”的标签
- 的数量just_number;
B5:根据步骤B4中统计得到的数量just_number,修改报告主页index.html界面中标签链接href中包含“CoverageA.c.html”的标签
,将此标签 及其后第二个标签 的内容innerText修改为just_number;获取标签 后第一个 标签内容innerText为number1,后续第二个 标签内容innerText为number2,将后续第三个标签内容innerText由“number3/number4”修改为“number1+number2/number4”,并判断number1+number2是否等于number4,若是则顺序执行B6,若否则跳过B6直接执行B7;B6:将步骤B5的标签
的后续第四个标签内容innerText修改为“C”,并将其自身及后续四个标签 的类型修改为“justified”;B7:将index.html文件中的标签
内容innerText为“Justification files”下的标签删除,新增标签
- ,其中标签的链接,其内容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)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
相关技术
-
一种代码覆盖分析的优化方法、装置及电子设备
-
一种静态代码扫描优化方法、装置、电子设备和存储介质
技术分类
- 农业;林业;畜牧业;狩猎;诱捕;捕鱼
- 焙烤;制作或处理面团的设备;焙烤用面团
- 屠宰;肉品处理;家禽或鱼的加工
- 其他类不包含的食品或食料;及其处理
- 烟草、雪茄烟、纸烟、吸烟者用品
- 服装
- 帽类制品
- 鞋类
- 服饰缝纫用品、珠宝
- 手携物品或旅行品
- 刷类制品
- 家具、家庭用的物品或设备、咖啡磨、香料磨、一般吸尘器
- 医学或兽医学、卫生学
- 救生、消防
- 运动、游戏、娱乐活动
- 本部其他类目中不包括的技术主题
- 一般的物理或化学的方法或装置
- 破碎、磨粉或粉碎、谷物碾磨的预处理
- 用液体或用风力摇床或风力跳汰机分离固体物料、从固体物料或流体中分离固体物料的磁或静电分离、高压电场分离
- 用于实现物理或化学工艺过程的离心装置或离心机
- 一般喷射或雾化、对表面涂覆液体或其他流体的一般方法
- 一般机械振动的发生或传递
- 将固体从固体中分离、分选
- 清洁
- 固体废物的处理、被污染土壤的再生
- 基本上无切削的金属机械加工、金属冲压
- 铸造、粉末冶金
- 机床、其他类目中不包括的金属加工
- 磨削、抛光
- 手动工具、轻便机动工具、手动器械的手柄、车间设备、机械手
- 手动切割工具、切割、切断
- 木材或类似材料的加工或保存、一般钉钉机或钉U形钉机
- 加工水泥、黏土或石料
- 塑料的加工、一般处于塑性状态物质的加工
- 压力机
- 纸品或纸板或类似纸的方式加工的材料制品制作、纸或纸板或类似纸的方式加工的材料的加工
- 层状产品
- 附加制造技术
- 印刷、排版机、打字机、模印机
- 装订、图册、文件夹、特种印刷品
- 书写或绘图器具、办公用品
- 装饰艺术
- 一般车辆
- 铁路
- 无轨陆用车辆
- 船舶或其他水上船只、与船有关的设备
- 飞行器、航空、宇宙航行
- 输送、包装、贮存、搬运薄的或细丝状材料
- 卷扬、提升、牵引
- 开启或封闭瓶子、罐或类似的容器、液体的贮运
- 鞍具、家具罩面
- 微观结构技术
- 纳米技术
- 无机化学
- 水、废水、污水或污泥的处理
- 玻璃、矿棉或渣棉
- 水泥、混凝土、人造石、陶瓷、耐火材料
- 肥料、肥料制造
- 炸药、火柴
- 有机化学
- 有机高分子化合物、其制备或化学加工、以其为基料的组合物
- 染料、涂料、抛光剂、天然树脂、黏合剂、其他类目不包含的组合物、其他类目不包含的材料的应用
- 石油、煤气及炼焦工业、含一氧化碳的工业气体、燃料、润滑剂、泥煤
- 动物或植物油、脂、脂肪物质或蜡、由此制取的脂肪酸、洗涤剂、蜡烛
- 生物化学、啤酒、烈性酒、果汁酒、醋、微生物学、酶学、突变或遗传工程
- 糖工业
- 使用化学药剂、酶类或微生物处理小原皮、大原皮或皮革的工艺,如鞣制、浸渍或整饰、其所用的设备、鞣制组合物(皮革或毛皮的漂白入D06L、皮革或毛皮的染色入D06P)
- 铁的冶金
- 冶金、黑色或有色金属合金、合金或有色金属的处理
- 对金属材料的镀覆、用金属材料对材料的镀覆、表面化学处理、金属材料的扩散处理、真空蒸发法、溅射法、离子注入法或化学气相沉积法的一般镀覆、金属材料腐蚀或积垢的一般抑制
- 电解或电泳工艺、其所用设备
- 晶体生长
- 组合技术
- 天然或化学的线或纤维、纺纱或纺丝
- 纱线、纱线或绳索的机械整理、整经或络经
- 织造
- 编织、花边制作、针织、饰带、非织造布
- 缝纫、绣花、簇绒
- 织物等的处理、洗涤、其他类不包括的柔性材料
- 绳、除电缆以外的缆索
- 造纸、纤维素的生产
- 道路、铁路或桥梁的建筑
- 水利工程、基础、疏浚
- 给水、排水
- 建筑物
- 锁、钥匙、门窗零件、保险箱
- 一般门、窗、百叶窗或卷辊遮帘、梯子
- 土层或岩石的钻进、采矿
- 一般机器或发动机、一般的发动机装置、蒸汽机
- 燃烧发动机、热气或燃烧生成物的发动机装置
- 液力机械或液力发动机、风力、弹力或重力发动机、其他类目中不包括的产生机械动力或反推力的发动机
- 液体变容式机械、液体泵或弹性流体泵
- 流体压力执行机构、一般液压技术和气动技术
- 工程元件或部件、为产生和保持机器或设备的有效运行的一般措施、一般绝热
- 气体或液体的贮存或分配
- 照明
- 蒸汽的发生
- 燃烧设备、燃烧方法
- 供热、炉灶、通风
- 制冷或冷却、加热和制冷的联合系统、热泵系统、冰的制造或储存、气体的液化或固化
- 干燥
- 炉、窑、烘烤炉、蒸馏炉
- 一般热交换
- 武器
- 弹药、爆破
- 测量、测试
- 光学
- 摄影术、电影术、利用了光波以外其他波的类似技术、电记录术、全息摄影术〔4〕
- 测时学
- 控制、调节
- 计算、推算、计数
- 核算装置
- 信号装置
- 教育、密码术、显示、广告、印鉴
- 乐器、声学
- 信息存储
- 仪器的零部件
- 特别适用于特定应用领域的信息通信技术
- 核物理、核工程
- 基本电气元件
- 发电、变电或配电
- 基本电子电路
- 电通信技术
- 其他类目不包含的电技术
- 其他专利
删除,并新增标签
- ,其中标签的链接,其内容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文件,依次遍历文件中的标签
- ,找到其中类型class为“not_covered”且内容包含“:NOT COVERED”的标签
- ;
A4:根据A3中遍历得到的标签
- ,在标签内最后添加内容为“AddJustification”的标签的链接,链接为“href=Add_Justification.html”;
A5:在A4添加的链接中,增加javascript监听代码块一,当单击链接时javascript监听代码块一自动获取当前标签
- 下第一个标签的id内容,并将id内容传入到Add_Justification.html的Coverage point path中,以确保Coverage point path的正确性;同时自动获取当前标签
- 内容中“observed:”后的字符串,将获取的字符串传入到Add_Justification.html的Coverage kind中,确保Coverage kind的类型输入的正确性;
其中,解释信息输入界面Add_Justification.html在添加解释信息确认完成后,触发javascript监听代码块二,从而依次执行以下步骤:
B1:将Add_Justification.html的四项页面内容传入到Control_Justifications.html文件中;
B2:修改对应CoverageA.c.cov.html文件中的标签
- ,将其类型class修改为“justified”,删除标签内容“NOT COVERED”的项,在后面增加内容为“JUSTIFIED”标签的链接,“JUSTIFIED”标签的链接,用以连接打开Control_Justifications.html文件,并定位到相应的解释内容;
B3:遍历覆盖报告文件中的HTML文件找到对应文件CoverageA.c.html,然后找到id为Coverage point path内容的标签,将该标签类型修改为
,并修改标签前一个标签 中的内容,将其内容修改为Add_Justification.html界面中的四项内容; B4:返回CoverageACoverageA.c.cov.html界面,同时统计文件中内容为“JUSTIFIED”的标签
- 的数量just_number;
B5:根据步骤B4中统计得到的数量just_number,修改报告主页index.html界面中标签链接href中包含“CoverageA.c.html”的标签
,将此标签 及其后第二个标签 的内容innerText修改为just_number;获取标签 后第一个 标签内容innerText为number1,后续第二个 标签内容innerText为number2,将后续第三个标签内容innerText由“number3/number4”修改为“number1+number2/number4”,并判断number1+number2是否等于number4,若是则顺序执行B6,若否则跳过B6直接执行B7; B6:将步骤B5的标签
的后续第四个标签内容innerText修改为“C”,并将其自身及后续四个标签 的类型修改为“justified”; B7:将index.html文件中的标签
内容innerText为“Justification files”下的标签
删除,新增标签
- ,其中标签的链接,其内容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)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
相关技术- 一种代码覆盖分析的优化方法、装置及电子设备
- 一种静态代码扫描优化方法、装置、电子设备和存储介质
技术分类- 农业;林业;畜牧业;狩猎;诱捕;捕鱼
- 焙烤;制作或处理面团的设备;焙烤用面团
- 屠宰;肉品处理;家禽或鱼的加工
- 其他类不包含的食品或食料;及其处理
- 烟草、雪茄烟、纸烟、吸烟者用品
- 服装
- 帽类制品
- 鞋类
- 服饰缝纫用品、珠宝
- 手携物品或旅行品
- 刷类制品
- 家具、家庭用的物品或设备、咖啡磨、香料磨、一般吸尘器
- 医学或兽医学、卫生学
- 救生、消防
- 运动、游戏、娱乐活动
- 本部其他类目中不包括的技术主题
- 一般的物理或化学的方法或装置
- 破碎、磨粉或粉碎、谷物碾磨的预处理
- 用液体或用风力摇床或风力跳汰机分离固体物料、从固体物料或流体中分离固体物料的磁或静电分离、高压电场分离
- 用于实现物理或化学工艺过程的离心装置或离心机
- 一般喷射或雾化、对表面涂覆液体或其他流体的一般方法
- 一般机械振动的发生或传递
- 将固体从固体中分离、分选
- 清洁
- 固体废物的处理、被污染土壤的再生
- 基本上无切削的金属机械加工、金属冲压
- 铸造、粉末冶金
- 机床、其他类目中不包括的金属加工
- 磨削、抛光
- 手动工具、轻便机动工具、手动器械的手柄、车间设备、机械手
- 手动切割工具、切割、切断
- 木材或类似材料的加工或保存、一般钉钉机或钉U形钉机
- 加工水泥、黏土或石料
- 塑料的加工、一般处于塑性状态物质的加工
- 压力机
- 纸品或纸板或类似纸的方式加工的材料制品制作、纸或纸板或类似纸的方式加工的材料的加工
- 层状产品
- 附加制造技术
- 印刷、排版机、打字机、模印机
- 装订、图册、文件夹、特种印刷品
- 书写或绘图器具、办公用品
- 装饰艺术
- 一般车辆
- 铁路
- 无轨陆用车辆
- 船舶或其他水上船只、与船有关的设备
- 飞行器、航空、宇宙航行
- 输送、包装、贮存、搬运薄的或细丝状材料
- 卷扬、提升、牵引
- 开启或封闭瓶子、罐或类似的容器、液体的贮运
- 鞍具、家具罩面
- 微观结构技术
- 纳米技术
- 无机化学
- 水、废水、污水或污泥的处理
- 玻璃、矿棉或渣棉
- 水泥、混凝土、人造石、陶瓷、耐火材料
- 肥料、肥料制造
- 炸药、火柴
- 有机化学
- 有机高分子化合物、其制备或化学加工、以其为基料的组合物
- 染料、涂料、抛光剂、天然树脂、黏合剂、其他类目不包含的组合物、其他类目不包含的材料的应用
- 石油、煤气及炼焦工业、含一氧化碳的工业气体、燃料、润滑剂、泥煤
- 动物或植物油、脂、脂肪物质或蜡、由此制取的脂肪酸、洗涤剂、蜡烛
- 生物化学、啤酒、烈性酒、果汁酒、醋、微生物学、酶学、突变或遗传工程
- 糖工业
- 使用化学药剂、酶类或微生物处理小原皮、大原皮或皮革的工艺,如鞣制、浸渍或整饰、其所用的设备、鞣制组合物(皮革或毛皮的漂白入D06L、皮革或毛皮的染色入D06P)
- 铁的冶金
- 冶金、黑色或有色金属合金、合金或有色金属的处理
- 对金属材料的镀覆、用金属材料对材料的镀覆、表面化学处理、金属材料的扩散处理、真空蒸发法、溅射法、离子注入法或化学气相沉积法的一般镀覆、金属材料腐蚀或积垢的一般抑制
- 电解或电泳工艺、其所用设备
- 晶体生长
- 组合技术
- 天然或化学的线或纤维、纺纱或纺丝
- 纱线、纱线或绳索的机械整理、整经或络经
- 织造
- 编织、花边制作、针织、饰带、非织造布
- 缝纫、绣花、簇绒
- 织物等的处理、洗涤、其他类不包括的柔性材料
- 绳、除电缆以外的缆索
- 造纸、纤维素的生产
- 道路、铁路或桥梁的建筑
- 水利工程、基础、疏浚
- 给水、排水
- 建筑物
- 锁、钥匙、门窗零件、保险箱
- 一般门、窗、百叶窗或卷辊遮帘、梯子
- 土层或岩石的钻进、采矿
- 一般机器或发动机、一般的发动机装置、蒸汽机
- 燃烧发动机、热气或燃烧生成物的发动机装置
- 液力机械或液力发动机、风力、弹力或重力发动机、其他类目中不包括的产生机械动力或反推力的发动机
- 液体变容式机械、液体泵或弹性流体泵
- 流体压力执行机构、一般液压技术和气动技术
- 工程元件或部件、为产生和保持机器或设备的有效运行的一般措施、一般绝热
- 气体或液体的贮存或分配
- 照明
- 蒸汽的发生
- 燃烧设备、燃烧方法
- 供热、炉灶、通风
- 制冷或冷却、加热和制冷的联合系统、热泵系统、冰的制造或储存、气体的液化或固化
- 干燥
- 炉、窑、烘烤炉、蒸馏炉
- 一般热交换
- 武器
- 弹药、爆破
- 测量、测试
- 光学
- 摄影术、电影术、利用了光波以外其他波的类似技术、电记录术、全息摄影术〔4〕
- 测时学
- 控制、调节
- 计算、推算、计数
- 核算装置
- 信号装置
- 教育、密码术、显示、广告、印鉴
- 乐器、声学
- 信息存储
- 仪器的零部件
- 特别适用于特定应用领域的信息通信技术
- 核物理、核工程
- 基本电气元件
- 发电、变电或配电
- 基本电子电路
- 电通信技术
- 其他类目不包含的电技术
- 其他专利