CN101925883A - 程序测试装置以及程序 - Google Patents

程序测试装置以及程序 Download PDF

Info

Publication number
CN101925883A
CN101925883A CN2009801037903A CN200980103790A CN101925883A CN 101925883 A CN101925883 A CN 101925883A CN 2009801037903 A CN2009801037903 A CN 2009801037903A CN 200980103790 A CN200980103790 A CN 200980103790A CN 101925883 A CN101925883 A CN 101925883A
Authority
CN
China
Prior art keywords
program
information
tested object
test
detecting information
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
CN2009801037903A
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.)
Tokyo Electron Ltd
Original Assignee
Tokyo Electron 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 Tokyo Electron Ltd filed Critical Tokyo Electron Ltd
Publication of CN101925883A publication Critical patent/CN101925883A/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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • 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

Abstract

在以往的群管理系统中,存在无法容易地知道处理参数的改变能够影响的一个以上的方案的问题。通过本发明的处理信息管理装置能够容易地知道处理参数的改变能够影响的一个以上的方案,所述处理信息管理装置包括:方案存储部,将作为与两个以上的控制装置所保持的处理有关的信息的两个以上的方案分别与所述两个以上的控制装置对应起来进行存储;接收部,对作为关于包含在方案中的处理参数的信息的处理参数信息进行接收;方案信息获取部,使用所述处理参数信息从所述方案存储部检索方法,并获取作为关于该检索到的方案的信息的方法信息;以及输出部,输出所述方案信息获取部获取的方案信息。

Description

