CN111209209A - 测试装置 - Google Patents

测试装置 Download PDF

Info

Publication number
CN111209209A
CN111209209A CN202010043942.3A CN202010043942A CN111209209A CN 111209209 A CN111209209 A CN 111209209A CN 202010043942 A CN202010043942 A CN 202010043942A CN 111209209 A CN111209209 A CN 111209209A
Authority
CN
China
Prior art keywords
module
test
data
testing
test module
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
Application number
CN202010043942.3A
Other languages
English (en)
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.)
Shanghai Zhibai Intelligent Technology Co ltd
Original Assignee
Shanghai Zhibai Intelligent 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 Shanghai Zhibai Intelligent Technology Co ltd filed Critical Shanghai Zhibai Intelligent Technology Co ltd
Priority to CN202010043942.3A priority Critical patent/CN111209209A/zh
Publication of CN111209209A publication Critical patent/CN111209209A/zh
Pending legal-status Critical Current

Links

Images

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/3668Software testing
    • G06F11/3696Methods or tools to render software testable

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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供了测试装置,包括:主程序模块、调度模块、数据存储模块和至少一个测试模块;主程序模块,用于触发调度模块对测试模块进行调度;调度模块,用于确定测试模块的运行顺序,调度测试模块按照所述运行顺序运行,向运行顺序中当前待运行的测试模块发送开始运行的指令;测试模块,用于在接收到开始运行的指令时,对待测试目标进行测试,将测试待测试目标产生的数据发送给数据存储模块;数据存储模块,用于接收并保存测试模块发来的数据,当接收到测试模块发来的数据请求时,向发来数据请求的测试模块返回所请求的数据。本发明提供了测试装置,该测试装置中的测试模块更加容易实现。

Description

