CN105718373B - 满足do-178c的代码覆盖率生成方法 - Google Patents
满足do-178c的代码覆盖率生成方法 Download PDFInfo
- Publication number
- CN105718373B CN105718373B CN201610051717.8A CN201610051717A CN105718373B CN 105718373 B CN105718373 B CN 105718373B CN 201610051717 A CN201610051717 A CN 201610051717A CN 105718373 B CN105718373 B CN 105718373B
- Authority
- CN
- China
- Prior art keywords
- source file
- measured
- coverage
- memory headroom
- code
- 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
Links
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
Abstract
本发明公开了一种满足DO‑178C的代码覆盖率生成方法,包括:获得待测源文件的数量;根据待测源文件的数量生成覆盖率内存空间,每个待测源文件对应生成一个覆盖率内存空间;为覆盖率内存空间占据的比特位生成位置索引;在待测源文件的功能函数中插入探针函数,所述探针函数用于对所述位置索引赋值;对待测源文件进行编译和链接以在所述覆盖率内存空间中生成代码覆盖率信息。本发明提供的满足DO‑178C的代码覆盖率生成方法,基于源文件统计代码覆盖率,可以提高机载软件代码覆盖率的测试效率。
Description
技术领域
本发明涉及机载软件开发技术领域,具体涉及一种满足DO-178C的代码覆盖率生成方法。
背景技术
非机载软件研制过程中,软件开发环境大多采用集成开发环境(IDE,IntegratedDevelopment Environment)。集成开发环境是用于提供程序开发环境的应用程序,一般包括编辑器、编译器、链接器和加载器,是集成了代码编写功能、编译功能、链接功能以及加载功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套都可以叫集成开发环境,如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。
由于集成开发环境提供的默认配置、编译参数以及链接参数足以支持编译过程和链接过程,非机载软件的编译过程和链接过程极少被关注。但机载软件作为高安全性和高可靠性软件,其在开发过程中应确保源代码被正确编译和链接且没有引入错误,这要求集成开发环境在进行编译工作和链接工作时应分析编译器和链接器的输出。图1是机载软件集成开发环境的结构示意图,集成开发环境包括编辑器10、编译器11、链接器12以及加载器13。其中,编辑器10向编译器11提供源代码和编译指南,编译器11向链接器12提供目标代码,链接器12向加载器13提供可执行代码,加载器13在加载指南的指导下将可执行代码加载到目标机上。
机载软件在集成开发过程中,根据软件等级要求的不同需要开展不同类型的工作,DO-178C规范要求C级及以上等级的机载软件需要满足代码覆盖率要求。进行测试时,代码覆盖率常常被作为衡量测试好坏的指标,甚至用代码覆盖率来考核测试任务完成情况。传统的机载软件代码覆盖率测试是通过手工在代码中插入检查点,工作量大,导致测试效率低。
发明内容
本发明所要解决的是机载软件代码覆盖率测试效率低的问题。
本发明通过下述技术方案实现:
一种满足DO-178C的代码覆盖率生成方法,包括:获得待测源文件的数量;根据待测源文件的数量生成覆盖率内存空间,每个待测源文件对应生成一个覆盖率内存空间;为覆盖率内存空间占据的比特位生成位置索引;在待测源文件的功能函数中插入探针函数,所述探针函数用于对所述位置索引赋值;对待测源文件进行编译和链接以在所述覆盖率内存空间中生成代码覆盖率信息。
通过对待测源文件进行编译和链接,若待测源文件中的功能函数被执行,则插入到功能函数中的探针函数也随之被执行,从而自动为所述位置索引赋值,即自动对待测源文件对应的覆盖率内存空间写入数据,提高了机载软件代码覆盖率测试效率。通过统计覆盖率内存空间中写入数据的情况,即可以获得每个待测源文件的代码覆盖率,从而获得整个工程文件的代码覆盖率。并且,由于本发明是在待测源文件的功能函数中插入探针函数,即基于功能函数进行插桩,根据覆盖率内存空间中写入数据的情况可以列举所有功能函数的代码覆盖率情况,从而指导开发人员完成源代码的改进,指导测试人员完成测试用例的更新。
可选的,所述获得待测源文件的数量包括:导入源文件存储路径;查找所述源文件存储路径下的所有源文件;从所有源文件中选择需要进行代码覆盖率测试的源文件作为待测源文件;统计待测源文件的数量。
可选的,所述根据待测源文件的数量生成覆盖率内存空间包括:根据待测源文件的功能函数包含的代码行数确定覆盖率内存空间需要占据的比特位数量;根据覆盖率内存空间需要占据的比特位数量为待测源文件分配覆盖率内存空间;在待测源文件的主函数中插入初始化函数,所述初始化函数用于生成源文件数组,所述源文件数组中的各个元素与各个覆盖率内存空间一一对应;将所述源文件数组中的各个元素指向与各个元素对应的覆盖率内存空间的地址。通过统计待测源文件的功能函数包含的代码行数,可以确定每个待测源文件需要插入的探针函数的数量,从而确定覆盖率内存空间需要占据的比特位数量,一个探针函数对应覆盖率内存空间的一个比特位,每个比特位存储的数据用于指示其对应的探针函数是否被执行。基于比特位存储,用二进制数据表示代码是否被执行,相对于其他的类型存储,可以极大地节约存储空间。
可选的,所述在待测源文件的功能函数中插入探针函数包括:在功能函数的第一句代码前、每两句代码之间以及最后一句代码之后插入探针函数。
可选的,所述覆盖率内存空间占据的比特位初始值为二进制数据0,所述探针函数用于对所述位置索引赋值为二进制数据1。
可选的,所述覆盖率内存空间占据的比特位初始值为二进制数据1,所述探针函数用于对所述位置索引赋值为二进制数据0。
可选的,所述满足DO-178C的代码覆盖率生成方法还包括:将所述代码覆盖率信息写入空白文件以生成代码覆盖率文件。通过将所述代码覆盖率信息写入空白文件,便于用户直观地获取所述覆盖率内存空间存储的数据。
可选的,所述根据待测源文件的数量生成覆盖率内存空间还包括为待测源文件生成时间戳,所述代码覆盖率生成方法还包括将待测源文件的时间戳写入所述空白文件。所述时间戳用于指示插入探针函数时的待测源文件版本,防止用户修改代码重新插入探针函数。若写入到空白文件中的时间戳和为待测源文件生成的时间戳相同,则代表该版本的待测源文件在测试过程中没有被修改,所述代码覆盖率信息真实可信;若写入到空白文件中的时间戳和为待测源文件生成的时间戳不同,则代表该版本的待测源文件在测试过程中可能被修改过,所述代码覆盖率信息可能无效。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明提供的满足DO-178C的代码覆盖率生成方法,在探针函数被执行后,通过所述位置索引自动给所述覆盖率内存空间的比特位赋值,从而标识功能函数中的代码执行情况,提高机载软件代码覆盖率测试效率。通过统计覆盖率内存空间中写入数据的情况,即可以获得每个待测源文件的代码覆盖率,从而获得整个工程文件的代码覆盖率。并且,由于本发明是在待测源文件的功能函数中插入探针函数,即基于功能函数进行插桩,根据覆盖率内存空间中写入数据的情况可以列举所有功能函数的代码覆盖率情况,从而指导开发人员完成源代码的改进,指导测试人员完成测试用例的更新。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1是机载软件集成开发环境的结构示意图;
图2是本发明实施方式的满足DO-178C的代码覆盖率生成方法的流程示意图;
图3是本发明实施例的获得待测源文件的数量的流程示意图;
图4是本发明实施例的根据待测源文件的数量生成覆盖率内存空间的流程示意图。
具体实施方式
图2是本发明实施方式的满足DO-178C的代码覆盖率生成方法的流程示意图,所述满足DO-178C的代码覆盖率生成方法包括:
步骤S21,获得待测源文件的数量;
步骤S22,根据待测源文件的数量生成覆盖率内存空间,每个待测源文件对应生成一个覆盖率内存空间;
步骤S23,为覆盖率内存空间占据的比特位生成位置索引;
步骤S24,在待测源文件的功能函数中插入探针函数,所述探针函数用于对所述位置索引赋值;
步骤S25,对待测源文件进行编译和链接以在所述覆盖率内存空间中生成代码覆盖率信息。
通过对待测源文件进行编译和链接,若待测源文件中的功能函数被执行,则插入到功能函数中的探针函数也随之被执行,从而自动为所述位置索引赋值,即自动对待测源文件对应的覆盖率内存空间写入数据,提高机载软件代码覆盖率测试效率。通过统计覆盖率内存空间中写入数据的情况,即可以获得每个待测源文件的代码覆盖率,从而获得整个工程文件的代码覆盖率。
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
在本实施例中,以包含五个源文件的工程文件且第一个源文件只包含一个test功能函数为例进行说明,test功能函数如下:
int test (int x,int y)
{
int a=x+1;
int b=y+2;
return a*b;
}。
如步骤S21所述,获得待测源文件的数量。图3是本发明实施例的获得待测源文件的数量的流程示意图,所述获得待测源文件的数量包括:
步骤S31,导入源文件存储路径。采用编辑器完成源代码的编辑后,会将源代码以源文件的形式存储在本地磁盘或者其他存储位置。本步骤即直接选择源文件存储路径,比如c:\test。
步骤S32,查找所述源文件存储路径下的所有源文件。具体地,根据文件名后缀(例如.c或者.cpp)在所述源文件存储路径下进行查找。在本实施例中,查找获得五个源文件。
步骤S33,从所有源文件中选择需要进行代码覆盖率测试的源文件作为待测源文件。在本实施例中,以对所有源文件进行代码覆盖率测试为例进行说明,则将查找获得的五个源文件确定为待测源文件。
步骤S34,统计待测源文件的数量。具体地,确定待测源文件的数量为五。通过统计每个待测源文件中的功能函数数量和每个功能函数中的代码行数,可以汇总得到整个工程文件的代码行数。
如步骤S22所述,根据待测源文件的数量生成覆盖率内存空间,每个待测源文件对应生成一个覆盖率内存空间。图4是本发明实施例的根据待测源文件的数量生成覆盖率内存空间的流程示意图,所述根据待测源文件的数量生成覆盖率内存空间包括:
步骤S41,根据待测源文件的功能函数包含的代码行数确定覆盖率内存空间需要占据的比特位数量。具体地,覆盖率内存空间占据的比特位数量与将要插入待测源文件中的探针函数数量相等,而插入待测源文件中的探针函数数量根据待测源文件中功能函数包含的代码行数确定。本实施例中以第一个待测源文件为例,第一个待测源文件仅包括一个test功能函数,test功能函数包含三行代码。在进行代码覆盖率测试时,以在test功能函数的第一句代码前、每两句代码之间以及最后一句代码之后插入探针函数的方式为例,需要在test功能函数中插入四个探针函数,因而第一个待测源文件对应的覆盖率内存空间需要占据四个比特位。
步骤S42,根据覆盖率内存空间需要占据的比特位数量为待测源文件分配覆盖率内存空间。在本实施例中,为第一个待测源文件分配占据四个比特位的覆盖率内存空间。为方便描述,将为第一个待测源文件分配的覆盖率内存空间定义为第一个覆盖率内存空间。
步骤S43,在待测源文件的主函数中插入初始化函数,所述初始化函数用于生成源文件数组,所述源文件数组中的各个元素与各个覆盖率内存空间一一对应。在本实施例中生成一个初始化函数coverage_initialize(),并将该初始化函数放入待测源文件的主函数(例如main()函数等,在程序开始时运行)中,所述初始化函数生成包含五个元素的源文件数组static int code_coverage_data[5] ={0},每个元素对应一个覆盖率内存空间。
步骤S44,将所述源文件数组中的各个元素指向与各个元素对应的覆盖率内存空间的地址。例如,将所述源文件数组static int code_coverage_data[5]中的第一个元素指向第一个覆盖率内存空间。
如步骤S23所述,为覆盖率内存空间占据的比特位生成位置索引。生成所述位置索引后,所述位置索引的值即为所述位置索引对应的覆盖率内存空间占据的比特位的值。在本实施例中,所述位置索引设置为test_coverage_index。
如步骤S24所述,在待测源文件的功能函数中插入探针函数,所述探针函数用于对所述位置索引赋值。进一步,在待测源文件的功能函数中插入探针函数包括在功能函数的第一句代码前、每两句代码之间以及最后一句代码之后插入探针函数。所述探针函数的作用是对所述位置索引赋值,用于指示当前的探针函数是否被执行,从而设置对应位置的覆盖率内存空间值。
以第一个待测源文件为例,插入探针函数后变为如下格式:
extern int test_coverage_index;
int test(int x,int y)
{
test_coverage_instrument_(1);
int a=x+1;
test_coverage_instrument_(2);
int b=y +2;
test_coverage_instrument_(3);
return a*b;
test_coverage_instrument_(4);
}
其中,test_coverage_instrument_()为探针函数,里面的数字为赋予探针函数的值,数字从1开始,并依次增加。上述test功能函数中添加了四个探针函数,则系统为第一个覆盖率内存空间分配四比特存储空间,并对第一个覆盖率内存空间中的每个比特都进行初始化。初始化可以将每个比特位设置为二级制数据0,也可以将每个比特位设置为二级制数据1。
如步骤S25所述,对待测源文件进行编译和链接以在所述覆盖率内存空间中生成代码覆盖率信息。用户将插入探针函数后的源文件进行编译和链接,生成可执行文件程序,程序在执行的过程中将在覆盖率内存空间记录待测源文件的覆盖率信息。以覆盖率内存空间占据的比特位初始值为二进制数据0、所述探针函数用于对所述位置索引赋值为二进制数据1为例,若执行到第一个待测源文件的test功能函数,执行第一个探针函数test_coverage_instrument_(1)时,该探针函数将第一个覆盖率内存空间中的第一个比特位设为二进制数据1;当程序执行到test_coverage_instrument_(2)时,将第一个覆盖率内存空间中的第二个比特位设为二进制数据1。当然,若所述覆盖率内存空间占据的比特位初始值为二进制数据1,则所述探针函数用于对所述位置索引赋值为二进制数据0。
经过编译和链接后,通过所述源文件数组读取覆盖率内存空间可以获得待测源文件的代码覆盖率。统计每个待测源文件的代码覆盖率,可以汇总获得整个工程文件的代码覆盖率。为了方便用户直观地查看源文件的代码覆盖率,本实施例的代码覆盖率生成方法还可以包括:将所述代码覆盖率信息写入空白文件以生成代码覆盖率文件。具体地,用户可以通过控制命令接口获取代码覆盖率信息。例如可以设置get_coverage_data之类的接口命令,通过该命令可以将覆盖率内存空间中存储的代码覆盖率信息依次写入到一个空白文件中生成代码覆盖率文件,该代码覆盖率文件可以包含文件标识、文件的位置索引以及对应的覆盖状态。
仍以上述test功能函数为例,当用户选择导出代码覆盖率信息时,调用get_coverage_data命令,该命令将第一个覆盖率内存空间中的值写入到空白文件中。文件的格式如下:
file_index_1
1 0
2 1
3 1
4 0
file_index_1代表第一个待测源文件,第一列代表探针函数,第二列代表该探针函数对应的代码是否被执行。其中,二进制数据1代表被执行,二进制数据0代表未执行。以file_index_1为例,待测源文件中有四个探针函数,其中第一个探针函数和第四个探针函数未被执行,因而第一个待测源文件file_index_1的代码覆盖率为50%。
进一步,为了防止用户修改源代码重新插入探针函数,所述根据待测源文件的数量生成覆盖率内存空间还可以包括为待测源文件生成时间戳,所述时间戳用于指示插入探针函数时的待测源文件版本。在将所述代码覆盖率信息写入空白文件中时,同时将待测源文件的时间戳写入所述空白文件。若写入到空白文件中的时间戳和为待测源文件生成的时间戳相同,则代表该版本的待测源文件在测试过程中没有被修改,所述代码覆盖率信息真实可信;若写入到空白文件中的时间戳和为待测源文件生成的时间戳不同,则代表该版本的待测源文件在测试过程中可能被修改过,所述代码覆盖率信息可能无效。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种满足DO-178C的代码覆盖率生成方法,其特征在于,包括:
获得待测源文件的数量;
根据待测源文件的数量生成覆盖率内存空间,每个待测源文件对应生成一个覆盖率内存空间;
为覆盖率内存空间占据的比特位生成位置索引;
在待测源文件的功能函数中插入探针函数,所述探针函数用于对所述位置索引赋值;
对待测源文件进行编译和链接以在所述覆盖率内存空间中生成代码覆盖率信息;
所述根据待测源文件的数量生成覆盖率内存空间包括:
根据待测源文件的功能函数包含的代码行数确定覆盖率内存空间需要占据的比特位数量;
根据覆盖率内存空间需要占据的比特位数量为待测源文件分配覆盖率内存空间;
在待测源文件的主函数中插入初始化函数,所述初始化函数用于生成源文件数组,所述源文件数组中的各个元素与各个覆盖率内存空间一一对应;
将所述源文件数组中的各个元素指向与各个元素对应的覆盖率内存空间的地址。
2.根据权利要求1所述的满足DO-178C的代码覆盖率生成方法,其特征在于,所述获得待测源文件的数量包括:
导入源文件存储路径;
查找所述源文件存储路径下的所有源文件;
从所有源文件中选择需要进行代码覆盖率测试的源文件作为待测源文件;
统计待测源文件的数量。
3.根据权利要求1所述的满足DO-178C的代码覆盖率生成方法,其特征在于,所述在待测源文件的功能函数中插入探针函数包括:
在功能函数的第一句代码前、每两句代码之间以及最后一句代码之后插入探针函数。
4.根据权利要求1所述的满足DO-178C的代码覆盖率生成方法,其特征在于,所述覆盖率内存空间占据的比特位初始值为二进制数据0,所述探针函数用于对所述位置索引赋值为二进制数据1。
5.根据权利要求1所述的满足DO-178C的代码覆盖率生成方法,其特征在于,所述覆盖率内存空间占据的比特位初始值为二进制数据1,所述探针函数用于对所述位置索引赋值为二进制数据0。
6.根据权利要求1所述的满足DO-178C的代码覆盖率生成方法,其特征在于,还包括:
将所述代码覆盖率信息写入空白文件以生成代码覆盖率文件。
7.根据权利要求6所述的满足DO-178C的代码覆盖率生成方法,其特征在于,所述根据待测源文件的数量生成覆盖率内存空间还包括为待测源文件生成时间戳,所述代码覆盖率生成方法还包括将待测源文件的时间戳写入所述空白文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610051717.8A CN105718373B (zh) | 2016-01-27 | 2016-01-27 | 满足do-178c的代码覆盖率生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610051717.8A CN105718373B (zh) | 2016-01-27 | 2016-01-27 | 满足do-178c的代码覆盖率生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718373A CN105718373A (zh) | 2016-06-29 |
CN105718373B true CN105718373B (zh) | 2018-05-11 |
Family
ID=56154875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610051717.8A Active CN105718373B (zh) | 2016-01-27 | 2016-01-27 | 满足do-178c的代码覆盖率生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718373B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155909A (zh) * | 2016-07-26 | 2016-11-23 | 网易(杭州)网络有限公司 | 代码覆盖率测试结果的处理方法及装置 |
CN107329888B (zh) * | 2017-05-31 | 2019-10-18 | 深圳前海微众银行股份有限公司 | 智能合约操作码覆盖率计算方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246602A (zh) * | 2012-02-14 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 代码覆盖率确定方法及系统、代码覆盖检测方法及系统 |
CN103365771A (zh) * | 2012-04-10 | 2013-10-23 | 阿里巴巴集团控股有限公司 | 一种代码覆盖率的获得方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8356289B2 (en) * | 2008-03-26 | 2013-01-15 | Avaya Inc. | Efficient encoding of instrumented data in real-time concurrent systems |
-
2016
- 2016-01-27 CN CN201610051717.8A patent/CN105718373B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246602A (zh) * | 2012-02-14 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 代码覆盖率确定方法及系统、代码覆盖检测方法及系统 |
CN103365771A (zh) * | 2012-04-10 | 2013-10-23 | 阿里巴巴集团控股有限公司 | 一种代码覆盖率的获得方法和设备 |
Non-Patent Citations (1)
Title |
---|
基于模拟器的嵌入式软件动态测试技术;许福等;《计算机工程》;20080228;第34卷(第4期);第98-100页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105718373A (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xie et al. | A framework and tool supports for generating test inputs of AspectJ programs | |
Harman et al. | A theoretical & empirical analysis of evolutionary testing and hill climbing for structural test data generation | |
Prasanna et al. | A survey on automatic test case generation | |
CN101739339B (zh) | 一种基于程序动态依赖关系的软件故障定位方法 | |
CN104932973B (zh) | 一种版本兼容测试方法和装置 | |
CN102799529B (zh) | 一种动态的二进制代码测试用例生成方法 | |
CN101853200B (zh) | 一种高效动态软件漏洞挖掘方法 | |
CN103678110A (zh) | 提供修改相关信息的方法和装置 | |
CN106294150A (zh) | 一种测试加载方法及装置 | |
CN104156311B (zh) | 一种基于cpu模拟器的嵌入式c语言目标码级单元测试方法 | |
CN114546868A (zh) | 代码覆盖率测试方法、装置和电子设备 | |
Kähkönen et al. | LCT: An open source concolic testing tool for Java programs | |
CN103744782A (zh) | 程序执行序列的获取方法及装置 | |
CN105808369A (zh) | 一种基于符号执行的内存泄漏检测方法 | |
CN106294148A (zh) | 基于扩展符号变迁系统的c语言程序软件验证方法及装置 | |
CN104077232A (zh) | 一种基于用例与源码双向追溯的测试装置及方法 | |
Das et al. | Designing and modeling smart environments | |
Zhang et al. | Intelligen: Automatic driver synthesis for fuzz testing | |
CN105718373B (zh) | 满足do-178c的代码覆盖率生成方法 | |
Cheon | Automated random testing to detect specification-code inconsistencies | |
McMinn | IGUANA: Input generation using automated novel algorithms. A plug and play research tool | |
CN106557412A (zh) | 一种模糊测试的方法及装置 | |
CN106294053A (zh) | 一种内存性能测试方法及装置 | |
CN114282227B (zh) | 一种Fabric区块链系统智能合约的安全分析检测方法 | |
CN102662807A (zh) | 一种Java卡栈性能测试应用程序及其框架的制作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |