CN112597006B - 一种嵌入式软件集成测试自动化执行***及方法 - Google Patents

一种嵌入式软件集成测试自动化执行***及方法 Download PDF

Info

Publication number
CN112597006B
CN112597006B CN202011464070.4A CN202011464070A CN112597006B CN 112597006 B CN112597006 B CN 112597006B CN 202011464070 A CN202011464070 A CN 202011464070A CN 112597006 B CN112597006 B CN 112597006B
Authority
CN
China
Prior art keywords
test
module
script
execution
integrated
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
CN202011464070.4A
Other languages
English (en)
Other versions
CN112597006A (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.)
AECC Aero Engine Control System Institute
Original Assignee
AECC Aero Engine Control System Institute
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 AECC Aero Engine Control System Institute filed Critical AECC Aero Engine Control System Institute
Priority to CN202011464070.4A priority Critical patent/CN112597006B/zh
Publication of CN112597006A publication Critical patent/CN112597006A/zh
Application granted granted Critical
Publication of CN112597006B publication Critical patent/CN112597006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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/3684Test management for test design, e.g. generating new test cases

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

本发明公开了一种嵌入式软件集成测试自动化执行***,包括开发与调试环境:用于接收测试输入、开发测试脚本、编译被测代码与测试脚本、分发调度测试控制指令、执行软件测试、分析评估测试结果以及输出测试结果;仿真执行环境:获取开发与调试环境输出的控制指令,进行软件测试并返回执行数据;目标机执行环境:用于模拟被测代码的运行情况,在真实的目标机上运行被测代码被编译后的二进制文件。本发明将嵌入式软件集成测试的调试环境、仿真环境和目标机环境进行优化集成,降低测试复杂度,提升测试效率并满足对被测代码的正确性与安全性要求,实现在嵌入式软件开发的各个阶段对软件进行高质量测试与分析。

Description