测试装置
技术领域
本发明涉及计算机技术领域,特别涉及测试装置。
背景技术
目标,测试过程是流程式的,测试装置的各个测试模块之间存在大量的数据交互,在开发各个测试模块时,需要按照一定顺序进行开发,只有上一测试模块开发完成之后才能开发之后的测试模块。例如:要开发一个用于测试芯片的软件,需要先开发“初始化”的测试模块,再开发“上电”的测试模块,然后开发“测通断”的测试模块、“测耐压”的测试模块等等。后面的测试模块需要与前面的测试模块进行数据交互,前面的测试模块的未开发完成,后面的测试模块需要等待开发。在开发和调试的时候需要各个工程师的协助配合。
通过上述描述可见,现有的测试装置中各个测试模块实现比较复杂。
发明内容
本发明实施例提供了测试装置,该测试装置中的测试模块更加容易实现。
本发明实施例提供了测试装置,包括:
主程序模块、调度模块、数据存储模块和至少一个测试模块;
所述主程序模块,用于触发所述调度模块对所述至少一个测试模块进行调度;
所述调度模块,用于在被所述主程序模块触发后,确定所述至少一个测试模块的运行顺序,调度所述至少一个测试模块按照所述运行顺序运行,向所述运行顺序中当前待运行的所述测试模块发送开始运行的指令;
每个所述测试模块,用于在接收到所述调度模块发来的开始运行的指令时,执行:当测试待测试目标需要用于测试的数据时,向所述数据存储模块发送数据请求,接收所述数据存储模块发来的所述数据请求所请求的数据,根据所述数据请求所请求的数据,对所述待测试目标进行测试,将测试所述待测试目标产生的数据发送给所述数据存储模块,当测试所述待测试目标不需要用于测试的数据时,对所述待测试目标进行测试,将测试所述待测试目标产生的数据发送给所述数据存储模块;
所述数据存储模块,用于接收并保存所述至少一个测试模块发来的数据,当接收到任一所述测试模块发来的数据请求时,向发来所述数据请求的所述测试模块返回所述数据请求所请求的数据。
可选地,
该装置进一步包括:功能向量模块;
所述功能向量模块,用于存储所述至少一个测试模块的所述运行顺序;
所述调度模块,用于在被所述主程序模块触发后,从所述功能向量模块获取所述运行顺序。
可选地,
该装置进一步包括:资源配置模块;
所述资源配置模块,用于保存运行每个所述测试模块所需要的运行环境条件;
所述调度模块,用于从所述资源配置模块获取当前待调度的目标测试模块的所述运行环境条件,判断当前的运行环境是否满足所述目标测试模块的所述运行环境条件,如果是,则运行所述目标测试模块在当前的运行环境中运行,否则,禁止所述目标测试模块在当前的运行环境中运行。
可选地,
该装置进一步包括:至少一个中间件和至少一个驱动模块;
每个所述测试模块对应一个所述中间件;
每个所述测试模块,用于向对应的所述中间件发送测试指令,接收所述中间件发来的测试所述待测试目标产生的数据,将测试所述待测试目标产生的数据发送给所述数据存储模块;
每个所述中间件,用于接收对应的所述测试模块发来的所述测试指令,将所述测试指令转换为执行所述测试指令所需要的所述驱动模块能够识别的执行指令,接收所述驱动模块发来的测试所述待测试目标产生的数据,将测试所述待测试目标产生的数据发送给发来所述测试指令的所述测试模块;
每个所述驱动模块,用于当接收到所述中间件发来的所述执行指令时,根据所述执行指令控制用于测试的硬件设备对所述待测试目标进行测试,将所述硬件设备发来的测试所述待测试目标产生的数据发送给发来所述执行指令的所述中间件。
可选地,
所述数据存储模块,用于保存所述待测试目标的测试序列;
用于测试的数据,包括:所述测试序列。
可选地,
所述调度模块,用于执行:
A1:i=1;
A2:判断是否允许所述运行顺序中的第i个测试模块运行,如果是,执行A3;
A3:向所述运行顺序中的第i个测试模块发送开始运行的指令;
A4:当接收到所述运行顺序中的第i个测试模块返回的运行完毕的信息时,判断i是否等于n,如果是,则结束当前流程,否则,执行A5;
A5:i=i+1,返回A2;
其中,n为所述运行顺序中的测试模块的总数。
可选地,
所述调度模块,用于针对所述运行顺序中的每个所述测试模块,执行:
接收当前的测试模块按照预设周期发来的询问请求;
根据所述运行顺序,判断是否允许发来所述询问请求的当前的测试模块运行,如果是,则向当前的测试模块发送开始运行的指令,以使当前的测试模块开始运行。
可选地,
所述调度模块,用于保存一个三维数组,将每个所述测试模块中的执行状态保存到所述三维数组的不同页中,获取发来所述询问请求的当前的测试模块对应的页中的目标执行状态,根据所述目标执行状态,判断是否允许当前的测试模块运行。
可选地,
该装置进一步包括:模拟器;
所述模拟器,用于在对任一所述测试模块进行调试时,模拟需要调试的所述测试模块所需要的调试数据,将所述调试数据发送给所述数据存储模块;
每个所述测试模块,进一步用于向所述数据存储模块发送用于请求所述调试数据的调试请求,接收所述数据存储模块发来的所述调试数据,向所述数据存储模块发送调试过程中生成的数据;
所述数据存储模块,进一步用于在对任一所述测试模块进行调试时,接收并保存所述模拟器发来的所述调试数据,当接收需要调试的所述测试模块发来的调试请求时,向发来所述调试请求的所述测试模块返回所述调试数据,接收并保存需要调试的所述测试模块发来的调试过程中生成的数据。
可选地,
所述主程序模块,进一步用于对所述至少一个测试模块进行初始化。
可选地,
所述主程序模块,进一步用于接收外部输入的控制指令,根据所述控制指令控制对所述至少一个测试模块进行控制。
在本发明实施例中,调度模块可以调度各个测试模块按照运行顺序运行,各个测试模块运行过程中产生的数据保存到数据存储模块中,各个测试模块运行过程中所需要的数据也可以从数据存储模块中获取,也就是说,各个测试模块之间无需交互,只需与数据存储模块和调度模块交互即可,那么,在开发各个测试模块时,无需考虑各个测试模块之间的关系,各个测试模块之间没有耦合,相互独立,可以完全独立并行地开发各个测试模块,进而大大提高了开发软件的效率,该测试装置中的测试模块更加容易实现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种测试装置的示意图;
图2是本发明一实施例提供的另一种测试装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种测试装置,包括:
主程序模块101、调度模块102、数据存储模块103和至少一个测试模块104;
所述主程序模块101,用于触发所述调度模块102对所述至少一个测试模块进行调度;
所述调度模块102,用于在被所述主程序模块101触发后,确定所述至少一个测试模块104的运行顺序,调度所述至少一个测试模块104按照所述运行顺序运行,向所述运行顺序中当前待运行的所述测试模块104发送开始运行的指令;
每个所述测试模块104,用于在接收到所述调度模块102发来的开始运行的指令时,执行:当测试待测试目标需要用于测试的数据时,向所述数据存储模块103发送数据请求,接收所述数据存储模块103发来的所述数据请求所请求的数据,根据所述数据请求所请求的数据,对所述待测试目标进行测试,将测试所述待测试目标产生的数据发送给所述数据存储模块103,当测试所述待测试目标不需要用于测试的数据时,对所述待测试目标进行测试,将测试所述待测试目标产生的数据发送给所述数据存储模块103;
所述数据存储模块103,用于接收并保存所述至少一个测试模块104发来的数据,当接收到任一所述测试模块104发来的数据请求时,向发来所述数据请求的所述测试模块104返回所述数据请求所请求的数据。
在本发明实施例中,调度模块可以调度各个测试模块按照运行顺序运行,各个测试模块运行过程中产生的数据保存到数据存储模块中,各个测试模块运行过程中所需要的数据也可以从数据存储模块中获取,也就是说,各个测试模块之间无需交互,只需与数据存储模块和调度模块交互即可,那么,在开发各个测试模块时,无需考虑各个测试模块之间的关系,各个测试模块之间没有耦合,相互独立,可以完全独立并行地开发各个测试模块,进而大大提高了开发软件的效率,该测试装置中的测试模块更加容易实现。
在本发明实施例中,各个测试模块之后需要进行数据交互时,可以通过数据存储模块实现,各个测试模块将输出的数据全部输入到数据存储模块,需要相关数据时,各测试模块只需要从数据存储模块中取出即可,完全隔离了测试模块间的交互。
在本发明实施例中,主程序模块可以在外部的用户的指令下触发调度模块。
在本发明实施例中,主程序模块可以包括主程序寄存器。
在本发明实施例中,调度模块可以包括调度寄存器。
在本发明实施例中,数据存储模块可以包括数据寄存器。
在本发明实施例中,所述主程序模块,进一步用于对所述至少一个测试模块进行初始化。
在本发明实施例中,所述主程序模块,进一步用于接收外部输入的控制指令,根据所述控制指令控制对所述至少一个测试模块进行控制。
在本发明实施例中,主程序作为程序的主体,可以包含两部分:界面单元和程序逻辑单元。界面单元主要是各个测试模块中通用的部分,例如逻辑控制控件,界面控制控件等。程序逻辑单元是主程序会通过逻辑控制按键对各个测试模块的运行状态进行控制,并读取寄存器。
举例来说,主程序模块中设置有程序控制逻辑按键,“开始”的运行状态指令为“7”,“复位”的运行状态指令为“4”,“暂停”的运行状态指令为“8”,停止的运行状态指令为“9”。程序启动后,待用户登录完成之后进入主程序模块,界面初始化后,只要点击开始按键(按键“7”)就会调用各个测试模块。主程序模块还一直控制调度模块的调度工作。
在本发明实施例中,数据存储模块用来寄存所有测试模块的输出结果,输出结果包含这个测试模块的各个参数,以及这个测试模块的输出值。数据存储模块的内容是由测试模块写入的,写入的时候为了避免结果数据名的重名问题,需要在结果数据名称前加上测试模块的名字。举例来说,压力测试的模块和温度测试的模块是两个测试模块。“压力测试”过程有“上限”,“下限”,“测量值”。“温度测试”过程也有“上限”,“下限”,“测量值”。因此在输出到结果数据存储模块时,需要以“压力测试的上限”,“压力测试的下限”,“压力测试的测量值”和“温度测试的上限”,“温度测试的下限”,“温度测试的测量值”来命名。
在本发明一实施例中,该装置进一步包括:功能向量模块;
所述功能向量模块,用于存储所述至少一个测试模块的所述运行顺序;
所述调度模块,用于在被所述主程序模块触发后,从所述功能向量模块获取所述运行顺序。
在本发明实施例中,用户可以自定义运行顺序,并将运行顺序保存到功能向量模块中。对于同一批测试模块,用户也可以灵活配置不同的运行顺序,以实现不同的功能。该运行顺序可以根据待测试目标的不同灵活配置。
举例来说,在对射频芯片进行测试时,需要先进行压力测试,然后进行温度测试,那么,测试模块的运行顺序就是:先运行用于压力测试的测试模块,然后,运行用于温度测试的测试模块。
在本发明实施例中,功能向量模块可以包括功能向量寄存器。
在本发明实施例中,运行顺序可以保存在功能向量列表中。这里的运行顺序包括要执行的功能序列。
在本发明一实施例中,该装置进一步包括:资源配置模块;
所述资源配置模块,用于保存运行每个所述测试模块所需要的运行环境条件;
所述调度模块,用于从所述资源配置模块获取当前待调度的目标测试模块的所述运行环境条件,判断当前的运行环境是否满足所述目标测试模块的所述运行环境条件,如果是,则运行所述目标测试模块在当前的运行环境中运行,否则,禁止所述目标测试模块在当前的运行环境中运行。
在本发明实施例中,所述运行环境条件,包括:运行所述测试模块所需要的硬件环境条件和软件环境条件。
在本发明实施例中,可以将各个测试模块的运行环境条件汇总到一个资源配置表里,供调度模块使用。
对于硬件环境条件来说,调度模块每调度一个测试模块之前会先从资源配置模块获取该测试模块运行所需要的硬件是否为空闲状态,若为空闲可用,则在同时满足该测试模块的软件环境条件时,可继续调用执行该测试模块,否则重新调用其他的测试模块。
举例来说,用于温度测试的测试模块需要用到温度传感器,调度模块需要先确定温度传感器是否为空闲状态,如果是,则运行该用于温度测试的测试模块。
在本发明实施例中,该装置进一步包括:至少一个中间件和至少一个驱动模块;
每个所述测试模块对应一个所述中间件;
每个所述测试模块,用于向对应的所述中间件发送测试指令,接收所述中间件发来的测试所述待测试目标产生的数据,将测试所述待测试目标产生的数据发送给所述数据存储模块;
每个所述中间件,用于接收对应的所述测试模块发来的所述测试指令,将所述测试指令转换为执行所述测试指令所需要的所述驱动模块能够识别的执行指令,接收所述驱动模块发来的测试所述待测试目标产生的数据,将测试所述待测试目标产生的数据发送给发来所述测试指令的所述测试模块;
每个所述驱动模块,用于当接收到所述中间件发来的所述执行指令时,根据所述执行指令控制用于测试的硬件设备对所述待测试目标进行测试,将所述硬件设备发来的测试所述待测试目标产生的数据发送给发来所述执行指令的所述中间件。
在本发明实施例中,中间件设置在测试模块与驱动模块之间,通过中间件可以实现测试模块与驱动模块之间的交互。测试指令用于控制各个硬件设备进行测试,而测试指令所要使用的硬件设备对应的驱动模块就是该测试指令所需要的驱动模块。中间件将测试指令转换为执行指令后,发送给驱动模块,驱动模块可以直接执行该执行指令。中间件将驱动模块返回的数据转换为测试模块能够识别的数据。
在本发明一实施例中,所述数据存储模块,用于保存所述待测试目标的测试序列;
用于测试的数据,包括:所述测试序列。
在本发明实施例中,测试序列是指在芯片测试初期,芯片生产厂商提供的芯片的测试指标的各种参数和配置。具体地,测试序列中包括待测试目标的各个测试指标的标准范围,例如各个测试指标的上限、下限等。可以将测试序列按照规定的格式记录在excel表格中,作为一个独立的测试序列文件,将该测试序列文件保存到数据存储模块中,测试模块在测试的时候,只需要从数据存储模块中读取该excel表格即可。
在本发明一实施例中,所述调度模块,用于执行:
A1:i=1;
A2:判断是否允许所述运行顺序中的第i个测试模块运行,如果是,执行A3;
A3:向所述运行顺序中的第i个测试模块发送开始运行的指令;
A4:当接收到所述运行顺序中的第i个测试模块返回的运行完毕的信息时,判断i是否等于n,如果是,则结束当前流程,否则,执行A5;
A5:i=i+1,返回A2;
其中,n为所述运行顺序中的测试模块的总数。
在本发明实施例中,调度模块通过中断的方式对各个测试模块进行调度。各个测试模块可以处于休眠状态,调度模块按照运行顺序确定轮到第i个测试模块运行时,调度模块主动发出开始运行的指令,收到该指令的测试模块开始运行,该测试模块运行完毕后,向调度模块返回运行完毕的信息,从而调度模块又开始继续调度下一个测试模块。
在本发明一实施例中,所述调度模块,用于针对所述运行顺序中的每个所述测试模块,执行:
接收当前的测试模块按照预设周期发来的询问请求;
根据所述运行顺序,判断是否允许发来所述询问请求的当前的测试模块运行,如果是,则向当前的测试模块发送开始运行的指令,以使当前的测试模块开始运行。
在本发明实施例中,调度模块通过轮询的方式对各个测试模块进行调度。各个测试模块不是时时刻刻都询问调度模块获取信息,而是周期性地通过询问请求主动询问调度模块是否该轮到本测试模块运行了,如果还没有,那么过一个预设周期后该测试模块再次发送询问请求。
在本发明一实施例中,所述调度模块,用于保存一个三维数组,将每个所述测试模块中的执行状态保存到所述三维数组的不同页中,获取发来所述询问请求的当前的测试模块对应的页中的目标执行状态,根据所述目标执行状态,判断是否允许当前的测试模块运行。
在本发明实施例中,调度模块可以根据三维数组中的目标执行状态来确定判断是否允许发来询问请求的当前的测试模块运行。
执行状态可以包括资源状态和工件运行状态。这些状态是程序的核心管理状态,各个测试模块以及和调度相关的模块都会根据三维数组中的执行状态来调整自己的工作模式,运行或者停止。
在本发明一实施例中,该装置进一步包括:模拟器;
所述模拟器,用于在对任一所述测试模块进行调试时,模拟需要调试的所述测试模块所需要的调试数据,将所述调试数据发送给所述数据存储模块;
每个所述测试模块,进一步用于向所述数据存储模块发送用于请求所述调试数据的调试请求,接收所述数据存储模块发来的所述调试数据,向所述数据存储模块发送调试过程中生成的数据;
所述数据存储模块,进一步用于在对任一所述测试模块进行调试时,接收并保存所述模拟器发来的所述调试数据,当接收需要调试的所述测试模块发来的调试请求时,向发来所述调试请求的所述测试模块返回所述调试数据,接收并保存需要调试的所述测试模块发来的调试过程中生成的数据。
在本发明实施例中,需要对任一测试模块进行调试时,可以对各个测试模块进行单独调试,测试模块之间没有任何影响。甚至都可以用不同的工作人员执行。如果调试一个测试模块的时候需要另外一个测试模块的数据,那么,可以用模拟器模拟一个同类型数据放入数据存储模块中即可,并不需要其他测试模块的参与,大大降低了软件的调试工作的复杂程度。
如图2所示,本发明实施例提供了一种测试装置,包括:主程序模块101、调度模块102、数据存储模块103、至少一个测试模块104、功能向量模块201、资源配置模块202、至少一个中间件203和至少一个驱动模块204。
在本发明实施例中,主程序模块、调度模块、数据存储模块、功能向量模块、资源配置模块、各个测试模块、各个中间件和各个驱动模块中的参数均是由功能性全局变量定义的。
在对各个测试模块进行开发时,支持多线程设计,并行运行代替串行运行,提高运行速度和效率,降低开发时间和开发成本。
在本发明实施例中,对于由各个测试模块和本发明实施例提供的测试装置构成的软件,在进行升级时,只需要修改本发明实施例提供的测试装置相关的核心文件,不涉及到其他开发代码的修改,十分方便快捷。
本发明实施例提供的测试装置是一种模块化软件架构,适用于集成电路测试。在需要实现集成电路测试的软件时,只需基于本发明实施例提供的测试装置独立开发各个用于集成电路测试的测试模块即可,例如:基于本发明实施例提供的测试装置独立开发用于压力测试的测试模块和用于温度测试的测试模块,将用于压力测试的测试模块和用于温度测试的测试模块与本发明实施例提供的测试装置集成到一起,即可实现集成电路测试的软件。
各个测试模块中的各种方法,逻辑,数据存储方式等比较通用的部分都可以直接以模块为单位编写,完成之后,再需要写相关的测试程序只需要写少量的特定的程序部分便可以直接升级成模块化的软件框架,方便快捷。针对所有的相类似的测试程序,都可直接嵌套该测试装置,实现程序的快捷高效的开发执行。
在本发明实施例中,各个测试模块、各个中间件和驱动模块可以分开独立开发,极大加快了开发速度。
驱动模块可以由驱动开发工程师负责开发,主要涉及到软件和仪器各接口的联动。中间件由中间件开发工程师负责开发,主要涉及到测试装置的各功能的具体的方法和算法等的实现。测试模块由模块开发工程师负责开发,主要涉及到一些数据和指令的定义及交互。
在对测试装置进行升级时,驱动模块、测试模块、中间件这三个部分可以不需要修改任何代码,只需要修改主程序模块、调度模块、数据存储模块、功能向量模块和资源配置模块中的核心文件,驱动模块、测试模块、中间件这三个部分就能够实现自动升级。
基于本发明实施例提供的一种测试装置,可以通过以下方式实现软件的各个测试模块的:
规划好各个测试模块以及寄存器的逻辑,可安排不同的人单独开发。甲开发测试模块A,乙开发测试模块B,丙开发测试模块C……开发完毕之后,运行时,先由主程序模块启动所有的测试模块进行初始化,资源配置模块存储各测试模块所需要的硬件环境条件和软件环境条件,功能向量模块存储各测试模块的运行顺序,主程序模块根据功能向量模块里的运行顺序触发调度模块来调度各个测试模块的运行,同时调度模块也要看资源配置模块里的内容确定该测试模块是否已有运行的外界条件,从而十分灵活的调度各个测试模块运行。所有测试模块的数据都输入到数据存储模块中,例如测试模块A输出数据α,测试模块B输出β,测试模块C输出θ……,所有这些数据都存储在数据存储模块中,若其中测试模块C的运行需要用到α,那么测试模块C运行的时候直接从数据存储模块中取出α即可。同样地,在进行调试的时候一般都是各个测试模块单独调试,如果不需要调试测试模块A,需要先调试测试模块C,但是测试模块C运行需要α,此时没有测试模块运行过,数据存储模块里是空的,那么此时用模拟器模拟出一个与α同样类型的值放入数据存储模块中即可,测试模块C可以利用数据存储模块中存储的模拟器模拟出的与α同样类型的值进行调试。可见,各测试模块的独立调试给测试工作带来了极大的便利。
可以理解的是,本发明实施例示意的结构并不构成对测试装置的具体限定。在本发明的另一些实施例中,测试装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