程序测试装置以及程序
技术领域
本发明主要涉及对控制半导体制造装置等的硬件的程序进行测试的程序测试装置等。
背景技术
在以往的程序测试装置中,有自动地反复执行程序的测试的程序开发装置(例如参考专利文献1)。本装置进行以下动作,即:向自动测试装置输入想要进行测试的命令,自动测试装置向状态监视装置询问仿真装置能否接收来自自动测试装置的命令。如果能够接收命令,则将命令发送给仿真装置。仿真装置按照所接收的命令来执行测试程序,并将执行结果发送给自动测试装置。自动测试装置保存执行结果,并通过对所有的命令反复执行来进行测试程序的测试。
专利文献1:日本专利文献特开2003-22199号公报(第1页、图1等)。
发明内容
然而,在以往的程序测试装置中,在进行正常响应以外的异常响应或动作不良等的测试时,通常通过手动操作来改变模拟器侧的动作来实施测试。因此,在异常响应或动作不良的情况的测试中存在手动操作,测试繁琐并会产生错误。
本发明的第一方面的程序测试装置,包括:测试对象程序存储部,其存储作为测试对象的程序的测试对象程序;模拟器程序存储部,其存储模拟器程序,所述模拟器程序是模拟硬件的动作的程序,并且是进行与作为从测试对象程序传递的信息的程序信息和动作模式对应的动作的程序;测试信息接收部,其接收作为为了对所述测试对象程序进行测试而提供给该测试对象程序的信息的、具有输入信息和动作模式的测试信息;测试控制部,获取所述测试信息所具有的动作模式并传递给所述模拟器程序;以及执行部,将所述测试信息具有的输入信息提供给测试对象程序并执行该测试对象程序,并且使用作为该测试对象程序的执行结果的程序信息和所述测试控制部传递给所述模拟器程序的动作模式来执行所述模拟器程序。
通过该结构,能够自动地切换模拟器程序的动作模式来进行测试。因此,特别是能够自动地容易进行硬件错误时的测试对象程序的测试。
另外,与本发明的第一方面相对,本发明的第二方面的程序测试装置,还包括:测试信息存储部,存储有两个以上的测试信息;以及自动测试部,依次从所述测试信息存储部读出两个以上的测试信息,并传递给所述测试信息接收部。
通过该结构,能够对两个以上的测试项目自动地进行测试。
另外,与本发明的第二方面相对,本发明的第三方面的程序测试装置,其中:所述测试信息还具有作为测试对象程序的正常的动作结果的正解信息,所述程序测试装置还包括测试结果判断部,所述测试结果判断部获取所述执行部的所述测试对象程序的动作结果,并使用该动作结果和所述测试信息具有的正解信息判断测试为正常或异常,输出该判断结果。
通过该结构,能够进行测试结果的正常或异常的自动判断。
另外,与本发明的第一至第三中任一方面相对,本发明的第四方面的程序测试装置,其中:所述测试信息还具有所述模拟器程序进行动作所使用的IO值,所述测试控制部获取所述测试信息所具有的动作模式和IO值并传递给所述模拟器程序,所述执行部将所述测试信息所具有的输入信息提供给测试对象程序并执行该测试对象程序,并且使用作为该测试对象程序的执行结果的程序信息以及所述测试控制部传递给所述模拟器程序的动作模式和IO值来执行所述模拟器程序。
根据该结构,能够进行以下测试:自动地进行模拟器程序的动作模式并且自动地改变模拟器程序所使用的IO值。因此,特别是能够自动地容易进行硬件错误是的测试对象程序的测试。
另外,与本发明的第一至第三中任一方面相对,本发明的第五方面的程序测试装置,其中:所述测试控制部还进行获取作为所述模拟器程序的动作结果的IO值并输出的处理。
通过该结构,能够正确把握并且判断测试对象程序的动作结果。
另外,与本发明的第一至第五中任一方面相对,本发明的第六方面的程序测试装置,其中:所述动作模式至少具有正常模式和异常模式。
通过该结构,至少能够自动地进行正常模式和异常模式这两者的测试。
另外,本发明的第七方面的的程序测试装置,包括:测试对象程序存储部,其存储测试对象程序,所述测试对象程序是测试对象的程序,并且是作为进行硬件的控制的程序;模拟器程序存储部,其存储作为模拟硬件错误的动作的程序的模拟器程序;测试信息接收部,其接收作为为了对所述测试对象程序进行测试而提供给该测试对象程序的信息的、具有输入信息和动作模式的测试信息;测试控制部,其获取所述测试信息所具有的动作模式;执行部,其将所述测试信息具有的输入信息提供给测试对象程序并执行该测试对象程序,并且如果所述测试控制部获取的动作模式是正常模式则将作为所述测试对象程序的执行结果的程序信息传递给硬件使硬件动作,如果所述测试控制部获取的动作模式不是正常模式,则使用作为该测试对象程序的执行结果的程序信息来执行所述模拟器程序。
通过该结构,即使是在难以发生错误状态的硬件上进行动作的测试对象程序也针对正常时和异常时两者进行测试。
另外,该第八发明的程序测试装置相对于第七发明是以下程序测试装置,还包括:测试信息存储部,存储有两个以上的测试信息;以及自动测试部,依次从所述测试信息存储部读出两个以上的测试信息,并传递给所述测试信息接收部。
通过该结构,对两个以上的测试项目自动地进行测试。
另外,本发明的第九发明的程序测试装置相对于第八发明是以下程序测试装置,所述测试信息还具有作为测试对象程序的正常的动作结果的正解信息,所述程序测试装置还包括测试结果判断部,其获取所述执行部的所述测试对象程序的动作结果,并使用该动作结果和所述测试信息具有的正解信息判断测试正常还是异常,并输出该判断结果。
通过该结构,能够进行测试结果的正常、异常的自动判断。
发明的效果
根据本发明的程序测试装置,测试对象程序能够容易地进行硬件发生错误的情况下的测试。
附图说明
图1是实施方式1中的程序测试装置的框图;
图2是对该程序测试装置的动作进行说明的流程图;
图3是表示该测试信息管理表的图;
图4是表示该测试信息管理表的图;
图5是该以往的程序测试装置的概念图;
图6是由该实施方式说明的程序测试装置的概念图;
图7是实施方式2的程序测试装置的框图;
图8是对该程序测试装置的动作进行说明的流程图;
图9是对该测试执行处理的动作进行说明的流程图;
图10是该计算机系统的概略图;
图11是该计算机系统的框图。
具体实施方式
下面参考附图对程序测试装置等的实施方式进行说明。由于在实施方式中标注相同标号的结构要件执行同样的动作,因此有时省略再次说明。
(实施方式1)
在本实施方式中,对在硬件上工作的软件进行测试的程序测试装置进行说明。
图1是本实施方式中的程序测试装置的框图。
程序测试装置1包括接收部11、测试对象程序存储部12、模拟器程序存储部13、测试信息存储部14、自动测试部15、测试信息接收部16、测试控制部17、执行部18、以及测试结果判断部19。
接收部11接收来自用户的输入。接收部11接收的输入例如是指示测试开始的测试开始指示等的各种指示或对测试所需要的信息(动作模式或IO值等信息)的输入等。各种指示等的输入单元可以是基于数字键、键盘、鼠标或者菜单画面的单元等的任何一种输入单元。接收部11能够通过数字键或键盘等输入单元的设备驱动器和菜单画面的控制软件等来实现。
测试对象程序存储部12存储有作为测试对象的程序的测试对象程序。测试对象程序通常是硬件的控制程序。另外,测试对象程序例如是半导体制造装置或FPD制造装置等硬件的控制程序。测试对象程序存储部12优选是非易失性的记录介质,但是即使易失性的记录介质也能够实现。不考虑在测试对象程序存储部12存储测试对象程序的过程。例如,可以是经由记录介质在测试对象程序存储部12存储测试对象程序,也可以是在测试对象程序存储部12存储经由通信线路等发送而来的测试对象程序,或者是在测试对象程序存储部12存储经由输入设备输入的测试对象程序。
模拟器程序存储部13存储有模拟器程序。模拟器程序是对硬件的动作进行模拟的程序。模拟器程序通常是执行与作为由测试对象程序传递的信息的程序信息和动作模式相应的动作的程序。程序信息是指测试对象程序传递给控制对象的硬件的数据(信息)。动作模式是指硬件的动作的模式,至少具有表示为正常的模式的正常模式以及表示为异常的模式的异常模式。另外,异常模式可以存在非响应模式、报警模式以及中途正常模式等两种以上模式,所述非响应模式是没有响应的模式,所述报警模式是产生报警的模式,所述中途正常模式直至中途的处理为止正常而在之后变为异常。另外,模拟器程序例如是被称为所谓测试桩的软件,其是被使用于测试的软件。模拟器程序可以执行写入作为该模拟器程序的动作结果的IO值的处理。模拟器程序例如可具有包括相同函数名或者类函数名等的多个程序。多个程序例如是指进行与正常模式对应的动作的程序、以及进行与异常模式对应的动作的程序。IO值是指硬件所保持,并通过测试对象的程序的动作来进行变更或读出的、存储在某个区域的信息(数据)。模拟器程序存储部13优选是非易失性的记录介质,但是即使是易失性的记录介质也能够实现。不考虑在模拟器程序存储部13存储模拟器程序的过程。例如,可以经由记录介质在模拟器程序存储部13存储模拟器程序,也可以在模拟器程序存储部13存储经由通信线路等发送而来的模拟器程序,或者可以在模拟器程序存储部13存储经由输入设备输入的模拟器程序。
测试信息存储部14存储两个以上的测试信息。测试信息是与一个测试项目对应的信息。测试信息通常具有输入信息和动作模式。输入信息是指为了对测试对象程序进行测试而赋予给该测试对象程序的信息。输入信息例如是指赋予程序的参数。当在测试信息中不具有动作模式的情况下,动作模式是默认值(例如正常模式)。测试信息也可以具有作为测试对象程序的正常的动作结果的正解信息。正解信息可以是测试对象程序的返回值,也可以是作为测试对象程序的执行结果而存储在硬件的存储区域的值(IO值等)。测试信息可以具有模拟器程序用于动作的IO值。测试信息存储部14优选是非易失性的记录介质,但是即使是易失性的记录介质也能够实现。不考虑在测试信息存储部14存储测试信息的过程。例如,可以经由记录介质在测试信息存储部14存储测试信息,也可以在测试信息存储部14存储经由通信线路等发送而来的测试信息,或者可以在测试信息存储部14存储经由输入设备输入的测试信息。
自动测试部15从测试信息存储部14依次读出两个以上测试信息,并依次将测试信息传递给测试信息接收部16。自动测试部15通常在接收部11接收到测试开始指示的情况下从测试信息存储部14依次读出两个以上的测试信息并传递给测试信息接收部16。自动测试部15反复执行与多个测试信息对应的测试项目,来实现自动测试的功能。自动测试部15通常能够通过MPU或存储器等实现。自动测试部15的处理步骤通常由软件实现,该软件记录在ROM等记录介质。但也可以通过硬件(专用电路)实现。
测试信息接收部16接收测试信息。测试信息如上所述通常具有作为为了对测试对象程序进行测试而赋予该测试对象程序的信息的输入信息和动作模式。测试信息接收部16可以从自动测试部15接收测试信息,也可以通过用户的手动输入来接收测试信息。测试信息接收部16能够通过MPU或存储器等实现。测试信息接收部16的处理步骤通常由软件实现,该软件记录在ROM等记录介质中。但也可以通过硬件(专用电路)实现。另外,测试信息接收部16可以由键盘等输入单元的设备驱动器或菜单画面的控制软件等实现。
测试控制部17获取测试信息接收部16接收的测试信息具有的动作模式,并传递给模拟器程序。在动作模式是默认值的情况下,测试控制部17可以不将动作模式传递给模拟器程序。另外,测试控制部17可以获取测试信息具有的动作模式和IO值,并传递给模拟器程序。并且,测试控制部17可以执行获取模拟器程序写入的IO值并输出的处理。测试控制部17例如可以通过动作模式改写模拟器程序或模拟器程序所使用的数据。假设该改写处理是与将动作模式传递给模拟器程序的处理相同含义。另外,测试控制部17例如可以将IO值写入到预先确定的文件或变量。该处理也是将IO值传递给模拟器程序的处理。测试控制部17通常能够通过MPU或存储器等实现。测试控制器17的处理步骤通常由软件实现,该软件被记录在ROM等记录介质。但也可以由硬件(专用电路)实现。
执行部18将测试信息具有的输入信息赋予测试对象程序并执行该测试对象程序,并且使用作为该测试对象程序的执行结果的程序信息和测试控制部17传递给模拟器程序的动作模式来执行模拟器程序。即,例如通过由执行部18执行模拟器程序,来根据动作模式而被启动的模拟器程序的类函数(或者函数等)不同。例如如果动作模式不同,则虽然具有相同的类函数名但执行不同的类函数。
也有赋予测试对象程序的输入信息是NULL的情况。另外,执行部18可以将测试信息具有的输入信息赋予测试对象程序并执行该测试对象程序,并且使用作为该测试对象程序的执行结果的程序信息和测试控制部17传递给模拟器程序的动作模式和IO值来执行模拟器程序。执行部18通常能够通过MPU或存储器等实现。执行部18的处理步骤通常由软件实现,该软件记录在ROM等记录介质。但也可以由硬件(专用电路)实现。
测试结果判断部19获取执行部18中的测试对象程序的动作结果,并使用该动作结果和测试信息所具有的正解信息来判断测试为正常或异常,输出该判断结果。测试结果判断部19可以读出IO值并判断是否与预想的IO值(测试信息所具有的正解信息)一致,并输出该判断结果。正解信息是指测试的结果的信息,其是测试对象程序的返回值、作为测试对象程序的动作的结果的IO值、或其他存储介质内的信息等。测试结果判断部19通常能够通过MPU或存储器等实现。测试结果判断部19的处理步骤通常由软件实现,该软件记录在ROM等记录介质。但也可以由硬件(专用电路)实现。
接着,使用图2的流程图对程序测试装置的动作进行说明。
(步骤S201)接收部11判断是否接收到测试开始指示。如果接收到测试开始指示则进入到步骤S202,如果没有接收到测试开始指示则返回到步骤S201。
(步骤S202)自动测试部15将1代入到计数器i。
(步骤S203)自动测试部15判断在测试信息存储部14中是否存在第i个测试信息。如果存在第i个测试信息则进入到步骤S204,如果不存在第i个测试信息则结束处理。
(步骤S204)测试控制部17获取第i个测试信息具有的动作模式。
(步骤S205)测试控制部17将在步骤S204中获取的动作模式传递给模拟器程序。这里,测试控制部17可以在模拟器程序所使用的动作模式的存储区域(文件或存储器等区域)写入在步骤S204中获取的动作模式。该处理也是将动作模式传递给模拟器程序的处理。
(步骤S206)测试控制部17获取第i个测试信息具有的IO值。
(步骤S207)测试控制部17将在步骤S206中获取的IO值传递给模拟器程序。这里,测试控制部17可以在IO值的存储区域(文件或存储器等区域)写入在步骤S206中获取的IO值。该处理也是将IO值传递给模拟器程序的处理。
(步骤S208)执行部18获取第i个测试信息具有的输入信息。
(步骤S209)执行部18将测试信息具有的输入信息赋予测试对象程序,并执行该测试对象程序。通常,通过执行测试对象程序,测试对象程序和模拟器程序进行数据的交换,模拟器程序也将被执行。在执行模拟器程序时,模拟器程序使用在步骤S205中传递的动作模式以及在步骤S207中传递的IO值进行动作。另外,在测试信息不具有输入信息的情况下,执行部18不向测试对象程序赋予输入信息。
(步骤S210)测试控制部17判断是否进行读入IO值的处理。测试控制部17例如在输入信息包含指示IO值的读入的命令的情况下,判断为进行读入IO值的处理。在进行读入IO值的处理的情况下进入步骤S211,在不进行读入IO值的处理的情况下进入步骤S212。
(步骤S211)测试控制部17读入IO值。
(步骤S212)测试结果判断部19获取执行部18中的测试对象程序的动作结果,并使用该动作结果和测试信息具有的正解信息判断测试为正常或异常。
(步骤S213)测试结果判断部19输出步骤S212中的判断结果。
(步骤S214)自动测试部15使计数器i加1。返回到步骤S203。
在图2的流程图中,通过切断电源或结束处理的插入来结束处理。
下面使用两个具体示例对本实施方式的程序测试装置的具体动作进行说明。
(具体示例1)
当前,图3所示的测试信息管理表存储在测试信息存储部14中。测试信息管理表是对一个以上的测试信息进行管理的表。测试信息管理表保持有一个以上的具有“ID”和“测试信息”的记录。“ID”是识别记录的属性,其存在用于进行表的管理。属性“测试信息”中的测试信息这里以程序的形式描述。
在测试信息中,以“#”开始的行(图3的(1)等)表示注释行。另外,图3的(2)和(3)的行是设定用于模拟器程序进行动作的IO值的类函数。图3的(2)表示将“DO_FullOpen”的IO值设定为称为“CONTROL”的常数值。图3的(3)表示将“DO_FullClose”的IO值设定为称为“FULL_CLOSE”的常数值。另外,图3的(4)表示启动(测试)存储在测试对象程序存储部12的测试对象程序的“InternalFullOpen()”。这里,可以说“InternalFullOpen()”是赋予测试对象程序的输入信息的例子。另外,图3的(4)中的“Common_OK”是测试信息所具有的正解信息的例子。即,如果作为“InternalFullOpen()”的执行的结果的返回值是“Common_OK”,则判断为在该时刻的测试结果是正常的。与“Common_OK”对应的值(例如“0”或者“1”等)是预先确定的。
另外,图3的(5)和(6)是用于获取作为模拟器程序的动作结果的IO值并判断是否与假定的结果(正解信息)一致的描述。在图3的(5)中示出了获取“DO_FullOpen”的IO值并判断是否为称为“FULL_OPEN”的常数值。“FULL_OPEN”是测试信息具有的正解信息。另外在图3的(6)中,表示获取“DO_FullClose”的IO值并判断是否成为称为“CONTROL”的常数值。“CONTROL”是测试信息具有的正解信息。另外,图3的测试信息不具有动作模式。即,动作模式是默认的正常模式。
在该状况下,假设用户输入了测试开始指示。于是,接收部11接收测试开始指示。
接着,自动测试部15从图3的测试信息管理表读出第一个测试信息(“ID=1”的记录)。
并且,测试控制部17依次分析并执行图3的“ID=1”的记录。即,测试控制部17忽略第一行测试信息所具有的注释行(图3的(1))。接着,测试控制部17获取第一个的测试信息所具有的“DO_FullOpen”的IO值“CONTROL”并配置在存储器上。并且,测试控制部17为了模拟器程序能够使用所获取的“DO_FullOpen”的IO值“CONTROL”,而将值“CONTROL”写入到“DO_FullOpen”的区域(图3的(2))。另外,测试控制部17获取第一个测试信息所具有的“DO_FullClose”的IO值“FULL_CLOSE”并配置在存储器上。并且,测试控制部17为了模拟器程序能够使用所取得的“DO_FullClose”的IO值“FULL_CLOSE”,而将值“FULL_CLOSE”写入到“DO_FullClose”的区域(图3的(3))。
接着,执行部18获取第一测试信息所具有的输入信息“InternalFullOpen()“。并且,执行部18起动测试对象程序并执行“InternalFullOpen()”。并且,通过执行“InternalFullOpen()”通常IO值被适当地改写(图3的(4))。
接着,测试结果判断部19获取在执行部18中的测试对象程序的动作结果(作为“InternalFullOpen()”的执行结果的返回值)。并且,对该返回值和测试信息所具有的正解信息“Common_OK”进行比较。并且。如果两者一致则判断为测试正常,如果两者不一致则判断为测试异常。这里,例如假设作为“InternalFullOpen()”的执行结果的返回值是“Common_OK”。然后,由于返回值和正解信息“Common_OK”一致,因此测试结果判断部19判断为在该阶段的测试是正常的(图3的(4))。
接着,测试控制部17通过图3的(5)和(6)的解析的执行来读入“DO_FullOpen”的IO值。并且,测试结果判断部19判断作为测试对象程序的动作结果的“DO_FullOpen”的IO值和测试信息所具有的正解信息“Full_Open”是否一致。并且,如果两者一致则判断为测试正常,如果两者不一致则判断为测试异常。接着,同样地,测试结果判断部19获取作为测试对象程序的动作结果的“DO_FullClose”的IO值,并判断是否与测试信息所具有的正解信息“FULL_CLOSE”一致。并且,如果两者一致则判断为测试正常,如果两者不一致则判断为测试异常。并且,测试结果判断部19输出判断结果(例如“正常”)。这里,输出可以是指显示到显示器,也可以是指存储到记录介质。另外,在输出时,测试结果判断部19将测试信息的识别号码(ID)和判断结果对应起来并输出。
根据以上处理结束“ID=1”的测试信息的处理。在上述的测试结果判断部19中的正常、异常的判断过程中,在判断为不一致等的情况下,测试结果判断部19例如输出表示“异常”的判断结果。
接着,自动测试部15依次从图3的测试信息管理表读出第二个之后的测试信息(“ID=2”的记录以后的记录),并与第一个测试信息一样地依次解析执行并输出判断结果。
由于对图3的(1)到(6)等的测试信息的解析执行的处理是公知技术,因此省略详细的说明。
(具体示例2)
现在,图4所示的测试信息管理表存储在测试信息存储部14。在图4中,“ID=1”的测试信息是用于进行DRP(干燥真空泵)的正常动作的测试的信息。另外“ID=2”的测试信息是用于进行DRP的超时(异常动作)测试的信息。另外,在图4中,“TagRawWrite”表示设定IO值的函数(类函数)。即,(1)表示在IO值“DO_RUN”中设定值“STOP”。(2)表示在IO值“DI_RUN”中设定值“STOP”。(3)表示在IO值“DI_ALARM”中设定值“NORMAL”。另外“TagRead”表示获取IO值并确认是否正常的函数。即,(4)表示确认在IO值“DO_RUN”中设定值“STOP”。(5)表示确认在IO值“DI_RUN”中设定值“STOP”。(6)表示确认在IO值“DI_ALARM”中设定值“NORMAL”。“SetPatarn”表示设定动作模式的函数。即,(7)表示将DO_RUN的动作模式设定在“NORMAL”。(9)表示确认在IO值“DO_RUN”中设定值“RUN”。
在该状况下,假设用户输入了测试开始指示。于是接收部11接收测试开始指示。
接着,自动测试部15从图4的测试信息管理表读出第一个测试信息(“ID=1”的记录)。
并且,测试控制部17依次解析并执行图4的“ID=1”的记录中的信息(函数)。即,根据图4的(1),测试控制部17获取第一个测试信息所具有的“DO_RUN”的IO值“STOP”并配置在存储器上。并且,测试控制部17为了使模拟器程序能够使用所获取的“DO_RUN”的IO值“STOP”而将其写入到“DO_RUN”的区域。另外,根据图4的(2),测试控制部17获取第一个测试信息所具有的“DI_RUN”的IO值“STOP”并配置在存储器上。并且,测试控制部17为了使模拟器程序能够使用所获取的“DI_RUN”的IO值“STOP”而将其写入到“DI_RUN”的区域中。另外,根据图4的(3),测试控制部17获取第一个测试信息所具有的“DI_ARARM”的IO值“NORMAL”并配置在存储器上。并且,测试控制部17为了使模拟器程序能够使用所获取的“DI_ARARM”的IO值“NORMAL”而将值“NORMAL”写入到“DI_ARARM”的区域。
接着,根据图4的(4),测试控制部17获取“DO_RUN”的IO值。并且,测试结果判断部19判断“DO_RUN”的IO值是否是“STOP”。另外,根据图4的(5),测试控制部17获取“DI_RUN”的IO值。并且,测试结果判断部19判断“DI_RUN”的IO值是否是“STOP”。并且,根据图4的(6),测试控制部17获取“DI_ARARM”。并且,测试结果判断部19判断“DI_ARARM”的IO值是否是“NORMAL”。
接着,根据图4的(7),测试控制部17获取第一个测试信息所具有的动作模式“DO_RUN、NORMAL”。动作模式“DO_RUN、NORMAL”是所说的“DO_RUN”的动作为“NORMAL”的动作模式。并且,测试控制部17将“DO_RUN、NORMAL”传递给模拟器程序。即“DO_RUN”的动作被设定为“NORMAL”。
接着,根据图4的(8),执行部18获取第一个测试信息所具有的输入信息“DRP.Run()”。并且,执行部18启动测试对象程序并执行“DRP.Run()”。并且,通过执行“DRP.Run()”DRP进行动作,通常IO值被适当地改写。
接着,测试结果判断部19获取执行部18中的测试对象程序的动作结果(作为“DRP.Run()”的执行结果的返回值)。并且,对该返回值和测试信息所具有的正解信息进行比较。并且,如果两者一致则判断为测试正常,如果两者不一致则判断为测试异常。
接着,根据图4的(9),测试控制部17获取第一个测试信息所具有的输入信息“TagRead(DI_RUN,RUN)”。并且,测试控制部17通过“TagRead(DI_RUN,RUN)”的解析执行,来读入“DI_RUN”的IO值。并且,测试结果判断部19判断作为测试对象程序的动作结果的“DI_RUN”的IO值和测试信息所具有的正解信息“RUN”是否一致。并且,如果两者一致则测试结果判断部19判断为测试正常,如果两者不一致则测试结果判断部19判断为测试异常。并且,测试结果判断部19输出判断结果(例如“正常”)。这里,输出可以是指显示到显示器,也可以是指存储到记录介质。另外,在输出时,测试结果判断部19将测试信息的识别号码(ID)和判断结果对应起来并输出。
根据以上处理,“ID=1”的测试信息的处理结束。当在上述的测试结果判断部19中的正常、异常的判断过程中判断为不一致等的情况下,测试结果判断部19例如输出表示“异常”的判断结果。
接着,自动测试部15从图4的测试信息管理表读出第二个测试信息(“ID=2”的记录)。
并且,测试控制部17依次解析图4的“ID=2”的记录中的函数并执行。即,测试控制部17对图4的“ID=2”的记录中的(10)到(15)进行与(1)到(6)一样的处理。
接着,测试控制部17从第二个测试信息(16)获取动作模式“DO_RUN,TIMEOUT”。动作模式“DO_RUN,TIMEOUT”是所说的“DO_RUN”的动作为“TIMEOUT”这样的动作模式。并且,测试控制部17将“DO_RUN,TIMEOUT”传递给模拟器程序。即“DO_RUN”的动作被设定为“TIMEOUT”。
接着,执行部18从第二个测试信息(17)获取输入信息“DRP.Run()”。并且,执行部18启动测试对象程序并执行“DRP.Run()”。并且,通过执行“DRP.Run()”而使DRP动作,通常IO值被适当地改写。
接着,测试结果判断部19获取执行部18中的测试对象程序的动作结果(作为“DRP.Run()”的执行结果的返回值)。并且,对该返回值和测试信息所具有的正解信息进行比较。并且,如果两者一致则判断为测试正常,如果两者不一致则判断为测试异常。
接着,测试控制部17获取第二个测试信息所具有的输入信息“TagRead(DI_RUN,STOP)。并且,测试控制部17通过“TagRead(DI_RUN,STOP)的解析执行来读入“DI_RUN”的IO值。并且,测试结果判断部19判断作为测试对象程序的动作结果的“DI_RUN”的IO值与测试信息所具有的正解信息“STOP”是否一致。并且,如果两者一致则测试控制部17判断为测试正常,如果两者不一致则测试控制部17判断为测试异常。并且,测试结果判断部19输出判断结果(例如“正常”)。这里输出可以是指显示到显示器,也可以是指存储到记录介质。另外,在输出时,测试结果判断部19将测试信息的识别号码(ID)和判断结果对应起来并输出。
根据以上处理,“ID=2”的测试信息的处理结束。在上述的测试结果判断部19的正常、异常的判断过程中,在判断为不一致等的情况下,测试结果判断部19例如输出表示“异常”的判断结果。
接着,自动测试部15依次从图4的测试信息管理表读出第三个以后的测试信息(“ID=3”的记录以后的记录),并与第一个、第二个测试信息同样地依次进行解析并执行,输出判断结果。
接着,对本程序测试装置的概念进行说明。图5示出了以往的程序测试装置的概念图。即,以往的程序测试装置具有自动测试程序51、测试对象程序52以及模拟器程序53。并且,自动测试程序51自动地执行一个以上的测试项目。测试对象程序52是与测试对象程序存储部12的测试对象程序一样的,其是成为测试的对象的程序。模拟器程序53是与模拟器程序存储部13的模拟器程序一样的,其是模拟设备的响应的程序。模拟器程序针对一个函数(测试桩)具有正常模式的函数(测试桩)和异常模式的函数(测试桩)。图5中的“通信”可以是指数据通信、可以是指数据的收发、也可以是指函数的调出等。即,所谓“通信”只要是指测试对象程序52和模拟器程序53协调地进行动作即可。
在这样的程序测试装置中,作为测试对象程序的测试不只是正常地进行动作,也需要测试由设备产生报警或者产生启动超时等的异常情况。即,在程序测试装置中,需要对正常模式和异常模式进行测试,在异常模式中也需要对作为不进行响应的模式的非响应模式、作为发生报警的模式的报警模式、在中途的处理为正常而在之后变为异常的中途正常模式等两个以上的动作模式进行测试。但是,在以往的程序测试装置中,预先在模拟器程序侧设定动作模式,对测试对象程序进行测试。即,在对多个动作模式进行测试的情况下,通过手动操作进行改写多个动作模式并且在切换使其动作的函数等的状态下进行测试,无法汇总多个动作模式来自动地进行测试。
另一方面,在上述实施方式中说明的程序测试装置的概念图为图6。该程序测试装置具有自动测试程序61、测试对象程序62、模拟器程序63以及自动控制用程序64。自动控制用程序64主要与上述的测试控制部17相对应。即,自动控制用程序64向模拟器程序63提供通过NUnit等自动测试程序61进行动作模式的切换的接口,由此能够自动地连续对多个动作模式进行测试。另外,在本程序测试装置中,还提供了通过自动控制用程序64改写IO的状态(IO值)的功能,设备的异常动作等也能够从测试对象程序62侧进行模拟。在该程序测试装置中,通过上述的结构,能够通过一个测试程序对正常情况、异常情况进行测试。另外,由于能够改写、读取IO的状态(IO值),从而不仅能够确认控制指示的执行结果,还能够确认实际在模拟器程序?3侧的值发生了变化的情况,因此能够进行测试对象程序?2的输入部(输入处理)和输出部(输出处理)的测试。对于NUnit在http://www.divakk.co.jp/aoyagi/csharp_tips_nunit.html等具有说明。
以上,根据本实施方式,关于测试对象程序,也能够容易地进行硬件错误时的测试对象程序的测试。更具体地说,能够自动地连续对多个动作模式进行测试。另外,根据本实施方式,也提供了通过自动控制用程序64改写IO的状态(IO值)的功能,设备的异常动作等也能够从测试对象程序62侧进行高精度的模拟。并且,根据本实施方式,由于将IO值设为可读取,不仅是控制指示的执行结果,还能够确认实际在模拟器程序侧的值发生了变化的情况,因此能够进行测试对象程序的输入部和输出部的测试。
在本实施方式中,当然是不必考虑测试信息的内容的。
另外,本实施方式的处理可以由软件实现。并且,可以通过软件下载等来发布该软件。另外,可以将该软件记录在CD-ROM等的记录介质中来进行传播。该方式也适合本说明书中的其他实施方式。实现本实施方式中的程序测试装置的软件是以下程序。也即是说,该程序是用于使计算机作为以下各部发挥功能的程序,即:测试信息接收部,接收为了对测试对象程序进行测试而赋予该测试对象程序的信息的、具有输入信息和动作模式的测试信息;测试控制部,获取所述测试信息所具有的动作模式,并传递给模拟硬件动作的模拟器程序;以及执行部,将所述测试信息所具有的输入信息赋予测试对象程序并执行该测试对象程序,并且使用作为该测试对象程序的执行结果的程序信息和所述测试控制部传递给所述模拟器程序的动作模式来执行所述模拟器程序。
另外,在上述程序中,优选的是使计算机发挥以下功能的程序:所述测试信息还具有所述模拟器程序动作所使用的IO值,所述测试控制部获取所述测试信息具有的动作模式和IO值并传递给所述模拟器程序,所述执行部将所述测试信息所具有的输入信息赋予测试对象程序并执行该测试对象程序,并且使用作为该测试对象程序的执行结果的程序信息和所述测试控制部传递给所述模拟器程序的动作模式和IO值来执行所述模拟器程序。
另外,在上述程序中优选的是使计算机发挥以下功能的程序:使所述测试控制部进行获取作为所述模拟器程序的动作结果的IO值并输出的处理。
(实施方式2)
在本实施方式中,对将正常系统的测试信息赋予硬件并将异常系统的测试信息赋予模拟器程序的程序测试装置进行说明。本实施方式中的程序测试装置是如下述的装置,即:所说的在正常模式的情况下使用硬件进一步提高精度来进行测试,在异常模式的情况下使用模拟器程序来进行测试。通过该处理,能够仅通过软件来进行难以由硬件生成其状态(通常为异常模式)的测试情况。
图7是本实施方式中的程序测试装置2的框图。程序测试装置2具有接收部11、测试对象程序存储部12、模拟器程序存储部23、测试信息存储部14、自动测试部25、测试信息接收部16、测试控制部27、执行部28以及测试结果判断部29。
模拟器程序存储部23存储作为模拟硬件的错误动作的程序的模拟器程序。所谓模拟器程序通常进行与从测试对象程序传递的程序信息对应的动作。不过也可以是仅返回错误代码等的统一的处理。模拟器程序存储部23优选的是为非易失性的记录介质,但是即使易失性的记录介质也能够实现。不考虑在模拟器程序存储部23存储模拟器程序的过程。例如可以经由记录介质在模拟器程序存储部23中存储模拟器程序,可以在模拟器程序存储器23中存储经由通信线路等发送而来的模拟器程序、或者可以在模拟器程序存储部23中存储经由输入设备输入的模拟器程序。
测试控制部27获取测试信息接收部16接收的测试信息所具有的动作模式。测试控制部27通常由MPU或存储器等实现。测试控制部27的处理步骤通常由软件实现,该软件被记录在ROM等的记录介质中。但也可以通过硬件(专用电路)实现。
执行部28将测试信息所具有的输入信息赋予测试对象程序并执行该测试对象程序。另外,执行部28判断测试控制部27获取的动作模式是否是正常模式。并且,如果动作模式是正常模式,则将作为测试对象程序的执行结果的程序信息传递给硬件,并使硬件进行动作。另外,如果动作模式不是正常模式,则执行部28使用作为该测试对象程序的执行结果的程序信息来执行模拟器程序。不是正常模式的情况是指异常模式的情况以及作为异常模式被细分而得的模式的非响应模式、报警模式、中途正常模式等情况。程序信息也可以说是从测试对象程序传递给硬件的信息。执行部28通常由MPU或存储器等实现。执行部28的处理步骤通常由软件实现,该软件记录在ROM等记录介质。但也可以通过硬件(专用电路)实现。
接着,使用图8的流程图对程序测试装置的动作进行说明。在图8的流程图中,对于与图2的流程图重复的步骤省略说明。
(步骤S901)执行部28执行测试。使用图8的流程图对于测试执行处理进行详细的说明。
在图8的流程图中通过切断电源或处理结束的插入来结束处理。
接着,使用图9的流程图对测试执行处理进行说明。在图9的流程图中,对于与图2的流程图重复的步骤省略说明。
(步骤S901)测试控制部27判断在步骤S204中获取的动作模式是否是正常模式。如果是正常模式则进入到步骤S902,如果不是正常模式则进入到步骤S217。
(步骤S902)测试控制部27将在步骤S206获取的IO值作为硬件的IO值写入硬件。写入硬件的处理可以为传递给硬件的处理。
(步骤S903)执行部28执行测试对象程序。
(步骤S904)测试控制部27获取作为在步骤S903中的执行结果的程序信息。
(步骤S905)测试控制部17判断在步骤S204中获取的动作模式是否是正常模式。如果是正常模式则进入到步骤S906,如果不是正常模式则进入到步骤S207。
(步骤S906)执行部28将在步骤S904获取的程序信息传递给硬件并使硬件进行动作。
(步骤S907)执行部28使用在步骤S904中获取的程序信息来执行模拟器程序。
(步骤S908)测试控制部27判断是否接收步骤S906或步骤S907中的执行结果。如果接收执行结果则进入到步骤S909,如果没有接收执行结果则返回到步骤S908。
(步骤S909)测试控制部27判断第i个测试信息的测试是否结束。在判断为测试结束的情况下进入到步骤S910,在判断为测试没有结束的情况下返回到步骤S903。
(步骤S910)测试结果判断部29从硬件或者模拟器程序写入的信息获取IO值。进入到步骤S212。
当然,图9的流程图中的处理流程为一个示例。
下面对本实施方式的程序测试装置的具体动作进行说明。
现在假设图4所示的测试信息管理表存储在测试信息存储部14中。
在该状况下,假设用户输入测试开始指示。于是,接收部11接收测试开始指示。
接着,自动测试部25从图4的测试信息管理表读出第一个测试信息(“ID=1”的记录)。
并且,测试控制部27依次解析并执行图4的“ID=1”的记录中的函数。即,测试控制部27获取第一个测试信息所具有的“DO_RUN”的IO值“STOP”并配置在存储器上。并且,测试控制部27将获取的“DO_RUN”的IO值“STOP”传递给硬件,硬件向“DO_RUN”的区域写入IO值“STOP”。另外,测试控制部27获取第一个测试信息所具有的“DI_RUN”的IO值“STOP”并配置在存储器上。并且,测试控制部27将获取的“DI_RUN”的IO值“STOP”传递给硬件,硬件将IO值“STOP”写入到“DI_RUN”的区域。另外,测试控制部27获取第一个测试信息具有的“DI_ARARM”的IO值“NORMAL”并配置在存储器上。并且,测试控制部27将获取的“DI_ARARM”的IO值“NORMAL”传递给硬件,硬件将IO值“NORMAL”写入到“DI_ARARM”的区域。
接着,测试控制部27从硬件读出“DO_RUN”的IO值。并且,测试结果判断部29判断“DO_RUN”的IO值是否是“STOP”。另外,测试控制部27从硬件读出“DI_RUN”的IO值。并且,测试结果判断部29判断“DI_RUN”的IO值是否是“STOP”。并且,测试控制部27从硬件读出“DI_ARARM”的IO值。并且,测试结果判断部29判断“DI_ARARM”的IO值是否是“NORMAL”。
接着,测试控制部27获取第一个测试信息所具有的动作模式“DO_RUN,NORMAL”。动作模式“DO_RUN,NORMAL”是所说的“DO_RUN”的动作为“NORMAL”的动作模式。
接着,执行部28获取第一个测试信息所具有的输入信息“DRP.Run()”。并且,执行部28启动测试对象程序并执行“DRP.Run()”。并且,执行部28获取“DRP.Run()”的执行结果。
接着,执行部28根据测试控制部27获取的动作模式“DO_RUN,NORMAL”识别动作模式为正常模式。执行部28预先将表示“NORMAL”和“正常模式”的信息成对地保持。
并且,执行部28将作为测试对象程序的执行结果(“DRP.Run()”的执行结果)的程序信息传递给硬件,并使硬件进行动作。
接着,执行部28得到硬件的执行结果。通过执行“DRP.Run()”,通常硬件中的IO值被适当地改写。并且执行部28将硬件的执行结果传递给测试对象程序。
接着,测试结果判断部29获取执行部28中的测试对象程序的动作结果(作为“DRP.Run()”的执行结果的返回值)。并且,比较该返回值和测试信息所具有的正解信息。并且,如果两者一致则判断为测试正常,如果两者不一致则判断为测试异常。
接着,测试控制部27获取第一个测试信息所具有的输入信息“TagRead(DI_RUN,RUN)”。并且,测试控制部27通过“TagRead(DI_RUN,RUN)”的解析执行,从硬件读入“DI_RUN”的IO值。并且,测试 结果判断部29判断作为测试对象程序的动作结果的“DI_RUN”的IO值与测试信息所具有的正解信息“RUN”是否一致。并且,如果两者一致则测试结果判断部29判断为测试正常,如果两者不一致则测试结果判断部29判断为测试异常。并且,测试结果判断部29输出判断结果(例如“正常”)。这里,输出可以是指显示到显示器,也可以是指存储到记录介质。另外,在输出时,测试结果判断部29将测试信息的识别号码(ID)和判断结果对应起来进行输出。
根据以上处理“ID=1”的测试信息的处理结束。在上述测试结果判断部29的正常、异常的判断过程中,在判断为不一致等的情况下,测试结果判断部29例如输出表示“异常”的判断结果。
接着,自动测试部25从图4的测试信息管理表读出第二个测试信息(“ID=2”的记录)。
并且,测试控制部27依次解析图4的“ID=2”的记录并执行。即,测试控制部27对于图4的“ID=2”的记录中的(10)到(15)进行与从(1)到(6)同样的处理。(1)到(6)的处理在本实施方式中是上述的处理。
接着,测试控制部27从第二个测试信息的(16)获取动作模式“DO_RUN,TIMEOUT”。
接着,执行部28获取第一个测试信息所具有的输入信息“DRP.Run()”。并且,执行部28启动测试对象程序并执行“DRP.Run()”。并且,执行部28获取“DRP.Run()”的执行结果。
接着,执行部28根据测试控制部27获取的动作模式“DO_RUN,TIMEOUT”判断为动作模式不是正常模式。执行部28预先保持不是正常模式的一个以上的动作模式的信息,如果测试控制部27获取的动作模式与所保持的不是正常模式的动作模式中的某一个信息一致,则可以判断为测试控制部27获取的动作模式为不是正常模式的动作模式。另外,执行部28预先保持正常模式的动作模式的信息,如果测试控制部27获取的动作模式与所保持的正常模式的信息不一致,则可以判断为测试控制部27所获取的动作模式为不是正常模式的动作模式。
并且,执行部28使用作为测试对象程序的执行结果(“DRP.Run()”的执行结果)的程序信息来执行模拟器程序。该模拟器程序是异常模式情况下的模拟器程序(测试桩等)。并且,执行部28将模拟器程序的执行结果传递给测试对象程序。
接着,测试结果判断部29获取执行部28中的测试对象程序的动作结果(作为“DRP.Run()”的执行结果的返回值)。并且,对该返回值和测试信息所具有的正解信息进行比较。并且,如果两者一致则判断为测试正常,如果两者不一致则判断为测试异常。
接着,测试控制部27获取第一个测试信息所具有的输入信息“TagRead(DI_RUN,STOP)”。并且,测试控制部27通过“TagRead(DI_RUN,STOP)”的解析执行,从硬件读入“DI_RUN”的IO值。并且,测试结果判断部29判断作为测试对象程序的动作结果的“DI_RUN”的IO值与测试信息所具有的正解信息“STOP”是否一致。并且,如果两者一致则测试结果判断部29判断为测试正常,如果两者不一致则测试结果判断部29判断为测试异常。并且,测试结果判断部29输出判断结果(例如“正常”)。这里,输出可以是指显示到显示器,也可以是指存储到记录介质。另外,在输出时,测试结果判断部29将测试信息的识别号码(ID)和判断结果对应起来并输出。
根据以上处理,“ID=2”的测试信息的处理结束。在上述测试结果判断部29的正常、异常的判断过程中,在判断为不一致等的情况下,测试结果判断部29例如输出表示“异常”的判断结果。
以上根据本实施方式提供了一种将正常系统的测试信息赋予硬件并将异常系统的测试信息赋予模拟器程序的程序测试装置。通过该程序测试装置,在正常模式的情况下能够使用硬件进一步提高精度地进行测试,在异常模式的情况下,能够使用模拟器程序进行测试。通过该处理,能够由软件模拟地进行难以由硬件难以生成其状态(通常为异常模式)的测试情况,并且对于能够容易地生成状态(通常为正常模式)的测试情况,则使用实际上运用的硬件来高精度地进行测试。
在本实施方式的具体示例中,执行部28与硬件的信息的交换仅为一次,但是,当然可以在两者之间进行连续的数据的交换。另外,同样地,执行部28和模拟器程序的信息的交换仅为一次,但是,当然可以在两者之间进行连续的数据的交换。
并且,实现本实施方式中的程序测试装置的软件为如下程序。即,该程序是用于使计算机作为以下各部发挥功能的程序,即:测试信息接收部,接收为了对测试对象程序进行测试而作为赋予该测试对象程序的信息的、具有输入信息和动作模式的测试信息;测试控制部,获取所述测试信息所具有的动作模式;以及执行部,将所述测试信息所具有的输入信息赋予测试对象程序并执行该测试对象程序,并且如果所述测试控制部获取的动作模式是正常模式,则将作为所述测试对象程序的执行结果的程序信息传递给硬件,并使硬件动作,如果所述测试控制部所获取的动作模式不是正常模式,则使用作为该测试对象程序的执行结果的程序信息执行模拟器程序。
另外,图10示出了执行在本说明书中叙述的程序以实现上述实施方式的程序测试装置的计算机的外观。上述实施方式能够由计算机硬件以及在其上执行的计算机程序实现。图10是该计算机系统340的概略图,图11是计算机系统340的框图。
在图10中,计算机系统340具有包含FD(Flexible disk,软盘)驱动器和CD-ROM(Compact Disk Read Only Memory,致密光盘只读存储器)驱动器的计算机341、键盘342、鼠标343、以及监视器344。
在图11中,计算机341除了FD驱动器3411和CD-ROM驱动器3412之外,还包括CPU(Central Processing Unit,中央处理器)3413;与CPU3413、CD-ROM驱动器3412以及FD驱动器3411连接的总线3414;用于存储启动程序等程序的ROM(Read-Only Memory,只读存储器)3415;与CPU 3414连接,用于暂时存储应用程序的命令并提供暂时存储空间的RAM(Random Access Memory,随机存取存储器)3416;用于存储应用程序、系统程序以及数据的硬盘3417。这里没有图示,但是计算机341还可以包含提供LAN上的连接的网卡。
在计算机系统340中,执行上述实施方式的程序测试装置的功能的程序被存储在CD-ROM 3501、或者FD 3502中,通过插入到CD-ROM驱动器3412或FD驱动器3411中,并还可以传送给硬盘3417。取而代之,程序可以经由未图示的网络被发送给计算机341并存储在硬盘3417中。程序在执行时被加载到RAM 3416中。程序可以从CD-ROM 3501、FD 3502或网络直接加载。
程序可以不必是一定包含使计算机341执行上述实施方式的程序测试装置的功能的操作系统(OS)或者第三方程序等。程序可以仅包含命令的部分,以在被控制的方式下调出适当的功能(模块)来得到希望的结果。计算机系统340怎样进行动作是周知的,因而省略详细的说明。
另外,执行上述程序的计算机可以是一个,也可以是多个。即,可以进行集中处理、或者可以进行分散处理。
另外,在上述各实施方式中,各处理(各功能)可以通过由单一装置(系统)集中处理来实现,或者可以通过多个装置分散处理来实现。
本发明并不限于上述实施方式,能够进行各种改变,当然它们也包含在本发明的范围中。
产业上的实用性
如上所述,本发明的程序测试装置具有能够在硬件错误的情况下自动容易地进行测试对象程序的测试的效果,可以有效地作为程序测试装置等使用。