一种嵌入式软件集成测试自动化执行***及方法
技术领域
本发明涉及嵌入式软件集成测试,尤其涉及一种嵌入式软件集成测试自动化执行***。
背景技术
随着嵌入式***在各领域广泛应用,嵌入式软件的测试技术已成为当今计算机领域的一个发展热点。在一些对安全性要求较高,同时对交付时间要求严格的领域,例如航空发动机全权限电子控制***软件领域,任何微小的软件缺陷都可能酿成不可挽回的惨剧;同时航空发动机控制软件日益复杂、交付时间逐渐缩短、运行的目标机类型不断增加,传统的软件测试方法与工具已经无法满足测试需求;另外,软件测试人员需要学习庞杂的软件调试、芯片指令集等测试知识,增加测试成本,延长测试周期。
发明内容
发明目的:本发明目的是提供一种嵌入式软件集成测试自动化执行***,实现调试环境、仿真环境、目标机环境的自动化执行,满足嵌入式软件集成测试对执行速度快、结果可信度高以及可维护性好的要求,缩短测试周期。
技术方案:本发明公开了一种嵌入式软件集成测试自动化执行***,包括:
开发与调试环境:用于接收测试输入、开发测试脚本、编译被测代码与测试脚本、分发调度测试控制指令、执行软件测试、分析评估测试结果以及输出测试结果;
仿真执行环境:获取开发与调试环境输出的控制指令,进行软件测试并返回执行数据;
目标机执行环境:用于模拟被测代码的运行情况,在真实的目标机上运行被测代码被编译后的二进制文件。
开发与调试环境包括:脚本开发与执行环境:包括用于读取测试输入与输出测试结果的外部数据读写模块;用于开发测试脚本的测试脚本开发模块;用于对被测代码和测试脚本进行编译的脚本与被测代码编译模块;用于在执行测试时,对控制指令进行管理调度的脚本执行管理模块;用于分析生成测试结果的测试分析评估模块;
集成测试调试模块:获取脚本开发与执行环境输出的控制指令,对被测代码编译后的静态链接库执行测试,并返回执行数据。
测试脚本开发模块提供脚本开发向导与纯文本脚本编辑器两种方式开发测试脚本,两种方式间能够随时切换、保存和加载;脚本开发向导对被测代码的控制流分析、并将控制流分析信息展示给开发人员。
集成测试调试模块能够设置断点、单步运行调试方式观察测试脚本运行情况。
仿真执行环境包括:GDB调试模块:根据测试脚本的控制指令,对程序中全局变量、全局静态变量和局部静态变量进行获取、调用和注入操作;对文件域和全局域的函数进行触发调用;提供程序单步运行、停止等调试操作;当程序中断时,提供查看程序内部运行情况的接口;
集成测试仿真执行模块:将测试脚本与被测代码分离,分别独立运行,通过加载动态链接库的方式执行测试,并将执行数据返回至GDB调试模块;或基于GDB指令进行单步运行调试。
目标机执行环境包括集成测试目标机执行模块,集成测试目标机执行模块模拟被测代码的运行情况,在真实的目标机上运行被测代码被编译后的二进制文件,并将执行数据返回至GDB调试模块;或基于GDB指令进行单步运行调试。
利用上述***的嵌入式软件集成测试自动化执行方法,包括以下步骤:
步骤1:外部数据读写模块获取测试输入指令,读取用例与驱动数据、执行记录模板;脚本与被测代码编译模块读取被测代码;
步骤2:脚本与被测代码编译模块对被测代码进行控制流分析;
步骤3:测试脚本开发模块利用纯文本脚本编辑或脚本开发向导的方式开发测试脚本;其中,脚本开发向导开发测试脚本的步骤包括:
步骤4:脚本与被测代码编译模块对被测代码和步骤3所得到的测试脚本进行编译,其中,被测代码和测试脚本编译的步骤包括:
步骤5:脚本执行管理模块在运行时对控制指令进行管理调度,发送至集成测试调试模块或GDB调试模块;
步骤6:集成测试调试模块根据控制指令直接进行软件测试,并将返回执行数据;
步骤7:GDB调试模块将控制指令转换为GDB指令,并发送至集成测试仿真执行模块或集成测试目标机执行模块;GDB调试模块接收集成测试仿真执行模块或集成测试目标机执行模块的执行数据,并返回至脚本开发与执行环境;
步骤8:集成测试仿真执行模块或集成测试目标机执行模块根据GDB指令进行软件测试,并返回执行数据;
步骤9:测试分析评估模块收集分析步骤6、步骤7和步骤8所得到的执行数据,生成测试结果数据;其中,分析执行数据的步骤包括:
步骤10:外部数据读写模块根据步骤9所得到的测试结果数据输出测试结果。
其中,步骤3中脚本开发向导开发测试脚本的步骤包括:
步骤3.1:打开脚本开发向导,选择需要执行的测试用例;
步骤3.2:链接测试输入与被测代码参数名称、定义数据注入接口、定义测试输出数据并定义误差计算方式及误差判断阈值;
步骤3.3:定义数据注入、函数调用和数据获取的时序;
步骤3.4:编辑用例组初始化、特殊指令和注销的操作;
步骤3.5:生成测试脚本。
步骤4中被测代码和测试脚本进行编译的步骤包括:
步骤4.1:将被测代码编译为静态链接库格式,并将其放置在集成测试调试模块;
步骤4.2:将被测代码编译成的静态链接库与测试脚本一起编译为可执行文件格式;
步骤4.3:将被测代码编译为动态链接库格式,并将其适配于集成测试仿真执行模块;
步骤4.4:将被测代码编译为二进制文件格式,并将其烧写至集成测试目标机执行模块。
步骤9中分析执行数据的步骤包括:
步骤9.1:根据误差计算方法与误差判断阈值,分析被测代码功能正确性;
步骤9.2:统计代码测试结构覆盖率;
步骤9.3:分析变量数据注入和函数调用顺序的正确性;
步骤9.4:分析嵌入式软件测试完整性。
有益效果:与现有技术相比,本发明具有如下显著的优点:
(1)将嵌入式软件集成测试的调试环境、仿真环境和目标机环境进行优化集成,帮助测试人员根据执行效率、可信度的不同要求选择适用的测试环境,满足嵌入式软件集成测试对执行速度快、结果可信度高以及可维护性好的要求。
(2)***提供的脚本开发向导,降低测试脚本开发人员对开发脚本计算机语言的学习成本,极大提高测试脚本的开发效率;通过对被测代码的控制流分析、并将控制流分析信息提供给开发人员,从而显著提高测试脚本的正确性、规范性与可维护性。
(3)可以对测试结果进行测试正确性、结构覆盖率、变量数据注入和函数调用顺序的正确性和嵌入式软件测试完整性的分析,一方面有效减少嵌入式软件的测试盲点,改善测试设计的方法与质量;另一方面,通过对测试正确性和完整性的分析,可以满足对被测代码的正确性与安全性要求。
附图说明
图1为本发明的***框图;
图2为本发明的测试脚本开发向导示意图;
图3为本发明的脚本与被测代码编译模块示意图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
如图1所示为本发明的***框图,包括开发与调试环境、仿真执行环境、目标机执行环境。其中,开发与调试环境用以接收测试输入、开发测试脚本、编译被测代码与测试脚本、分发调度测试控制指令、运行集成测试调试模块、分析评估测试结果和输出测试结果;仿真执行环境用以转换测试控制指令和运行集成测试仿真执行模块;目标机执行环境用以运行集成测试目标机执行模块。
1.开发与调试环境
开发与调试环境主要由脚本开发与执行环境和集成测试调试模块组成,详细说明如下:
(1).脚本开发与执行环境
脚本开发与执行环境由外部数据读写模块、测试脚本开发模块、脚本与被测代码编译模块、脚本执行管理模块和测试分析评估模块组成,各个模块的功能详细说明如下:
①.外部数据读写模块
外部数据读写模块用于读取测试输入与输出测试结果。
外部数据读写模块读取的测试输入主要为用例与驱动数据的读写。外部数据读写模块对测试脚本语言读取测试用例文件的标准库进行了进一步的封装,例如,在C++语言下,将微软提供的Excel程序的COM组件进行了封装,测试人员在使用时,仅需调用形如OpenExcelFile(ExcelPath)、LoadEcxelSheet(SheetName)、SetParaData(ParaA,"ParaA")等高层封装,即可完成打开Excel文件测试用例、加载Excel特定表格,注入变量值等操作;当需要读取测试用例时,外部数据读写模块根据测试脚本中的定义,读取指定路径下已按照事先约定的规范编写完毕的测试用例;读取驱动数据时,外部数据读写模块识别测试用例中的变量值、测试需求ID、用例说明、运行周期、数据注入指令和被测代码期望输出等数据。
外部数据读写模块输出测试结果时,首先读取执行记录模板,并根据模板与测试分析评估模块的分析结果,输出执行记录,执行简报,结构覆盖率信息和测试完整性报告。
②.测试脚本开发模块
测试脚本开发模块提供脚本开发向导与纯文本脚本编辑器两种方式用于开发测试脚本。测试人员可以在两种方式间随时进行切换、保存、加载的操作。
脚本开发向导示意图,如图2所示。脚本开发向导可以选择需要执行的测试用例,例如,要执行位于“C:\SomeDir\”文件夹下“TestFile.xlsm”文件中的“TestCase”测试用例,则在文件选择栏中选定该文件的对应表格,随后外部数据读写模块对相关数据进行读取。
脚本开发向导可以链接测试输入与被测代码参数名称、定义数据注入接口和定义测试输出数据,例如,可以将测试用例中驱动数据名称为Para1的输入参数链接至被测代码中名称为ISM_Para1的变量上。
脚本开发向导可以定义误差计算方式及误差判断阈值。
脚本开发向导可以定义数据注入、函数调用和数据获取的时序,脚本开发向导基于被测代码控制流分析的方式,提供自动提示、感知、补全的功能,具体体现在变量名联想和显示调用函数功能上。例如,被测代码中名称为ISM_Para1的变量被链接后,被测代码中所用调用ISM_Para1的函数会被显示出来;测试人员选择需要触发调用的函数后,可以进一步对变量注入、函数调用和获取的时序进行调整。
脚本开发向导可以编辑用例组初始化、特殊指令和注销的操作,例如,在用例组初始化时,可以通过SetParaData(Flash_1,”Flash_1”)将测试用例中的Flash_1的值注入到被测代码Flash_1变量中,从而完成初始化的操作。
纯文本脚本编辑器可用于新建测试脚本,也可用于进一步编辑脚本开发向导创建的测试脚本。测试人员还可以自行选择其他脚本编辑器,例如Microsoft Visual Studio等。
③.脚本与被测代码编译模块
脚本与被测代码编译模块对被测代码和测试脚本进行编译,如图3所示。被测代码经过脚本与被测代码编译模块编译后,形成静态链接库(*.lib)格式文件、动态链接库(*.dll)格式文件和二进制(*.bin)格式文件,并被分别集成到调试模块、仿真执行模块和目标及执行模块下;被测代码静态链接库与测试脚本一起编译为可在桌面运行的可执行(*.exe)格式文件,用以发送控制指令。
④.脚本执行管理模块
脚本执行管理模块在执行测试时,对测试脚本定义的指令进行管理调度。在集成测试调试模块,由于测试脚本与被测代码静态链接库已一起编译为一个可执行文件,故调试模块直接接收控制指令;脚本执行管理模块通过网口通讯的模式向GDB调试模块发送控制指令;在仿真执行环境,GDB调试模块加载被测代码的动态链接库,并直接通过GDB指令执行测试;在目标机执行环境,GDB调试模块通过串口通讯发送GDB指令;脚本执行管理模块还可以读取执行管理配置文件,对调试应用是否可见、是否打印执行记录和用例执行范围等信息进行读取。
⑤.测试分析评估模块
测试分析评估模块用于分析生成测试结果。测试分析评估模块根据各测试模块的执行数据,利用测试脚本中定义的误差计算方式计算误差,并与误差判断阈值进行比较,结合执行用例范围和执行时间,生成执行记录、测试数据和执行简报;测试分析评估模块还可以统计结构覆盖率信息,分析生成测试完整性报告信息。
(2).集成测试调试模块
集成测试调试模块基于被测代码编译后的静态链接库执行测试,通过将被测代码编译后的静态链接库与测试脚本被编译成一个可执行文件的方式,可以在调试环境快速执行测试,能够在最短的时间内发现被测代码功能性缺陷。
被测代码经过脚本与被测代码编译模块编译后,形成静态链接库(*.lib)格式文件。该静态链接库文件随后被放置在集成测试调试模块目录下,如图3所示。调试模式下执行测试前,脚本与被测代码编译模块将被测代码静态链接库与测试脚本一起编译为可在桌面运行的可执行(*.exe)格式文件;执行测试时,集成测试调试模块直接按照测试脚本的控制指令逐步执行测试,并按照控制指令生成执行数据;随后集成测试调试模块将执行数据暂存至计算机内存中,等待测试分析评估模块对执行数据进行分析。
2.仿真执行环境
仿真执行环境由GDB调试模块和集成测试仿真执行模块组成,详细说明如下:
(1).GDB调试模块
GDB调试模块基于GNU标准调试器(GNU Debugger)实现根据测试脚本和测试人员的指令完成相关功能的操作。GDB调试模块主要完成以下功能:
①.根据测试脚本的控制指令,对程序中全局变量、全局静态变量和局部静态变量进行获取、调用和注入操作;对文件域和全局域的函数进行触发调用;例如,测试脚本中,设置ParaA的值为100,即调用GDB_SetParaData("ParaA",100.0),GDB调试模块会将该指令转化为GDB指令(gdb)set ParaA 100.0;测试脚本中,调用函数FuncB,即GDB_CallFunction("FuncB()"),GDB调试模块会将该指令转化为GDB指令(gdb)call FuncB()。
②.根据测试人员的手工指令,对程序进行单步运行、停止等调试操作;例如,测试人员通过图形用户界面上的手工指令进行单步运行,GDB调试模块会将测试人员的指令转化为(gdb)next,(gdb)step等GDB指令。
③.当程序中断时,提供查看程序内部运行情况的接口。例如,在测试运行的某次调试时,测试人员要求监视参数ParaC的值,即调用GDB_GetData("ParaC"),GDB调试模块会将测试人员的指令转化为(gdb)info ParaC。
(2).集成测试仿真执行模块
集成测试仿真执行模块将测试脚本与被测代码分离,分别独立运行,通过加载动态链接库的方式执行测试,从而较为真实的对被测代码进行测试。
被测代码经过脚本与被测代码编译模块编译后,形成动态链接库(*.dll)格式文件。该动态链接库文件随后被放置在集成测试仿真执行模块目录下,如图3所示。在仿真测试运行时,脚本执行管理模块首先通过网口通讯向GDB调试模块发送控制指令;GDB调试模块接收到控制指令后,将其转换为GDB指令,并发送至集成测试仿真执行模块中;集成测试仿真执行模块加载被测代码动态链接库,并依据GDB指令逐步执行,同时按照GDB指令采集生成执行数据,并将执行数据返回至GDB调试模块;随后GDB调试模块将执行数据暂存至计算机内存中,等待测试分析评估模块对执行数据进行分析。
3.目标机执行环境
目标机执行环境运行在嵌入式软件运行的目标机上,由集成测试目标机执行模块组成。集成测试目标机执行模块可以测试被测代码在真实目标机上运行的结果,可以最大程度的验证被测代码的正确性与安全性。
被测代码经过脚本与被测代码编译模块编译后,形成目标机可以运行的二进制(*.bin)格式文件。该二进制文件通过烧写的方式加载至集成测试目标机执行模块中,如图3所示。在目标机测试运行时,脚本执行管理模块首先通过网口通讯向仿真执行环境的GDB调试模块发送控制指令;GDB调试模块接收到控制指令后,将其转换为GDB指令,并通过串口通讯发送至集成测试目标机执行模块中;目标机中运行的二进制文件依据GDB指令逐步执行,并按照GDB指令采集生成执行数据,并将执行数据通过串口返回至GDB调试模块;随后GDB调试模块将执行数据暂存至计算机内存中,等待测试分析评估模块对执行数据进行分析。
其中,集成测试调试模块、集成测试仿真执行模块和集成测试目标机执行模块可以对全局变量、全局静态变量和局部静态变量进行获取、调用和注入操作;可以对文件域和全局域的函数进行脚本指令的触发调用。
利用上述***的嵌入式软件集成测试自动化执行方法,包括以下步骤:
步骤1:外部数据读写模块获取测试输入指令,读取用例与驱动数据、执行记录模板;脚本与被测代码编译模块读取被测代码
步骤2:脚本与被测代码编译模块对被测代码进行控制流分析;
步骤3:测试脚本开发模块利用纯文本脚本编辑或脚本开发向导的方式开发测试脚本;其中,脚本开发向导开发测试脚本的步骤包括:
步骤3.1:打开脚本开发向导,选择需要执行的测试用例;
步骤3.2:链接测试输入与被测代码参数名称、定义数据注入接口、定义测试输出数据并定义误差计算方式及误差判断阈值;
步骤3.3:定义数据注入、函数调用和数据获取的时序;
步骤3.4:编辑用例组初始化、特殊指令和注销的操作;
步骤3.5:生成测试脚本。
步骤4:脚本与被测代码编译模块对被测代码和步骤3所得到的测试脚本进行编译,其中,被测代码和测试脚本编译的步骤包括:
步骤4.1:将被测代码编译为静态链接库格式,并将其放置在集成测试调试模块;
步骤4.2:将被测代码编译成的静态链接库与测试脚本一起编译为可执行文件格式;
步骤4.3:将被测代码编译为动态链接库格式,并将其适配于集成测试仿真执行模块;
步骤4.4:将被测代码编译为二进制文件格式,并将其烧写至集成测试目标机执行模块;
步骤5:脚本执行管理模块在运行时对控制指令进行管理调度,发送至集成测试调试模块或GDB调试模块;
步骤6:集成测试调试模块根据控制指令直接进行软件测试,并将返回执行数据;
步骤7:GDB调试模块将控制指令转换为GDB指令,并发送至集成测试仿真执行模块或集成测试目标机执行模块;GDB调试模块接收集成测试仿真执行模块或集成测试目标机执行模块的执行数据,并返回至脚本开发与执行环境;
步骤8:集成测试仿真执行模块或集成测试目标机执行模块根据GDB指令进行软件测试,并返回执行数据;
步骤9:测试分析评估模块收集分析步骤6、步骤7和步骤8所得到的执行数据,生成测试结果数据;其中,分析执行数据的步骤包括:
步骤9.1:根据误差计算方法与误差判断阈值,分析被测代码功能正确性;步骤9.2:统计代码测试结构覆盖率;
步骤9.3:分析变量数据注入和函数调用顺序的正确性;
步骤9.4:分析嵌入式软件测试完整性。
步骤10:外部数据读写模块根据步骤9所得到的测试结果数据输出测试结果。