Claims (10)

1.测试装置,其特征在于,包括:
主程序模块、调度模块、数据存储模块和至少一个测试模块;
所述主程序模块,用于触发所述调度模块对所述至少一个测试模块进行调度;
所述调度模块,用于在被所述主程序模块触发后,确定所述至少一个测试模块的运行顺序,调度所述至少一个测试模块按照所述运行顺序运行,向所述运行顺序中当前待运行的所述测试模块发送开始运行的指令;
每个所述测试模块,用于在接收到所述调度模块发来的开始运行的指令时,执行:当测试待测试目标需要用于测试的数据时,向所述数据存储模块发送数据请求,接收所述数据存储模块发来的所述数据请求所请求的数据,根据所述数据请求所请求的数据,对所述待测试目标进行测试,将测试所述待测试目标产生的数据发送给所述数据存储模块,当测试所述待测试目标不需要用于测试的数据时,对所述待测试目标进行测试,将测试所述待测试目标产生的数据发送给所述数据存储模块;
所述数据存储模块,用于接收并保存所述至少一个测试模块发来的数据,当接收到任一所述测试模块发来的数据请求时,向发来所述数据请求的所述测试模块返回所述数据请求所请求的数据。
2.根据权利要求1所述的装置,其特征在于,
进一步包括:功能向量模块;
所述功能向量模块,用于存储所述至少一个测试模块的所述运行顺序;
所述调度模块,用于在被所述主程序模块触发后,从所述功能向量模块获取所述运行顺序。
3.根据权利要求1所述的装置,其特征在于,
进一步包括:资源配置模块;
所述资源配置模块,用于保存运行每个所述测试模块所需要的运行环境条件;
所述调度模块,用于从所述资源配置模块获取当前待调度的目标测试模块的所述运行环境条件,判断当前的运行环境是否满足所述目标测试模块的所述运行环境条件,如果是,则运行所述目标测试模块在当前的运行环境中运行,否则,禁止所述目标测试模块在当前的运行环境中运行。
4.根据权利要求1所述的装置,其特征在于,
进一步包括:至少一个中间件和至少一个驱动模块;
每个所述测试模块对应一个所述中间件;
每个所述测试模块,用于向对应的所述中间件发送测试指令,接收所述中间件发来的测试所述待测试目标产生的数据,将测试所述待测试目标产生的数据发送给所述数据存储模块;
每个所述中间件,用于接收对应的所述测试模块发来的所述测试指令,将所述测试指令转换为执行所述测试指令所需要的所述驱动模块能够识别的执行指令,接收所述驱动模块发来的测试所述待测试目标产生的数据,将测试所述待测试目标产生的数据发送给发来所述测试指令的所述测试模块;
每个所述驱动模块,用于当接收到所述中间件发来的所述执行指令时,根据所述执行指令控制用于测试的硬件设备对所述待测试目标进行测试,将所述硬件设备发来的测试所述待测试目标产生的数据发送给发来所述执行指令的所述中间件。
5.根据权利要求1所述的装置,其特征在于,
所述数据存储模块,用于保存所述待测试目标的测试序列;
用于测试的数据,包括:所述测试序列。
6.根据权利要求1所述的装置,其特征在于,
所述调度模块,用于执行:
A1:i=1;
A2:判断是否允许所述运行顺序中的第i个测试模块运行,如果是,执行A3;
A3:向所述运行顺序中的第i个测试模块发送开始运行的指令;
A4:当接收到所述运行顺序中的第i个测试模块返回的运行完毕的信息时,判断i是否等于n,如果是,则结束当前流程,否则,执行A5;
A5:i=i+1,返回A2;
其中,n为所述运行顺序中的测试模块的总数。
7.根据权利要求1所述的装置,其特征在于,
所述调度模块,用于针对所述运行顺序中的每个所述测试模块,执行:
接收当前的测试模块按照预设周期发来的询问请求;
根据所述运行顺序,判断是否允许发来所述询问请求的当前的测试模块运行,如果是,则向当前的测试模块发送开始运行的指令,以使当前的测试模块开始运行。
8.根据权利要求7所述的装置,其特征在于,
所述调度模块,用于保存一个三维数组,将每个所述测试模块中的执行状态保存到所述三维数组的不同页中,获取发来所述询问请求的当前的测试模块对应的页中的目标执行状态,根据所述目标执行状态,判断是否允许当前的测试模块运行。
9.根据权利要求1所述的装置,其特征在于,
进一步包括:模拟器;
所述模拟器,用于在对任一所述测试模块进行调试时,模拟需要调试的所述测试模块所需要的调试数据,将所述调试数据发送给所述数据存储模块;
每个所述测试模块,进一步用于向所述数据存储模块发送用于请求所述调试数据的调试请求,接收所述数据存储模块发来的所述调试数据,向所述数据存储模块发送调试过程中生成的数据;
所述数据存储模块,进一步用于在对任一所述测试模块进行调试时,接收并保存所述模拟器发来的所述调试数据,当接收需要调试的所述测试模块发来的调试请求时,向发来所述调试请求的所述测试模块返回所述调试数据,接收并保存需要调试的所述测试模块发来的调试过程中生成的数据。
10.根据权利要求1-9中任一所述的装置,其特征在于,
所述主程序模块,进一步用于对所述至少一个测试模块进行初始化;
和/或,
所述主程序模块,进一步用于接收外部输入的控制指令,根据所述控制指令控制对所述至少一个测试模块进行控制。
CN202010043942.3A 2020-01-15 2020-01-15 测试装置 Pending CN111209209A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010043942.3A CN111209209A (zh) 2020-01-15 2020-01-15 测试装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010043942.3A CN111209209A (zh) 2020-01-15 2020-01-15 测试装置