Claims (13)

1.一种程序测试装置,包括:
测试对象程序存储部,其存储作为测试对象的程序的测试对象程序;
模拟器程序存储部,其存储模拟器程序,所述模拟器程序是模拟硬件的动作的程序,并且是进行与作为从测试对象程序传递的信息的程序信息和动作模式对应的动作的程序;
测试信息接收部,其接收作为为了对所述测试对象程序进行测试而提供给该测试对象程序的信息的、具有输入信息和动作模式的测试信息;
测试控制部,获取所述测试信息所具有的动作模式并传递给所述模拟器程序;以及
执行部,将所述测试信息具有的输入信息提供给测试对象程序并执行该测试对象程序,并且使用作为该测试对象程序的执行结果的程序信息和所述测试控制部传递给所述模拟器程序的动作模式来执行所述模拟器程序。
2.如权利要求1所述的程序测试装置,还包括:
测试信息存储部,存储有两个以上的测试信息;以及
自动测试部,依次从所述测试信息存储部读出两个以上的测试信息,并传递给所述测试信息接收部。
3.如权利要求2所述的程序测试装置,其中,
所述测试信息还具有作为测试对象程序的正常的动作结果的正解信息,
所述程序测试装置还包括测试结果判断部,所述测试结果判断部获取所述执行部的所述测试对象程序的动作结果,并使用该动作结果和所述测试信息具有的正解信息判断测试为正常或异常,输出该判断结果。
4.如权利要求1所述的程序测试装置,其中,
所述测试信息还具有所述模拟器程序进行动作所使用的IO值,
所述测试控制部获取所述测试信息所具有的动作模式和IO值并传递给所述模拟器程序,
所述执行部将所述测试信息所具有的输入信息提供给测试对象程序并执行该测试对象程序,并且使用作为该测试对象程序的执行结果的程序信息以及所述测试控制部传递给所述模拟器程序的动作模式和IO值来执行所述模拟器程序。
5.如权利要求1所述的程序测试装置,其中,
所述测试控制部还进行获取作为所述模拟器程序的动作结果的IO值并输出的处理。
6.如权利要求1所述的程序测试装置,其中,
所述动作模式至少具有正常模式和异常模式。
7.一种程序测试装置,包括:
测试对象程序存储部,其存储测试对象程序,所述测试对象程序是测试对象的程序,并且是作为进行硬件的控制的程序;
模拟器程序存储部,其存储作为模拟硬件错误的动作的程序的模拟器程序;
测试信息接收部,其接收作为为了对所述测试对象程序进行测试而提供给该测试对象程序的信息的、具有输入信息和动作模式的测试信息;
测试控制部,其获取所述测试信息所具有的动作模式;
执行部,其将所述测试信息具有的输入信息提供给测试对象程序并执行该测试对象程序,并且如果所述测试控制部获取的动作模式是正常模式则将作为所述测试对象程序的执行结果的程序信息传递给硬件使硬件动作,如果所述测试控制部获取的动作模式不是正常模式,则使用作为该测试对象程序的执行结果的程序信息来执行所述模拟器程序。
8.如权利要求7所述的程序测试装置,还包括:
测试信息存储部,存储有两个以上的测试信息;以及
自动测试部,依次从所述测试信息存储部读出两个以上的测试信息,并传递给所述测试信息接收部。
9.如权利要求8所述的程序测试装置,其中,
所述测试信息还具有作为测试对象程序的正常的动作结果的正解信息,
所述程序测试装置还包括测试结果判断部,所述测试结果判断部获取所述执行部的所述测试对象程序的动作结果,并使用该动作结果和所述测试信息具有的正解信息判断测试为正常或异常,输出该判断结果。
10.一种程序,用于使计算机作为以下各部发挥功能:
测试信息接收部,其接收作为为了对所述测试对象程序进行测试而提供给该测试对象程序的信息的、具有输入信息和动作模式的测试信息;
测试控制部,获取所述测试信息所具有的动作模式并传递给模拟硬件的动作的所述模拟器程序;以及
执行部,将所述测试信息具有的输入信息提供给测试对象程序并执行该测试对象程序,并且使用作为该测试对象程序的执行结果的程序信息和所述测试控制部传递给所述模拟器程序的动作模式来执行所述模拟器程序。
11.如权利要求10所述的程序,用于使计算机如下所述发挥功能:
所述测试信息还具有所述模拟器程序进行动作所使用的IO值,
所述测试控制部获取所述测试信息所具有的动作模式和IO值并传递给所述模拟器程序,
所述执行部将所述测试信息所具有的输入信息提供给测试对象程序并执行该测试对象程序,并且使用作为该测试对象程序的执行结果的程序信息以及所述测试控制部传递给所述模拟器程序的动作模式和IO值来执行所述模拟器程序。
12.如权利要求10所述的程序,用于使计算机发挥以下功能:
所述测试控制部还进行获取作为所述模拟器程序的动作结果的IO值并输出的处理。
13.一种程序,用于使计算机作为以下各部发挥功能:
测试信息接收部,其接收作为为了对所述测试对象程序进行测试而提供给该测试对象程序的信息的、具有输入信息和动作模式的测试信息;
测试控制部,其获取所述测试信息所具有的动作模式;
执行部,其将所述测试信息具有的输入信息提供给测试对象程序并执行该测试对象程序,并且如果所述测试控制部获取的动作模式是正常模式则将作为所述测试对象程序的执行结果的程序信息传递给硬件,并使硬件动作,如果所述测试控制部获取的动作模式不是正常模式,则使用作为该测试对象程序的执行结果的程序信息来执行所述模拟器程序。
CN2009801037903A 2008-01-28 2009-01-23 程序测试装置以及程序 Pending CN101925883A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008-015916 2008-01-28
JP2008015916A JP2009176186A (ja) 2008-01-28 2008-01-28 プログラムテスト装置、およびプログラム
PCT/JP2009/051035 WO2009096322A1 (ja) 2008-01-28 2009-01-23 プログラムテスト装置、およびプログラム