Claims (7)

1.一种嵌入式软件集成测试自动化执行***,其特征在于,包括:
开发与调试环境:用于接收测试输入、开发测试脚本、编译被测代码与测试脚本、分发调度测试控制指令、执行软件测试、分析评估测试结果以及输出测试结果;
所述开发与调试环境包括脚本开发与执行环境和集成测试调试模块;
所述脚本开发与执行环境:包括用于读取测试输入与输出测试结果的外部数据读写模块;用于开发测试脚本的测试脚本开发模块;用于对被测代码和测试脚本进行编译的脚本与被测代码编译模块;用于在执行测试时,对控制指令进行管理调度的脚本执行管理模块;用于分析生成测试结果的测试分析评估模块;
所述集成测试调试模块:获取脚本开发与执行环境输出的控制指令,对被测代码编译后的静态链接库执行测试,并返回执行数据;
仿真执行环境:获取开发与调试环境输出的控制指令,进行软件测试并返回执行数据;
所述仿真执行环境包括GDB调试模块和集成测试仿真执行模块;
所述GDB调试模块:根据测试脚本的控制指令,对程序中全局变量、全局静态变量和局部静态变量进行获取、调用和注入操作;对文件域和全局域的函数进行触发调用;提供程序单步运行、停止的调试操作;当程序中断时,提供查看程序内部运行情况的接口;
所述集成测试仿真执行模块:将测试脚本与被测代码分离,分别独立运行,通过加载动态链接库的方式执行测试,并将执行数据返回至GDB调试模块;或基于GDB指令进行单步运行调试;
目标机执行环境:用于模拟被测代码的运行情况,在真实的目标机上运行被测代码被编译后的二进制文件;
所述目标机执行环境包括集成测试目标机执行模块,所述集成测试目标机执行模块模拟被测代码的运行情况,在真实的目标机上运行被测代码被编译后的二进制文件,并将执行数据返回至GDB调试模块;或基于GDB指令进行单步运行调试。
2.根据权利要求1所述的嵌入式软件集成测试自动化执行***,其特征在于,所述测试脚本开发模块提供脚本开发向导与纯文本脚本编辑器两种方式开发测试脚本,两种方式间能够随时切换、保存和加载;所述脚本开发向导对被测代码的控制流分析、并将控制流分析信息展示给开发人员。
3.根据权利要求1所述的嵌入式软件集成测试自动化执行***,其特征在于,所述集成测试调试模块能够设置断点、单步运行调试方式观察测试脚本运行情况。
4.利用权利要求1所述***的嵌入式软件集成测试自动化执行方法,其特征在于,包括以下步骤:
步骤1:外部数据读写模块获取测试输入指令,读取用例与驱动数据、执行记录模板;脚本与被测代码编译模块读取被测代码;
步骤2:脚本与被测代码编译模块对被测代码进行控制流分析;
步骤3:测试脚本开发模块利用纯文本脚本编辑或脚本开发向导的方式开发测试脚本;
步骤4:脚本与被测代码编译模块对被测代码和所述步骤3所得到的测试脚本进行编译;
步骤5:脚本执行管理模块在运行时对控制指令进行管理调度,发送至集成测试调试模块或GDB调试模块;
步骤6:集成测试调试模块根据控制指令直接进行软件测试,并将返回执行数据;
步骤7:GDB调试模块将控制指令转换为GDB指令,并发送至集成测试仿真执行模块或集成测试目标机执行模块;GDB调试模块接收集成测试仿真执行模块或集成测试目标机执行模块的执行数据,并返回至脚本开发与执行环境;
步骤8:集成测试仿真执行模块或集成测试目标机执行模块根据GDB指令进行软件测试,并返回执行数据;
步骤9:测试分析评估模块收集分析所述步骤6、步骤7和步骤8所得到的执行数据,生成测试结果数据;
步骤10:外部数据读写模块根据所述步骤9所得到的测试结果数据输出测试结果。
5.根据权利要求4所述的嵌入式软件集成测试自动化执行方法,其特征在于,所述步骤3中脚本开发向导开发测试脚本的步骤包括:
步骤3.1:打开脚本开发向导,选择需要执行的测试用例;
步骤3.2:链接测试输入与被测代码参数名称、定义数据注入接口、定义测试输出数据并定义误差计算方式及误差判断阈值;
步骤3.3:定义数据注入、函数调用和数据获取的时序;
步骤3.4:编辑用例组初始化、特殊指令和注销的操作;
步骤3.5:生成测试脚本。
6.根据权利要求4所述的嵌入式软件集成测试自动化执行方法,其特征在于,所述步骤4中被测代码和测试脚本进行编译的步骤包括:
步骤4.1:将被测代码编译为静态链接库格式,并将其放置在集成测试调试模块;
步骤4.2:将被测代码编译成的静态链接库与测试脚本一起编译为可执行文件格式;
步骤4.3:将被测代码编译为动态链接库格式,并将其适配于集成测试仿真执行模块;
步骤4.4:将被测代码编译为二进制文件格式,并将其烧写至集成测试目标机执行模块。
7.根据权利要求4所述的嵌入式软件集成测试自动化执行方法,其特征在于,所述步骤9中分析执行数据的步骤包括:
步骤9.1:根据误差计算方法与误差判断阈值,分析被测代码功能正确性;
步骤9.2:统计代码测试结构覆盖率;
步骤9.3:分析变量数据注入和函数调用顺序的正确性;
步骤9.4:分析嵌入式软件测试完整性。
CN202011464070.4A 2020-12-14 2020-12-14 一种嵌入式软件集成测试自动化执行***及方法 Active CN112597006B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011464070.4A CN112597006B (zh) 2020-12-14 2020-12-14 一种嵌入式软件集成测试自动化执行***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011464070.4A CN112597006B (zh) 2020-12-14 2020-12-14 一种嵌入式软件集成测试自动化执行***及方法