Publications (1)

Publication Number Publication Date
CN111209209A true CN111209209A (zh) 2020-05-29

Family

ID=70787526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010043942.3A Pending CN111209209A (zh) 2020-01-15 2020-01-15 测试装置

Country Status (1)

Country Link
CN (1) CN111209209A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101587441A (zh) * 2008-05-20 2009-11-25 株式会社理光 辅助软件开发的设备、方法和系统
CN101604273A (zh) * 2009-07-23 2009-12-16 成都方程式电子有限公司 指纹识别系统的自动测试方法及装置
CN104809054A (zh) * 2014-01-23 2015-07-29 腾讯科技(深圳)有限公司 实现程序测试的方法和系统
CN105071998A (zh) * 2015-09-11 2015-11-18 百度在线网络技术(北京)有限公司 基于流量控制的测试系统及方法
CN108829556A (zh) * 2018-06-27 2018-11-16 中国建设银行股份有限公司 一种自动化测试方法及装置
CN110119307A (zh) * 2018-02-05 2019-08-13 上海交通大学 数据处理请求的处理方法、装置、存储介质及电子装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101587441A (zh) * 2008-05-20 2009-11-25 株式会社理光 辅助软件开发的设备、方法和系统
JP2010003291A (ja) * 2008-05-20 2010-01-07 Ricoh Co Ltd ソフトウェア開発支援装置、方法、プログラム及びコンピュータ読取可能な記録媒体
CN101604273A (zh) * 2009-07-23 2009-12-16 成都方程式电子有限公司 指纹识别系统的自动测试方法及装置
CN104809054A (zh) * 2014-01-23 2015-07-29 腾讯科技(深圳)有限公司 实现程序测试的方法和系统
CN105071998A (zh) * 2015-09-11 2015-11-18 百度在线网络技术(北京)有限公司 基于流量控制的测试系统及方法
CN110119307A (zh) * 2018-02-05 2019-08-13 上海交通大学 数据处理请求的处理方法、装置、存储介质及电子装置
CN108829556A (zh) * 2018-06-27 2018-11-16 中国建设银行股份有限公司 一种自动化测试方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
伊晓峰等: "基于uC/OS-Ⅱ的编译型PLC运行系统设计", 《山东科技》 *