Publications (1)

Publication Number Publication Date
CN101925883A true CN101925883A (zh) 2010-12-22

Family

ID=40912675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801037903A Pending CN101925883A (zh) 2008-01-28 2009-01-23 程序测试装置以及程序

Country Status (7)

Country Link
US (1) US20100312541A1 (zh)
JP (1) JP2009176186A (zh)
KR (1) KR101110241B1 (zh)
CN (1) CN101925883A (zh)
DE (1) DE112009000211T5 (zh)
TW (1) TW200951707A (zh)
WO (1) WO2009096322A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102650528A (zh) * 2011-02-25 2012-08-29 鸿富锦精密工业(深圳)有限公司 安全处理系统及方法
CN103003800A (zh) * 2011-05-09 2013-03-27 现代自动车株式会社 异常处理测试装置和其方法
CN104081359A (zh) * 2012-01-31 2014-10-01 惠普发展公司,有限责任合伙企业 失败代码变化的识别
CN106252190A (zh) * 2015-06-12 2016-12-21 东京毅力科创株式会社 等离子体处理装置和等离子体处理装置的控制方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5545135B2 (ja) * 2010-08-31 2014-07-09 コニカミノルタ株式会社 アプリケーション共有システムおよび画像形成装置
US9785542B2 (en) * 2013-04-16 2017-10-10 Advantest Corporation Implementing edit and update functionality within a development environment used to compile test plans for automated semiconductor device testing
US9785526B2 (en) * 2013-04-30 2017-10-10 Advantest Corporation Automated generation of a test class pre-header from an interactive graphical user interface
KR102308990B1 (ko) * 2021-07-20 2021-10-06 (주) 에이블리 반도체 테스트 패턴 발생 장치 및 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348544A (ja) * 1993-06-02 1994-12-22 Fujitsu Ltd Scsiシミュレータ
JPH0991031A (ja) * 1995-09-25 1997-04-04 Matsushita Electric Ind Co Ltd 制御ソフトウェアの自動テスト装置、テスト計画入力装置、テスト実行装置、およびテスト結果評価装置、ならびにそれらの方法
JPH10161906A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ソフトウェア実行装置及びソフトウェア実行方法
JP2000207249A (ja) * 1999-01-18 2000-07-28 Hitachi Ltd シミュレ―ション装置
JP2001216176A (ja) * 2000-02-04 2001-08-10 Seiko Epson Corp デバッグ装置およびデバッグ方法ならびにデバッグプログラムを記憶した記憶媒体
JP2002259162A (ja) * 2001-03-02 2002-09-13 Canon Inc 機器制御ソフトウェア開発支援システム
CN1825322A (zh) * 2005-02-21 2006-08-30 北瀚科技股份有限公司 Ic电路验证平台

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022199A (ja) 2001-07-06 2003-01-24 Sharp Corp プログラム開発装置およびプログラム開発方法ならびに記録媒体および開発プログラム
JP4427002B2 (ja) * 2005-05-20 2010-03-03 株式会社アドバンテスト 半導体試験用プログラムデバッグ装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06348544A (ja) * 1993-06-02 1994-12-22 Fujitsu Ltd Scsiシミュレータ
JPH0991031A (ja) * 1995-09-25 1997-04-04 Matsushita Electric Ind Co Ltd 制御ソフトウェアの自動テスト装置、テスト計画入力装置、テスト実行装置、およびテスト結果評価装置、ならびにそれらの方法
JPH10161906A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ソフトウェア実行装置及びソフトウェア実行方法
JP2000207249A (ja) * 1999-01-18 2000-07-28 Hitachi Ltd シミュレ―ション装置
JP2001216176A (ja) * 2000-02-04 2001-08-10 Seiko Epson Corp デバッグ装置およびデバッグ方法ならびにデバッグプログラムを記憶した記憶媒体
JP2002259162A (ja) * 2001-03-02 2002-09-13 Canon Inc 機器制御ソフトウェア開発支援システム
CN1825322A (zh) * 2005-02-21 2006-08-30 北瀚科技股份有限公司 Ic电路验证平台

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102650528A (zh) * 2011-02-25 2012-08-29 鸿富锦精密工业(深圳)有限公司 安全处理系统及方法
CN103003800A (zh) * 2011-05-09 2013-03-27 现代自动车株式会社 异常处理测试装置和其方法
US9047401B2 (en) 2011-05-09 2015-06-02 Hyundai Motor Company Exception handling test apparatus and method
CN103003800B (zh) * 2011-05-09 2016-02-10 现代自动车株式会社 异常处理测试装置和方法
CN104081359A (zh) * 2012-01-31 2014-10-01 惠普发展公司,有限责任合伙企业 失败代码变化的识别
CN104081359B (zh) * 2012-01-31 2017-05-03 惠普发展公司,有限责任合伙企业 失败代码变化的识别
CN106252190A (zh) * 2015-06-12 2016-12-21 东京毅力科创株式会社 等离子体处理装置和等离子体处理装置的控制方法
TWI687964B (zh) * 2015-06-12 2020-03-11 日商東京威力科創股份有限公司 電漿處理裝置、電漿處理裝置之控制方法及記憶媒體