Publications (2)

Publication Number Publication Date
CN112597006A CN112597006A (zh) 2021-04-02
CN112597006B true CN112597006B (zh) 2023-10-03

Family

ID=75192757

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011464070.4A Active CN112597006B (zh) 2020-12-14 2020-12-14 一种嵌入式软件集成测试自动化执行***及方法

Country Status (1)

Country Link
CN (1) CN112597006B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051582B (zh) * 2021-04-28 2023-03-14 重庆电子工程职业学院 一种计算机软件技术开发调试***
CN113190450A (zh) * 2021-05-08 2021-07-30 航天中认软件测评科技(北京)有限责任公司 一种自动化软件测试***及其测试方法
CN113961453B (zh) * 2021-09-30 2023-02-28 西南电子技术研究所(中国电子科技集团公司第十研究所) 航空机载软件全数字仿真测试***
CN114047002A (zh) * 2021-11-09 2022-02-15 北京阿帕科蓝科技有限公司 一种电动两轮车整车测试方法及***
CN115629996B (zh) * 2022-12-21 2023-03-10 深圳市微克科技有限公司 一种嵌入式软件自动化测试方法
CN116737323B (zh) * 2023-08-10 2023-11-10 上海移芯通信科技股份有限公司 一种基于物联网芯片的脚本调用方法和装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737775A (zh) * 2004-08-18 2006-02-22 华为技术有限公司 一种嵌入式软件自动化测试的装置及其方法
CN1949187A (zh) * 2006-11-17 2007-04-18 深圳市领测科技有限公司 一种程序调测***及方法
KR20110037140A (ko) * 2009-10-06 2011-04-13 선문대학교 산학협력단 임베디드 소프트웨어 가상 개발 환경을 제공하는 시스템
CN103995777A (zh) * 2014-05-29 2014-08-20 上海科梁信息工程有限公司 嵌入式软件黑盒自动化测试***及测试方法
CN104765681A (zh) * 2015-03-18 2015-07-08 株洲南车时代电气股份有限公司 列车传动控制软件自动化测试***及方法
CN105808432A (zh) * 2015-03-04 2016-07-27 中车株洲电力机车研究所有限公司 轨道交通牵引传动控制单元软件自动化测试***及方法
CN108228467A (zh) * 2018-01-30 2018-06-29 北京航天长征飞行器研究所 一种嵌入式飞控软件算法快速验证方法及***
CN111124373A (zh) * 2019-12-26 2020-05-08 武汉精鸿电子技术有限公司 一种测试软件开发方法、装置及测试设备
CN111176999A (zh) * 2019-12-25 2020-05-19 中国航空工业集团公司西安飞机设计研究所 一种无人机飞控管理软件的测试平台构建方法和测试方法
WO2020152231A1 (en) * 2019-01-22 2020-07-30 Advantest Corporation Automated test equipment for testing one or more devices under test, method for automated testing of one or more devices under test, and computer program using a buffer memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101019210B1 (ko) * 2007-04-25 2011-03-04 이화여자대학교 산학협력단 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737775A (zh) * 2004-08-18 2006-02-22 华为技术有限公司 一种嵌入式软件自动化测试的装置及其方法
CN1949187A (zh) * 2006-11-17 2007-04-18 深圳市领测科技有限公司 一种程序调测***及方法
KR20110037140A (ko) * 2009-10-06 2011-04-13 선문대학교 산학협력단 임베디드 소프트웨어 가상 개발 환경을 제공하는 시스템
CN103995777A (zh) * 2014-05-29 2014-08-20 上海科梁信息工程有限公司 嵌入式软件黑盒自动化测试***及测试方法
CN105808432A (zh) * 2015-03-04 2016-07-27 中车株洲电力机车研究所有限公司 轨道交通牵引传动控制单元软件自动化测试***及方法
CN104765681A (zh) * 2015-03-18 2015-07-08 株洲南车时代电气股份有限公司 列车传动控制软件自动化测试***及方法
CN108228467A (zh) * 2018-01-30 2018-06-29 北京航天长征飞行器研究所 一种嵌入式飞控软件算法快速验证方法及***
WO2020152231A1 (en) * 2019-01-22 2020-07-30 Advantest Corporation Automated test equipment for testing one or more devices under test, method for automated testing of one or more devices under test, and computer program using a buffer memory
CN111176999A (zh) * 2019-12-25 2020-05-19 中国航空工业集团公司西安飞机设计研究所 一种无人机飞控管理软件的测试平台构建方法和测试方法
CN111124373A (zh) * 2019-12-26 2020-05-08 武汉精鸿电子技术有限公司 一种测试软件开发方法、装置及测试设备

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A. Ghosh等.A hardware-software co-simulator for embedded system design and debugging.Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair.2002,155-164. *
一种嵌入式仿真与测试平台的设计与实现;高放;中国优秀硕士学位论文全文数据库 信息科技辑;I138-947 *
基于状态机的嵌入式集成开发环境的设计与实现;汤思榕;中国优秀硕士学位论文全文数据库 信息科技辑;I138-172 *
嵌入式软件虚拟化测试技术标准框架研究;曲明成等;哈尔滨工业大学学报(第05期);49-55、121 *
轨交信号***自动化测试集成平台设计与实现;傅李育;中国优秀硕士学位论文全文数据库 信息科技辑;I138-651 *