Similar Documents

Publication Publication Date Title
EP1734442A1 (en) Modular code generation
CN109726135A (zh) 一种多核调试方法、装置及计算机可读存储介质
US10789192B2 (en) System and method for programming data transfer within a microcontroller
US7856625B2 (en) Program conversion device and method
CN108959094B (zh) 一种基于数据结构的测试程序的定义和应用方法
EP0354654B1 (en) Method and apparatus for marking emulation analysis states
CN111209209A (zh) 测试装置
KR20050098514A (ko) 주변 장치 초기화를 위한 부팅 시스템 및 부팅 방법
JP2008135008A (ja) プログラムモジュール検証方式
CN111258555A (zh) 软件实现装置
JP4024026B2 (ja) 半導体装置および評価装置
US11429357B2 (en) Support device and non-transient computer-readable recording medium recording support program
CN112389506A (zh) 列车信号系统及其联动方法
CN106405373B (zh) 一种主动式测试向量匹配方法
CN210591733U (zh) 应用于车载娱乐主机的异常日志获取系统及车载娱乐主机
US20220405242A1 (en) Method for processing a system image
JP2013080386A (ja) 情報処理装置、アドレス管理方法
US20240176632A1 (en) Method for generating and verifying automotive embedded software based on autosar
US7434201B2 (en) Method and apparatus providing for extendable interaction between firmware and operating systems on digital devices
CN116028177A (zh) 一种基于业务数据模型和管道序列化操作的跨处理器外设适配方法
JPH07306800A (ja) デバッグ方式
CN118013903A (zh) 文件操作验证系统、验证方法、设备及介质
CN114297059A (zh) 一种面向异步设备的虚拟仿真实现系统及其方法
CN115933912A (zh) 触控检测电路、芯片及设备
CN116702662A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200529