CN114661586A - 一种嵌入式计算机软件测试方法 - Google Patents
一种嵌入式计算机软件测试方法 Download PDFInfo
- Publication number
- CN114661586A CN114661586A CN202210216062.0A CN202210216062A CN114661586A CN 114661586 A CN114661586 A CN 114661586A CN 202210216062 A CN202210216062 A CN 202210216062A CN 114661586 A CN114661586 A CN 114661586A
- Authority
- CN
- China
- Prior art keywords
- software
- test
- embedded computer
- tool
- testing
- 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
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
-
- 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/3688—Test management for test execution, e.g. scheduling of test suites
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
本发明提供了一种嵌入式计算机软件测试方法,包括如下步骤:S1:对目标嵌入式计算机代码进行修改;S2:捕获目标嵌入式计算机应用软件运行过程中的实时数据,将其存储在测试分析用PC机中;S3:根据S2获取的实时数据,在测试分析用PC机中进行源码覆盖率统计分析测试、目标码结构覆盖统计分析测试以及软件缺陷定位测试。该方法通过增加通用化测试接口及可配置测试模块,在原产品软件中增加插桩及驱动,使得无需改变嵌入式计算机产品功能性能或原系统结构及软件架构,即可为源码覆盖率统计分析、目标码结构覆盖、分析软件缺陷定位工具提供三个维度的输入信息,实现多维度、高通用性、高测试覆盖率的软硬件分析测试。
Description
技术领域
本发明属于计算机测试领域,具体涉及一种嵌入式计算机软件测试方法。
背景技术
软件测试是保证嵌入式计算机的软件产品质量的重要手段,也是保证系统质量和可靠性的重要活动。
目前,对嵌入式计算机产品软件进行测试的方式最主要的为静态测试方法和数字仿真环境下嵌入式软件测试。静态测试方法主要通过检测程序的接口、结构、文法来检验软件的可行性,判断代码是否符合标准,代码结构是否合理,代码逻辑是否恰当,但是,静态检测方法无法对代码实际运动时的情况进行分析。数字仿真环境下嵌入式软件测试如奥吉通公司开发的CRESTS软件,能够实时虚拟CPU环境,对可运行程序进行代码检查、模拟运行、生成测试报告,但其仅能完成通用化测试,对于专用的嵌入式计算机,其无法对专门的硬件设计进行测试,测试维度有限。
此外,嵌入式计算机产品软件中通常使用BIT(内置自检测)来检测硬件的状态,包括上电BIT、周期BIT、启动BIT、维护BIT等,该方式可编写的测试用例有限,测试维度单一,所能实现的软件测试覆盖率有限。而且,在部分对嵌入软件有高安全性和高可靠性严格要求的领域,对于A级软件系统,必须进行目标码验证。比如航天飞行器、电网控制、高速列车以及骨干网通信等。
因此,需要提供一种能够为源码覆盖率统计分析、目标码结构覆盖分析工具提供更多维度的输入信息,软件测试的覆盖率高的测试方法。
发明内容
为了解决上述问题,本发明的目的在于,提供一种嵌入式计算机软件测试方法。
为了达成上述目的,本发明所提供的技术如下,所述方法包括如下步骤:
S1:根据适配源码覆盖率统计分析测试、目标码结构覆盖统计分析测试和软件缺陷定位测试的需要,对目标嵌入式计算机代码进行修改;
S2:捕获目标嵌入式计算机应用软件运行过程中的实时数据,将其存储在测试分析用PC机中;
S3:根据S2获取的实时数据,在测试分析用PC机中进行源码覆盖率统计分析测试、目标码结构覆盖统计分析测试以及软件缺陷定位测试。
本发明所提供的嵌入式计算机软件测试方法,还具有这样的特征,所述S1包括:
S1.1:增加驱动测试软件代码;
S1.2:进行源码覆盖率统计分析测试适配修改;
S1.3:对结果输出模块代码进行修改,添加打印信息;
S1.4:对BIT测试软件代码进行修改,增加串口控制测试界面菜单和选项。
本发明所提供的嵌入式计算机软件测试方法,还具有这样的特征,所述S1.1包括:
S1.1.1:增加离散量采集驱动软件代码至嵌入式计算机平台软件,获取原始离散量采集数据,并进行数据滤波;
S1.1.2:增加模拟量及频率量采集驱动软件代码至嵌入式计算机平台软件,获取原始模拟量及频率量采集数据,并进行数据滤波;
S1.1.3:增加串口通信驱动软件代码;
S1.1.4:增加虚拟SRAM读写接口驱动。
本发明所提供的嵌入式计算机软件测试方法,还具有这样的特征,所述S2包括:
S2.1:通过源码覆盖率统计分析工具捕获嵌入式计算机平台测试软件启动到结束运行期间CPU的地址总线、数据总线的原始数据;
S2.2:通过目标码结构覆盖统计分析工具捕获嵌入式计算机平台测试软件运行过程中目标码运行的动态信息;
S2.3:通过软件缺陷定位测试工具捕获嵌入式计算机平台测试软件启动到结束运行期间CPU采集前外部激励的原始数据。
本发明所提供的嵌入式计算机软件测试方法,还具有这样的特征,所述S2.1包括:
S2.1.1:对待测源代码进行分区插桩,编译生成插桩后的目标码文件;
S2.1.2:使用源码覆盖率统计分析工具对嵌入式计算机应用软件运行期间CPU的地址总线、数据总线的原始数据进行捕获,并存储到分析用PC中。
本发明所提供的嵌入式计算机软件测试方法,还具有这样的特征,所述S2.2包括:
S2.2.1:下载执行目标码程序,通过RS232串口工具确认监控代理处于就绪状态;
S2.2.2:运行监测测试程序,记录目标码运行的动态信息,存储在物理存储区域中;
S2.2.3:运行串口调试助手,接收并存储嵌入式计算机监控代理打印传输的数据。
本发明所提供的嵌入式计算机软件测试方法,还具有这样的特征,所述S2.3包括:
S2.3.1:启动嵌入式计算机;
S2.3.2:通过外部激励控制嵌入式计算机,按照测试用例逐一执行应用功能;
S2.3.3:通过软件缺陷定位测试工具,采集模拟量、频率量、离散量数据,并记录。
本发明所提供的嵌入式计算机软件测试方法,还具有这样的特征,所述S3包括:
S3.1:使用分析测试工具进行源码覆盖率统计分析运算;
S3.2:使用分析测试工具进行目标码结构覆盖率统计分析运算;
S3.3:使用分析测试工具进行软件缺陷定位统计分析运算。
本发明所提供的嵌入式计算机软件测试方法,还具有这样的特征,所述分析测试工具为VerOSource工具。
与现有技术相比,本发明的有益效果:
本发明提供了一种嵌入式计算机软件测试方法,该方法无需改变嵌入式计算机产品功能性能及原系统硬件及软件架构,通过扩展产品测试接口,设计驱动及插桩,为源码覆盖率统计分析、目标码结构覆盖、分析软件缺陷定位工具提供三个维度的输入信息,从而提升软件测试的覆盖率,为整机功能性能、软件任务实时性/可靠性等提供测试支持。本发明具有多维度、高测试覆盖率、高移植性等特点,在测试领域具有广泛的应用场景。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1本发明实施例所提供的测试方法的流程图;
图2本发明实施例所提供的测试方法所用的测试平台所处的测试环境逻辑示意图;
图3本发明实施例所提供的测试的虚拟SRAM结构图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下实施例结合附图对本发明所提供的测试方法作具体阐述。
在本发明实施例的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明创造和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明创造的限制。
此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明创造的描述中,除非另有说明,“多个”的含义是两个或两个以上。
术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明创造中的具体含义。
如图1-3所示,通过如下步骤进行软硬件实时监控及测试,为源码覆盖率统计分析、目标码结构覆盖分析工具提供更多维度的输入信息,提高软件测试的覆盖率。该实施例的具体测试步骤如下:
S1:修改目标嵌入式计算机代码,用于适配源码覆盖率统计分析测试、目标码结构覆盖统计分析测试以及软件缺陷定位测试。
S1.1:增加驱动软件代码。
S1.1.1:增加离散量采集驱动软件代码。目标嵌入式计算机平台软件从指定寄存器中获取原始离散量采集数据,随后对采集到的数据进行滤波处理:若连续三拍数值一致则采用本拍数值作为处理结果,否则采用上一拍的结果作为处理结果;
S1.1.2:增加模拟量及频率量采集驱动软件代码。目标嵌入式计算机平台软件从指定地址获取原始模拟量及频率量采集数据,随后对采集到的数据进行滤波处理:对某段周期内采集到的原始数据值求均值,得到模拟量及频率量处理结果;
S1.1.3:增加串口通信驱动软件代码。目标嵌入式计算机平台软件实现RS232串口数据收发功能。
S1.1.4:增加虚拟SRAM读写接口驱动。
S1.2:修改核心执行单元代码,对源码覆盖率统计分析测试适配修改,在目标嵌入式计算机平台测试软件中进行插桩;
S1.3:修改结果输出模块代码,添加必要的打印信息;
S1.4:修改BIT测试软件代码,增加串口控制测试界面菜单及选项。
S2:使用源码覆盖率统计分析工具、目标码结构覆盖统计分析测试工具以及软件缺陷定位,捕获目标嵌入式计算机应用软件运行过程中的实时数据,将其存储在测试分析用PC机中。
S2.1:使用源码覆盖率统计分析工具,如附图2所示,通过虚拟SRAM访问接口,访问PL中的虚拟SRAM逻辑,从而捕获嵌入式计算机平台测试软件启动到结束运行期间CPU的地址总线、数据总线的原始数据。
S2.1.1:对待测源代码进行分区插桩,编译生成插桩后的目标码文件,每个分区的插桩数不超过100个;
S2.1.2:使用源码覆盖率统计分析工具对嵌入式计算机应用软件启动到结束运行期间CPU的地址总线、数据总线的原始数据进行捕获,并存储到分析用PC中。
S2.2:使用目标码结构覆盖统计分析工具,捕获嵌入式计算机平台测试软件运行过程中目标码运行的动态信息。
S2.2.1:启动嵌入式计算机,下载执行目标码程序,通过RS232串口工具确认监控代理处于就绪状态;
S2.2.2:在嵌入式计算机运行监控测试程序,记录目标码运行的动态信息,存储在目标嵌入式计算机指定的物理存储区域中;
S2.2.3:在PC机端运行串口调试助手,接收并存储嵌入式计算机监控代理打印传输的数据。
S2.3:使用软件缺陷定位测试工具,捕获嵌入式计算机平台测试软件启动到结束运行期间CPU采集前外部激励的原始数据。
S2.3.1:启动嵌入式计算机;
S2.3.2:通过外部激励控制控制嵌入式计算机,按照测试用例逐一执行应用功能;
S2.3.3:通过软件缺陷定位测试工具,在按照测试用例执行应用功能的过程中采集模拟量、频率量、离散量数据,并记录在分析用PC中。
S3:使用分析测试软件,在测试分析用PC机上分别进行源码覆盖率统计分析测试、目标码结构覆盖统计分析测试以及软件缺陷定位测试。
S3.1:使用VerOSource工具进行源码覆盖率统计分析运算。
S3.1.1:使用VerOSource工具在分析用PC创建工程;
S3.1.2:将步骤2-1采集的数据导入工程;
S3.1.3:使用VeroSource判定覆盖和语句覆盖分析工具执行分析运算;
S3.1.4:输出包含目源码覆盖率覆盖分析证明的结果清单。
S3.2:使用VerOCode工具进行目标码结构覆盖统计分析运算。
S3.2.1:使用VerOCode工具在分析用PC创建工程;
S3.2.2:将步骤2-2采集的数据导入工程;
S3.2.3:使用VerOCode分析器执行目标码结构覆盖分析运算;
S3.2.4:输出包含目标码覆盖率覆盖分析证明的结果清单。
S3.3:使用VerOSource工具进行软件缺陷定位统计分析运算
S3.3.1:将步骤2-3采集的数据导入3-1所建立的工程中;
S3.3.2:按照测试用例提纲对两组数据进行对比分析;
S3.3.3:执行分析运算;
S3.3.4:输出测试结果。
上述实施例所提供的技术方案,经过各种系统试验验证和装机验证,系统运行稳定可靠,能够实现多维度的产品状态信息采集。使得可编写的测试用例数增加,在软件缺陷定位工具、源码覆盖率统计分析工具和目标码结构覆盖统计分析工具的配合下,实现了多维度、高通用性的软硬件分析测试。实际工作中,针对该控制器进行了单元、部件、配置项3个级别的测试。使用本发明所述方法前后,所设计的测试用例由3213例增加至4581例,且对于部分覆盖率未达到100%的单元,平均覆盖率增至90%。此外,该发明已在某型发动机接口装置中进行了移植,展现出良好的可移植性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (9)
1.一种嵌入式计算机软件测试方法,其特征在于,所述方法包括如下步骤:
S1:根据适配源码覆盖率统计分析测试、目标码结构覆盖统计分析测试和软件缺陷定位测试的需要,对目标嵌入式计算机代码进行修改;
S2:捕获目标嵌入式计算机应用软件运行过程中的实时数据,将其存储在测试分析用PC机中;
S3:根据S2获取的实时数据,在测试分析用PC机中进行源码覆盖率统计分析测试、目标码结构覆盖统计分析测试以及软件缺陷定位测试。
2.根据权利要求1所述的嵌入式计算机软件测试方法,其特征在于,所述S1包括:
S1.1:增加驱动测试软件代码;
S1.2:进行源码覆盖率统计分析测试适配修改;
S1.3:对结果输出模块代码进行修改,添加打印信息;
S1.4:对BIT测试软件代码进行修改,增加串口控制测试界面菜单和选项。
3.根据权利要求2所述的嵌入式计算机软件测试方法,其特征在于,所述S1.1包括:
S1.1.1:增加离散量采集驱动软件代码至嵌入式计算机平台软件,获取原始离散量采集数据,并进行数据滤波;
S1.1.2:增加模拟量及频率量采集驱动软件代码至嵌入式计算机平台软件,获取原始模拟量及频率量采集数据,并进行数据滤波;
S1.1.3:增加串口通信驱动软件代码;
S1.1.4:增加虚拟SRAM读写接口驱动。
4.根据权利要求1所述的嵌入式计算机软件测试方法,其特征在于,所述S2包括:
S2.1:通过源码覆盖率统计分析工具捕获嵌入式计算机平台测试软件启动到结束运行期间CPU的地址总线、数据总线的原始数据;
S2.2:通过目标码结构覆盖统计分析工具捕获嵌入式计算机平台测试软件运行过程中目标码运行的动态信息;
S2.3:通过软件缺陷定位测试工具捕获嵌入式计算机平台测试软件启动到结束运行期间CPU采集前外部激励的原始数据。
5.根据权利要求4所述的嵌入式计算机软件测试方法,其特征在于,所述S2.1包括:
S2.1.1:对待测源代码进行分区插桩,编译生成插桩后的目标码文件;
S2.1.2:使用源码覆盖率统计分析工具对嵌入式计算机应用软件运行期间CPU的地址总线、数据总线的原始数据进行捕获,并存储到分析用PC中。
6.根据权利要求4所述的嵌入式计算机软件测试方法,其特征在于,所述S2.2包括:
S2.2.1:下载执行目标码程序,通过RS232串口工具确认监控代理处于就绪状态;
S2.2.2:运行监测测试程序,记录目标码运行的动态信息,存储在物理存储区域中;
S2.2.3:运行串口调试助手,接收并存储嵌入式计算机监控代理打印传输的数据。
7.根据权利要求4所述的嵌入式计算机软件测试方法,其特征在于,所述S2.3包括:
S2.3.1:启动嵌入式计算机;
S2.3.2:通过外部激励控制嵌入式计算机,按照测试用例逐一执行应用功能;
S2.3.3:通过软件缺陷定位测试工具,采集模拟量、频率量、离散量数据,并记录。
8.根据权利要求1所述的嵌入式计算机软件测试方法,其特征在于,所述S3包括:
S3.1:使用分析测试工具进行源码覆盖率统计分析运算;
S3.2:使用分析测试工具进行目标码结构覆盖率统计分析运算;
S3.3:使用分析测试工具进行软件缺陷定位统计分析运算。
9.根据权利要求8所述的嵌入式计算机软件测试方法,其特征在于,所述分析测试工具为VerOSource工具。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210216062.0A CN114661586A (zh) | 2022-03-07 | 2022-03-07 | 一种嵌入式计算机软件测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210216062.0A CN114661586A (zh) | 2022-03-07 | 2022-03-07 | 一种嵌入式计算机软件测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114661586A true CN114661586A (zh) | 2022-06-24 |
Family
ID=82027474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210216062.0A Pending CN114661586A (zh) | 2022-03-07 | 2022-03-07 | 一种嵌入式计算机软件测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661586A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116643941A (zh) * | 2023-05-06 | 2023-08-25 | 深圳市赛凌伟业科技有限公司 | 一种嵌入式软件实时运行状态监控方法 |
-
2022
- 2022-03-07 CN CN202210216062.0A patent/CN114661586A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116643941A (zh) * | 2023-05-06 | 2023-08-25 | 深圳市赛凌伟业科技有限公司 | 一种嵌入式软件实时运行状态监控方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10929260B2 (en) | Traffic capture and debugging tools for identifying root causes of device failure during automated testing | |
CN103235756B (zh) | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 | |
CN103049371A (zh) | Android应用程序测试方法和测试装置 | |
CN108763743B (zh) | 验证平台、方法及电子设备 | |
KR101280287B1 (ko) | 임베디드 소프트웨어 검증장치 및 그 운용방법 | |
CN111124789B (zh) | 一种芯片仿真调试系统及调试方法 | |
CN101876935B (zh) | 调试程序监控方法与装置 | |
CN114138667A (zh) | 一种soc芯片驱动程序自动化测试系统及测试方法 | |
CN112286750A (zh) | 一种gpio验证方法、装置、电子设备和介质 | |
CN108628734B (zh) | 一种功能程序调试方法和终端 | |
CN114661586A (zh) | 一种嵌入式计算机软件测试方法 | |
CN111522725A (zh) | Ssd性能自动评估方法、装置、设备及介质 | |
CN109407655B (zh) | 一种调试芯片的方法及装置 | |
CN117421217A (zh) | 一种软件功能自动测试方法、系统、终端及介质 | |
CN113079061A (zh) | 一种物联网性能测试方法及系统 | |
CN110633199A (zh) | 用于支持智能合约的区块链的测试装置、方法及介质 | |
CN116244133A (zh) | 硬盘测试管理方法、系统、终端及存储介质 | |
CN114879647A (zh) | Ecu故障码测试系统、电子控制器及汽车 | |
CN111258838B (zh) | 验证组件生成方法、装置、存储介质及验证平台 | |
CN113986753A (zh) | 接口测试方法、装置、设备及存储介质 | |
CN111290743A (zh) | 一种计算机软件技术开发调试系统 | |
JP5384136B2 (ja) | 障害解析支援システム | |
CN112269740A (zh) | 自动驾驶软件的自动测试方法及装置 | |
CN112765021A (zh) | 一种引导程序的调试检验方法、装置、设备及存储介质 | |
JP3357567B2 (ja) | プログラム評価システム |
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 |