Also Published As

Publication number Publication date
JP2009176186A (ja) 2009-08-06
US20100312541A1 (en) 2010-12-09
WO2009096322A1 (ja) 2009-08-06
KR101110241B1 (ko) 2012-02-15
KR20100108582A (ko) 2010-10-07
TW200951707A (en) 2009-12-16
DE112009000211T5 (de) 2010-12-09

Similar Documents

Publication Publication Date Title
CN101925883A (zh) 程序测试装置以及程序
US5758062A (en) Method and apparatus for regression testing of application logic
CN102568522B (zh) 硬盘性能的测试方法和装置
CN105103064A (zh) 可编程控制器的周边装置以及调试辅助程序
CN103577328A (zh) 一种应用的性能分析方法及装置
JPWO2012157471A1 (ja) 複数の制御システムの異常を検知する異常検知システム
CN102884486A (zh) 故障分析装置、故障分析方法和记录介质
CN108693830A (zh) 数据收集管理系统及其方法、计算机可读取记录介质
CN111309734A (zh) 自动生成表数据的方法及系统
CN110457907A (zh) 一种固件程序检测方法和装置
JP5973312B2 (ja) 計器校正試験システム、計器校正試験装置、計器校正試験方法及びプログラム
CN115470056A (zh) 服务器硬件上电启动故障排查方法、系统、装置及介质
JP5241570B2 (ja) 測定装置
CN115061928A (zh) 微服务自动化测试方法、装置、电子设备及存储介质
US20120216031A1 (en) Method for configuring the generation and storage of output data, computer system, electromechanical device, operating system and data carrier
CN113008289A (zh) 一种基于物联网的数据采集无纸记录仪
CN110502789A (zh) 一种基于bmc fw并行的sdr设计方法
WO2023221004A1 (zh) 测试数据处理方法、装置、电子设备及存储介质
KR102307997B1 (ko) Plc 프로그램과 plc 서버 프로그램의 테스트 자동화 방법
CN102778629A (zh) 自动测量pcb上所安装电子电路装置的电连接的方法和装置
JP7151230B2 (ja) 制御システム、監視装置および監視プログラム
US20060117225A1 (en) Electronic device with debugging function and method thereof
CN117453567A (zh) 混沌测试方法、装置及设备
CN116880398A (zh) 仪控设备的故障分析方法、系统、电子设备及存储介质
CN114816989A (zh) 自动化测试脚本的优化方法及相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20101222