Also Published As

Publication number Publication date
CN112597006A (zh) 2021-04-02

Similar Documents

Publication Publication Date Title
CN112597006B (zh) 一种嵌入式软件集成测试自动化执行***及方法
US4720778A (en) Software debugging analyzer
Bringmann et al. Model-based testing of automotive systems
US6948152B2 (en) Data structures for use with environment based data driven automated test engine for GUI applications
US6961873B2 (en) Environment based data driven automated test engine for GUI applications
CN107831757A (zh) 基于dSPACE的电机控制硬件在环自动化测试***及方法
US7526498B2 (en) Method for generating data structures for automatically testing GUI applications
US20030046029A1 (en) Method for merging white box and black box testing
US7269773B2 (en) Test program debugger device, semiconductor test apparatus, test program debugging method and test method
CN112084113B (zh) 基于嵌入式仿真验证软件的可配置自动化测试方法及***
CN107562969B (zh) 航空发动机控制***软件的集成方法和装置
US7895575B2 (en) Apparatus and method for generating test driver
CN102567164A (zh) 用于处理器的指令集批量测试装置与方法
JP4959941B2 (ja) ソフトウェアの双方向プロービング
CN117787155A (zh) 一种芯片可测性代码动态仿真测试***及测试方法
Bombieri et al. Functional qualification of TLM verification
CN100440162C (zh) 嵌入式设备的调试方法
CN112162921B (zh) 一种工业自动化测试与控制***
Aljamaan et al. UmpleRun: a Dynamic Analysis Tool for Textually Modeled State Machines using Umple.
Muttenthaler et al. Lean automated hardware/software integration test strategy for embedded systems
CN117033161A (zh) 一种满足do-178b目标的数据耦合与控制耦合分析方法
Cunha et al. On the use of boundary scan for code coverage of critical embedded software
Krapfenbauer et al. Improving component testing of industrial automation software
Prabhu et al. A Model for GUI Automated Testing Framework in Software System
Kirkland et al. Intermediary Affirmation is Prescribed for an Efficient Future

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