WO2009150788A1 - 組み込み機器におけるapi評価システム - Google Patents

組み込み機器におけるapi評価システム Download PDF

Info

Publication number
WO2009150788A1
WO2009150788A1 PCT/JP2009/002239 JP2009002239W WO2009150788A1 WO 2009150788 A1 WO2009150788 A1 WO 2009150788A1 JP 2009002239 W JP2009002239 W JP 2009002239W WO 2009150788 A1 WO2009150788 A1 WO 2009150788A1
Authority
WO
WIPO (PCT)
Prior art keywords
api
log
unit
execution
command
Prior art date
Application number
PCT/JP2009/002239
Other languages
English (en)
French (fr)
Inventor
永原功策
溝渕友樹
橋本麻希
後藤修
Original Assignee
パナソニック株式会社
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 パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2010516734A priority Critical patent/JP5337155B2/ja
Publication of WO2009150788A1 publication Critical patent/WO2009150788A1/ja
Priority to US12/948,526 priority patent/US8443381B2/en

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

Definitions

  • the present invention relates to a technique for evaluating an apparatus, and more particularly to a technique for evaluating an apparatus incorporating a microcomputer.
  • This prior art verification system includes the following configuration in a host computer 2 and a user system 1 (hereinafter also referred to as a target system or target device). That is, the verification device on the host computer 2 includes a command control unit 121 and a communication control unit 124.
  • the command control unit 121 includes an evaluation result comparison unit 123 and a command execution unit 122.
  • On the user system 1, a communication control unit 102 (consisting of a data reception unit 103 and a data transmission unit 104), a command determination unit 105, a user memory 108, a synchronous command processing unit 106, and an asynchronous command processing unit 107.
  • the command control unit 121 of the verification device on the host computer 2 outputs a command for operating the function of the real-time OS on the user system 1 to control the user program and perform verification.
  • API refers to Application Program Interface, and instructions / functions that can be used when developing software that supports platforms such as OS and middleware, and program procedures for using these instructions / functions Indicates an interface consisting of a set of rules that define
  • the API verification system of the present invention is A target device capable of executing an API (Application Program Interface), and an API verification device connected to the target device so as to be capable of mutual communication;
  • the API verification device includes: A test procedure description part describing the test procedure of the API;
  • a virtual API unit that provides an API interface in the target device to the test procedure description unit, extracts the test procedure from the test procedure description unit, and issues a command for calling the API in the extracted test procedure;
  • a script execution unit that performs script interpretation of the command;
  • a command transmission unit that transmits the command interpreted by the script execution unit to the target device;
  • a log receiving unit that receives an execution result log of the API from the target device that executes the API based on the command;
  • the virtual API unit acquires a return value obtained by executing the API from the execution result log received by the log receiving unit,
  • the virtual API unit has the same type of interface as the API executed on the target device,
  • the virtual API part is An API executor for outputting a trigger for
  • the user program on the target device can be controlled in API units, and the test result can be determined from the log output on the target device.
  • the API verification system of the present invention is An event receiver that receives an asynchronous event that occurs at an arbitrary timing after execution of the API;
  • the log description rule management unit defines a log output method related to the asynchronous event,
  • the event receiving unit notifies the log output unit of reception of the asynchronous event,
  • the log output unit when verifying the asynchronous event, generates an execution result log including a log description rule related to the asynchronous event read from the log description rule management unit,
  • the virtual API unit is An asynchronous event standby setting device for detecting a timing at which the asynchronous event occurs in the target device;
  • the event information manager further manages the information of the asynchronous event;
  • the log filter extracts a log related to the asynchronous event from the execution result log based on the information of the asynchronous event managed by the event information manager. Is preferred.
  • the API verification system of the present invention is The test procedure description part A first test procedure description part in which the first test procedure is described; A second test procedure description part in which the second test procedure is described; With The virtual API unit is The first test description read from the first test procedure description unit and the second test description read from the second test procedure description unit are assigned identifiers for individually identifying these test procedures.
  • the API executor is A first API executor that implements the API execution procedure described in the first test procedure; A second API executor for executing the API execution procedure described in the second test procedure; Further comprising The API execution completion standby setting device notifies the API execution completion to the first API executor and the second API executor,
  • the command execution unit determines whether the first or second test procedure is being executed based on the identifier from the command, and then outputs the determination result to the log output unit,
  • the log output unit outputs the execution result log including a log indicating which of the first test procedure and the second test procedure is performed based on the determination result; Is preferred.
  • test procedure can be executed on a plurality of targets by the same configuration.
  • API verification apparatus of the present invention software installed on a user system can be controlled in API units from a test script. Thereby, after acquiring the state of the system at the time of the test execution by API call, it is possible to control related software according to the acquired state. Therefore, the same test conditions can always be created. As a result, lower layer software such as a device driver can be tested at the API interface.
  • FIG. 1 is a configuration diagram showing the entire verification system according to Embodiment 1 of the present invention.
  • FIG. 2 shows a data structure registered in the parameter memory in the first embodiment.
  • FIG. 3 shows event information in the first embodiment.
  • FIG. 4 is a diagram showing a command structure in the first embodiment.
  • FIG. 5 is a diagram illustrating command / API correspondence in the first embodiment.
  • FIG. 6 shows a log description rule in the first embodiment.
  • FIG. 7 is a configuration diagram illustrating the entire verification system according to the first embodiment.
  • FIG. 8 is a configuration diagram illustrating the entire verification system according to the first embodiment.
  • FIG. 9 shows execution log description rules in the first embodiment.
  • FIG. 10 is a configuration diagram showing the entire verification system according to the second embodiment of the present invention.
  • FIG. 11 is a configuration diagram illustrating the entire verification system according to the third embodiment of the present invention.
  • FIG. 12 is a block diagram showing the entire verification system in the conventional example.
  • FIG. 1 is a block diagram of an API verification apparatus according to Embodiment 1 of the present invention.
  • the verification system according to the present embodiment includes an API verification apparatus 1000A and a target apparatus 2000A that operate on the host PC.
  • the API verification apparatus 1000A includes a test procedure description unit 1100, a virtual API unit 1200, a script execution unit 1300, a command transmission unit 1400, and a log reception unit 1500.
  • the virtual API unit 1200 includes an API execution unit 1201, a parameter storage unit 1202, an API execution completion standby setting unit 1203, an event information management unit 1204, a log filter 1205, and a test result determination unit 1600.
  • the target device 2000A includes a command reception unit 2100, a command execution unit 2200, a command / API correspondence management unit 2300, a user program 2400, a log output unit 2500, a log description rule management unit 2600, and a log transmission unit 2700.
  • the verification operation includes a command transmission operation of the API verification device 1000A, a log transmission operation of the target device 2000A, and a log reception operation of the API verification device 1000A.
  • the test procedure description part 1100 describes a test execution procedure.
  • the test execution procedure describes an assignment procedure of argument values to be passed to the API and an API calling order.
  • a test execution procedure divided into API execution units is referred to as an API execution procedure.
  • the test procedure description unit 1100 outputs the test procedure to the API executor 1201.
  • the API executor 1201 registers information on variables for setting arguments and return values in the parameter storage unit 1202, and completes API execution registration for waiting until API execution is completed. This is performed for the standby setting device 1203. Thereafter, the API executor 1201 outputs an API execution procedure to the script execution unit 1300.
  • FIG. 2 is a diagram showing details of parameters registered / stored in the parameter storage 1202.
  • the parameter storage 1202 stores the API name, the argument passed to the API, and the return value in a state of being associated with each other as the detailed parameter contents. Therefore, referring to the detailed contents of the parameter, the argument and the return value can be specified from the registered API name. Only the value of the parameter input to the API when the API is called is set in the argument and the return value. In addition, output parameters are set for the argument and the return value after the API call is completed. Note that the output parameter is set by the log filter 1205.
  • the API execution completion standby setting unit 1203 registers an API completion event in the event information management unit 1204. Specifically, the API execution completion standby setting unit 1203 registers “WAITING information” in the event information manager 1204 as an API completion event. Based on the “WAITING information”, the event information manager 1204 performs “WAITING” until the registered information (API and its parameter details) is notified to the log filter 1205 as an event. “WAITING” here refers to, for example, an infinite loop or polling processing for periodically checking events, but it is needless to say that the present invention is not limited thereto.
  • the event information manager 1204 holds event information formed by associating an API completion event with an API.
  • FIG. 3 shows an example of event information held by the event information manager 1204.
  • the event name is represented by a character string
  • the virtual API unit 1200 returns from the API call based on whether or not the event information held by the event information manager 1204 is detected. It is determined whether or not.
  • the parameter storage unit 1202 holds detailed parameter information such as arguments and return values registered by the API execution unit 1201.
  • the script execution unit 1300 interprets the API execution procedure sent from the API executor 1201 and converts it into a command structure shown in FIG. 4 (hereinafter simply referred to as a command).
  • the script execution unit 1300 outputs a command (API execution procedure) to the command transmission unit 1400.
  • the command transmission unit 1400 transmits the command received from the script execution unit 1300 to the target device 2000A according to the transmission order.
  • the command transmitted by the command transmission unit 1400 will be described.
  • the command is represented by a character string, and an API represented by a leading character string “APINAME” and its argument are sequentially arranged.
  • the commands are transmitted from the command transmission unit 1400 to the target device 2000A along the arrangement order.
  • the command reception unit 2100 receives a command transmitted from the API verification apparatus 1000A and passes it to the command execution unit 2200.
  • the command execution unit 2200 reads the API corresponding to the received command from the user program 2400 and executes it by referring to the association between the command and API stored in the command / API correspondence management unit 2300. This will be described in more detail below.
  • the command / API correspondence management unit 2300 stores an API name and an address where the API is located on the memory of the user program 2400 (hereinafter simply referred to as “memory”) in association with each other. Yes.
  • the command execution unit 2200 refers to the API name in the command (a character string consisting of “APINAME # X” (X: serial number) in the example) in the command / API correspondence management unit 2300, and the API is arranged.
  • the start address on the memory (hereinafter referred to as API start address) is specified. Further, the command / API correspondence management unit 2300 executes the API existing at the specified API head address.
  • the command execution unit 2200 acquires the API execution result (argument / return value) from the user program 2400 and passes it to the log output unit 2500.
  • the log output unit 2500 creates a log (hereinafter referred to as an API execution result log) indicating an API execution result received based on management information (hereinafter referred to as a log description rule) provided in the log description rule management unit 2600.
  • the generated API execution result log is output to the log transmission unit 2700.
  • FIG. 6 shows an example of a log description rule when an API on the user program 2400 is called.
  • a character string “EVT_APIRET:” is provided at the beginning, followed by “RETVAL”, and then “ARGVAL1” and “ARGVAL2”.
  • RETVAL RETVAL
  • ARGVAL1 ARGVAL2
  • ARGVAL2 ARGVAL2
  • EVT_APIRET indicates a log description rule when calling an API.
  • a return value returned when calling the API is added to the “RETVAL” portion as a log.
  • a parameter log output as an API argument is added to the parts of “ARGVAL1” and “ARGVAL2”.
  • the log output unit 2500 outputs a log for determining the test result (hereinafter referred to as a log for determining the test result) to the log transmission unit 2700 together with the API execution result log described in the log description rule.
  • the log for determining the test result indicates, for example, the argument / return value information passed to the API or the log indicating the internal processing path of the API, and at the top is a log for determining the test result.
  • a header indicating that it is present is added. An example of this header is “ ⁇ EXLOG>” shown in FIG.
  • the API execution result log and the log for determining the test result are collectively referred to as an execution result log.
  • the log transmission unit 2700 transmits the execution result log to the log reception unit 1500 of the API verification apparatus 1000A.
  • the log receiving unit 1500 outputs the execution result log received from the target device 2000A to the log filter 1205.
  • the log filter 1205 acquires “WAITING information” from the event information manager 1204.
  • “WAITING information” is information regarding an API (event) for which the waiting API execution completion waiting setting unit 1203 is performing WAITING.
  • the log filter 1205 analyzes the execution result log based on “WAITING information” to determine whether or not the execution result log includes the execution result of the API that is WAITING. If it is determined that it is included, the log filter 1205 determines that the execution of the WAITING API has been completed and notifies the API execution completion waiting setting unit 1203 of the completion.
  • the API execution completion waiting setting unit 1203 cancels WAITING of the API that has been executed. Furthermore, the log filter 1205 extracts the API execution result log of the API for which processing has been completed from the execution result log. As described above, this log is information on arguments and return values. The log filter 1205 sets the value (argument / return value) by collating the extracted API execution result log with the variable information registered in the parameter storage unit 1202. The log filter 1205 outputs the set API execution result log value (argument / return value) to the API execution completion standby setting unit 1203 via the log filter 1205.
  • the log filter 1205 extracts a log for determining the test result from the execution result log, and outputs a log for determining the extracted test result to the test result determination unit 1600.
  • the test result determination unit 1600 analyzes the log for determining the test result, and determines whether or not the API that has been executed has been correctly executed.
  • the API execution completion waiting setting unit 1203 outputs the value (argument / return value) of the API execution result log to the test procedure description unit 1100 via the API execution unit 1201 at the timing when WAITING is released.
  • the test procedure description unit 1100 calls the next API based on the value (argument / return value) of the acquired API execution result log.
  • the virtual API unit 1200 transmits an API call command in synchronization with the target device 2000A, analyzes the execution result log output in a fixed format, After setting the return value, the set argument / return value is returned to the test procedure description part 1100.
  • the test procedure description unit 1100 it is possible to control the execution of the target-side API using the same interface as the user program provided by the virtual API unit 1200.
  • the test result determination unit 1600 can automatically determine the test result based on the execution result log output on the target device 2000A.
  • a log storage unit 2900 and a log filter 2800 may be provided in the target device 2000F.
  • a log for determining a test result is temporarily stored in the log storage unit 2900 of the target device 2000F, and then a log for determining a test result at a timing when the test procedure is completed is stored in the target device 2000F.
  • the API verification apparatus 1000F From the log transmission unit 2700 to the API verification apparatus 1000F.
  • the API verification apparatus 1000F outputs a log for determining the received test result to the test result determination unit 1600 via the log reception unit 1500 and the log filter 1215. According to this, it is possible to prevent the execution of the API from being delayed due to the transmission of the log for determining the test result.
  • the target device 2000G is further provided with a log filter 2800 and a second log transmission unit 2710
  • the API verification device 1000G is further provided with a second log reception unit 1510. May be.
  • the log filter 2800 of the target device 2000G extracts the log for determining the test result from the API execution result log
  • the log filter 2800 stores the log for determining the extracted test result.
  • the second log receiving unit 1510 receives the log for determining the test result, and then outputs the test result directly from the second log receiving unit 1510 to the test result determining unit 1600.
  • the execution of the API is prevented from being delayed due to the transmission of the log for determining the
  • the asynchronous event indicates an interrupt event generated from hardware or software on the target device triggered by API execution.
  • the data transfer start processing itself can be confirmed after calling the API, but whether or not the data transfer processing itself has been performed is actually determined by hardware and Furthermore, it cannot be confirmed until a response is received from a lower program.
  • “response” indicates, for example, a data transfer completion notification. Such a response from the hardware and the lower-level program is called an asynchronous event.
  • FIG. 10 is a block diagram of Embodiment 2 of the present invention. Similarly to FIG. 1, FIG. 10 also includes an API verification device 1000B and a target device 2000B that operate on the host PC.
  • the API verification apparatus 1000B includes a test procedure description unit 1100, a virtual API unit 1210, a script execution unit 1300, a command transmission unit 1400, and a log reception unit 1500.
  • the virtual API unit 1210 includes an API execution unit 1201, a parameter storage unit 1202, an API execution completion standby setting unit 1203, an event information management unit 1214, a log filter 1215, and an asynchronous event standby setting unit 1216.
  • the target device 2000B includes a command reception unit 2100, a command execution unit 2200, a command / API correspondence management unit 2300, a user program 2400, a log output unit 2500, a log description rule management unit 2610, a log transmission unit 2700, and an event reception unit 3000. Prepare.
  • the API verification device 1000B includes an asynchronous event standby setting device 1216;
  • the event information manager 1214 has an asynchronous event information management function;
  • the log filter 1215 has an asynchronous event extraction function;
  • the target device 2000B is provided with an event receiver 3000; It is.
  • the verification operation includes a preparation operation of the API verification device 1000B, a log transmission operation of the target device 2000B, and a log reception operation of the API verification device 1000B.
  • the test procedure description unit 1100 When performing an asynchronous event WAITING process, the test procedure description unit 1100 outputs information indicating a procedure for performing an asynchronous event WAITING process to the asynchronous event wait setting unit 1216.
  • the asynchronous event standby setting unit 1216 registers event information for performing WAITING processing in the event information manager 1214.
  • the procedure for performing the WAITING processing of the asynchronous event is a series of processing procedures from when the standby start is set by the asynchronous event standby setting device 1216 until the standby is completed (returned). Indicates.
  • log transmission operation of target device 2000B After the preparatory operation of the API verification apparatus 1000B is completed, when an asynchronous event occurs in the system on the target apparatus 2000B triggered by execution of an API from the test procedure description section 1100, the event reception section 3000 displays the user program 2400. From this, a parameter notified when an asynchronous event occurs is received and output to the log output unit 2500.
  • the log output unit 2500 refers to the asynchronous event log description rule from the log description rule management unit 2610 and creates an asynchronous event execution result log.
  • the log output unit 2500 outputs the created asynchronous event execution result log to the log transmission unit 2700.
  • the log transmission unit 2700 transmits the received asynchronous event execution result log to the log reception unit 1500 of the API verification apparatus 1000B.
  • the log reception unit 1500 outputs the asynchronous event execution result log received from the log transmission unit 2700 to the log filter 1215.
  • the log filter 1215 analyzes the received execution result log of the asynchronous event. In this analysis, when an asynchronous event registered in the event information manager 1214 is detected, the log filter 1215 sets a parameter included in the asynchronous event log in the parameter storage unit 1202 and further indicates that the asynchronous event has been detected.
  • the asynchronous event standby setting unit 1216 is notified.
  • the asynchronous event standby setting unit 1216 calls a variable returned by the asynchronous event from the parameter storage unit 1202, sets the value returned at the asynchronous event to the called variable, and describes the test procedure description. Return to part 1100.
  • the log filter 1215 refers to the event information manager 1214 to determine the asynchronous event, so that the target device 2000B The occurrence of an asynchronous event (asynchronous event execution log) is detected, and the asynchronous event standby setting unit 1216 is notified of the occurrence of the asynchronous event.
  • the information that the log filter 1215 refers to from the event information manager 1214 is event information for performing a WAITING process that is set in advance in the preparation operation of the API verification apparatus 1000B.
  • the verification system includes an API verification device 1000D, a first target device 2000Aa, and a second target device 2000Ab that operate on the host PC.
  • the first target device 2000Aa includes a first command reception unit 2100a, a first command execution unit 2200a, a first command / API correspondence management unit 2300a, a first user program 2400a, a first log output unit 2500a, A first log description rule management unit 2600a and a first log transmission unit 2700a are provided.
  • the second target device 2000Ab includes a second command reception unit 2100b, a second command execution unit 2200b, a second command / API correspondence management unit 2300b, a second user program 2400b, a second log output unit 2500b, A second log description rule management unit 2600b and a second log transmission unit 2700b are provided.
  • the first target device 2000Aa and the second target device 2000Ab have the same configuration as the target device 2000A.
  • the API verification apparatus 1000D includes a test procedure description unit 1100, a virtual API unit 1220, a script execution unit 1300, a command transmission unit 1400, and a log reception unit 1500, as in the first embodiment (FIG. 1). It is.
  • This embodiment differs from the first embodiment (FIG. 1) in that a virtual API unit 1220, a virtual API controller 1217, a first API executor 1221a, a second API executor 1221b, and an API And an execution completion standby setting unit 1223.
  • the first API executor 1221a and the second API executor 1221b have exactly the same function.
  • the verification operation includes a command transmission operation of the API verification device 1000D, a log transmission operation of the first and second target devices 2000Aa and 2000Ab, and a log reception operation of the API verification device 1000D.
  • test procedure is described in each of the first test procedure description unit 1100a and the second test procedure description unit 1100b.
  • the test procedure a procedure for assigning a value to an argument to be passed to the API and an order of calling the API are described.
  • the first test procedure description unit 1100a and the second test procedure description unit 1100b output the test procedure to the virtual API controller 1217.
  • identification information hereinafter referred to as script identification information
  • the virtual API controller 1217 outputs an API execution procedure to the first API executor 1221a or the second API executor 1221b.
  • the virtual API controller 1217 selects which of the first API execution unit 1221a and the second API execution unit 1221b to output the API execution procedure. The selection method will be described below.
  • the virtual API controller 1217 determines whether an API execution procedure can be output to one arbitrarily selected API executor (for example, the first API executor 1221a). This determination is performed by confirming whether or not another test procedure has already been performed in the selected API executor. When determining that output is possible, the virtual API controller 1217 outputs the API execution procedure to the API execution unit (for example, the first API execution unit 1221a) that is determined to be capable of output. When it is determined that the output is impossible, the virtual API controller 1217 outputs the API execution procedure to the other API executor (for example, the second API executor 1221b) different from the one determined not to be output.
  • an API execution unit that outputs an API execution procedure is denoted by reference numeral 1221x.
  • the virtual API controller 1217 when outputting the API execution procedure, the virtual API controller 1217 adds identification information (hereinafter referred to as target device identification information) for identifying the target device that transmits the API execution procedure to the API execution procedure.
  • the target device identification information indicates, for example, an IP address or a MAC address, but is not limited thereto.
  • the API executor 1221x that has received the API execution procedure outputs the API execution procedure to the script execution unit 1300.
  • the API executor 1221x creates and holds information for specifying the script being executed based on the script description information.
  • the script execution unit 1300 converts the received API execution procedure into a command (structure of API name and argument), and outputs the command to the command transmission unit 1400.
  • the script execution unit 1300 further gives target device identification information and script description information to the command to be created.
  • the target device identification information is added to the API execution procedure by the virtual API controller 1217 as described above.
  • the command transmission unit 1400 transmits a command (API execution procedure) to the target device 2000Ax based on the target device identification information added to the API execution procedure.
  • the target device 2000Ax is the first target device 2000Aa, the second target device 2000Ab, or both target devices 2000Aa and 2000Ab.
  • the first command receiving unit 2100a When the first command receiving unit 2100a receives the command, the first command receiving unit 2100a outputs the command to the first command executing unit 2220a.
  • the first command execution unit 2220a refers to the first command / API correspondence management unit 2300a to convert the received command into a command itself and an API argument.
  • the first command execution unit 2220a executes the API on the first user program 2400a based on the command obtained by the conversion and the API argument.
  • the first command execution unit 2220a executes the API on the first user program 2400a, thereby specifying information for specifying the script being executed (hereinafter referred to as script identification information) and specifying the target being executed.
  • Information hereinafter referred to as target identification information
  • a return value obtained as a result of executing the API are output to the first log output unit 2500a.
  • the first log output unit 2500a outputs a return value, script identification information, and target identification information obtained as a result of API execution to the first log transmission unit 2700a.
  • the return value, the script identification information, and the target identification information are a log (execution result log) as a result of executing the API in accordance with an instruction from the first log description rule management unit 2600a.
  • the first log transmission unit 2700a transmits the received execution result log from the first log output unit 2500a to the log reception unit 1500 of the API verification apparatus 1000D.
  • the log receiving unit 1500 outputs the received execution result log to the log filter 1205 of the virtual API unit 1220.
  • the log filter 1205 examines the received execution result log with reference to the event information manager 1204 to determine whether or not a log indicating an API execution completion waiting event exists in the reception log.
  • the log filter 1205 determines that a log indicating an API execution completion waiting event exists in the reception log, the log filter 1205 sets a return value parameter corresponding to the API execution completion waiting event in the parameter storage unit 1202, and then API execution completion.
  • the standby setting unit 1223 is notified of the script identification information and the target identification information.
  • the API execution completion standby setting unit 1223 outputs the received script identification information and target identification information to the first API executor 1221a and the second API executor 1221b. If the first API executor 1221a and the second API executor 1221b interpret the script identification information and determine that the script is currently being executed, the return value from the parameter storage unit 1202 will be described. The parameter is acquired, and the return value parameter is returned to the virtual API controller 1217. The virtual API controller 1217 that has received the return value parameter specifies one of the first test procedure description unit 1100a and the second test procedure description unit 1100b based on the script identification information. Return the return value to the specified test procedure description part. However, if the same script is being executed on another target, the execution of the API on the other target is awaited.
  • a plurality of test procedures can be executed.
  • the API verification apparatus has an effect that the software installed on the user system can be controlled in API units from the test script. It is useful as an API verification system in combination with a system.

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

 APIの実行手順を記載するテスト手順記述部と、ターゲット装置のAPIのインターフェースをテスト手順記述部に提供することでAPIを呼び出すコマンドを発行して戻り値を取得する仮想API部と、スクリプト解釈を行なうスクリプト実行部と、ターゲット装置にコマンドを送信するコマンド送信部と、ターゲット装置からAPI実行後の結果ログを受信するログ受信部とを備えて、ターゲット装置上に実装されたユーザプログラムをAPI単位で制御し検証する。

Description

組み込み機器におけるAPI評価システム
 本発明は、装置を評価する技術に関し、特にマイクロコンピュータが組み込まれた装置を評価する技術に関する。
 近年家電機器の商品サイクルの短期化から開発期間の短縮化が要求されるようになり、その結果、組み込みソフト開発の検証工数においても効率化が要求されている。検証工数の効率化のために、マイクロコンピュータのユーザプログラムを自動で評価する検証システムが研究されている。(例えば、特許文献1参照)。
 図12を参照して従来技術について説明する。この従来技術の検証システムは、ホストコンピュータ2と、ユーザシステム1(以降、ターゲットシステムまたはターゲット装置とも呼ぶ)とに、以下の構成を備える。すなわち、ホストコンピュータ2上の検証装置はコマンド制御部121と通信制御部124とを備える。コマンド制御部121は評価結果比較部123とコマンド実行部122とを備える。ユーザシステム1上には、通信制御部102(データ受信部103とデータ送信部104とからなる)と、コマンド判定部105と、ユーザメモリ108と、同期コマンド処理部106と、非同期コマンド処理部107とを備える。
 上記従来の検証システムでは、ホストコンピュータ2上の検証装置のコマンド制御部121からユーザシステム1上のリアルタイムOSの機能を操作するコマンドを出力することによって、ユーザプログラムを制御して検証を行なう。
特開2002-189617号公報
 しかしながら、従来の検証システムでは、リアルタイムOS上の機能を使用してユーザプログラムを制御するため、ユーザプログラムをタスク単位でしか制御することができない。そのため、種々のテスト項目において、API界面でテストすることができない。なお、APIとは、Application Program Interfaceのことであって、OSやミドルウェア等のプラットフォームに対応するソフトウェアを開発する際に使用可能な命令/関数やそれら命令/関数を利用するためのプログラム上の手続きを定めた規約の集合等からなるインターフェースを示す。
 本発明のAPI検証システムは、
 API(Application Program Interface)を実行可能なターゲット装置と、前記ターゲット装置に相互通信可能に接続されたAPI検証装置とを備え、
 前記API検証装置は、
 前記APIのテスト手順が記述されたテスト手順記述部と、
 前記ターゲット装置におけるAPIインターフェースを前記テスト手順記述部に提供したうえで当該テスト手順記述部から前記テスト手順を取り出し、取り出した当該テスト手順で前記APIを呼び出すコマンドを発行する仮想API部と、
 前記コマンドのスクリプト解釈を行なうスクリプト実行部と、
 前記スクリプト実行部でスクリプト解釈された前記コマンドを前記ターゲット装置に送信するコマンド送信部と、
 前記コマンドに基づいて前記APIを実行する前記ターゲット装置から前記APIの実行結果ログを受信するログ受信部と、
 を備え、
 前記仮想API部は、前記ログ受信部が受信する前記実行結果ログから前記APIを実行することで得られる戻り値を取得し、
 前記仮想API部は、前記ターゲット装置上で実行される前記APIと同種のインターフェースを有しており、
 かつ前記仮想API部は、
 前記ターゲット装置で前記APIを実行させるトリガを出力するAPI実行器と、
 前記APIに渡すパラメータを記憶するパラメータ記憶器と、
 前記ターゲット装置が前記APIの実行を完了するタイミングを検出するAPI実行完了待機設定器と、
 前記ターゲット装置で実行される前記APIにおける実行完了イベントを管理するイベント情報管理器と、
 前記実行結果ログから、前記戻り値を示す情報と、API実行完了を示す情報と、イベント情報に関するログとを抽出するログフィルタと、
 を備え、
 前記ターゲット装置は、
 前記API検証装置が送信する前記コマンドを受信するコマンド受信部と、
 前記コマンドと前記APIとを互いに対応させて記憶するコマンド・API対応管理部と、
 前記コマンド受信部で受信する前記コマンドに対応付けられた前記APIを前記コマンド・API対応管理部において特定したうえで、特定した前記APIを実行するコマンド実行部と、
 前記APIが提供する機能が実装されたユーザプログラムと、
 前記コマンド実行部で前記APIが実行されることで得られる戻り値と返却引数の値とを含む前記実行結果ログを作成するログ出力部と、
 前記実行結果ログの出力方法を定義するログ記述ルール管理部と、
 前記ログ記述ルール管理部で定義された前記出力方法に基づいて前記実行結果ログを前記API検証装置に送信するログ送信部と、
 を備える。
 かかる構成により、ターゲット装置上のユーザプログラムをAPI単位で制御し、ターゲット装置上で出力したログからテスト結果を判定することを可能となる。
 本発明のAPI検証システムは、
 前記APIの実行後に任意のタイミングで発生する、非同期イベントを受信するイベント受信部をさらに備え、
 前記ログ記述ルール管理部は、前記非同期イベントに関するログの出力方法を定義し、
 前記イベント受信部は、前記非同期イベントの受信を前記ログ出力部に通知し、
 前記ログ出力部は、前記非同期イベントを検証する際には、前記ログ記述ルール管理部から読み出した前記非同期イベントに関するログ記述ルールを含む実行結果ログを生成し、
 前記仮想API部は、
 前記ターゲット装置で前記非同期イベントが発生するタイミングを検出する非同期イベント待機設定器をさらに備え、
 前記イベント情報管理器は、前記非同期イベントの情報をさらに管理し、
 前記ログフィルタは、前記イベント情報管理器で管理している前記非同期イベントの情報に基づいて、前記実行結果ログから前記非同期イベントに関するログを抽出する、
 のが好ましい。かかる構成により、前記発明に加え、API検証システム上で非同期イベントに対応する制御も可能となる。
 本発明のAPI検証システムは、
 前記テスト手順記述部は、
 第一のテスト手順が記述された第一のテスト手順記述部と、
 第二のテスト手順が記述された第二のテスト手順記述部と、
 を備え、
 前記仮想API部は、
 前記第一のテスト手順記述部から読出した前記第一のテスト記述と前記第二のテスト手順記述部から読出した前記第二のテスト記述とに、これらのテスト手順を個別に識別する識別子を付与したうえで、識別子付与後の両テスト手順を、前記API実行器における両テスト手順の実施状態に応じて前記API実行器に順次出力する仮想API制御器を、
 さらに備え、
 前記API実行器は、
 前記第一のテスト手順に記載されたAPI実行手順を実施する第一のAPI実行器と、
 前記第二のテスト手順に記載されたAPI実行手順を実施する第二のAPI実行器と、
 をさらに備え、
 前記API実行完了待機設定器は、前記第一のAPI実行器と、前記第二のAPI実行器とにAPI実行完了通知を行ない、
 前記コマンド実行部は、前記コマンドから前記識別子に基づいて前記第一、第二のテスト手順のどちらが実行されているのかを判別したうえでその判別結果を前記ログ出力部に出力し、
 前記ログ出力部は、前記判別結果に基づいて前記第一のテスト手順と前記第二のテスト手順とのうちのどちらを実施しているかを示すログを含んだ前記実行結果ログを出力する、
 のが好ましい。
 かかる構成により、複数のテスト手順を同時に実行することが可能となる。なお、同構成により、テスト手順を複数のターゲット上で実行することも可能となる。
 本発明のAPI検証装置によれば、テストスクリプトからユーザシステム上に実装されたソフトウェアをAPI単位で制御することが可能となる。これにより、テスト実行時のシステムの状態をAPI呼び出しにより取得したうえで、取得した状態に応じて関連するソフトウェアを制御することができる。そのため、常に同じテスト条件を作り出すことができる。その結果、デバイスドライバなどの下位層のソフトウェアを、APIの界面でテストすることが可能となる。
図1は本発明の実施の形態1における検証システム全体を示す構成図である。 図2は実施の形態1におけるパラメータ記憶器に登録するデータ構造である。 図3は、実施の形態1におけるイベント情報である。 図4は、実施の形態1におけるコマンド構造を示す図である。 図5は、実施の形態1におけるコマンド・API対応を表す図である。 図6は、実施の形態1におけるログ記述ルールである。 図7は、実施の形態1における検証システム全体を示す構成図である。 図8は、実施の形態1における検証システム全体を示す構成図である。 図9は、実施の形態1における実行ログ記述ルールである。 図10は、本発明の実施の形態2における検証システム全体を示す構成図である。 図11は、本発明の実施の形態3における検証システム全体を示す構成図である。 図12は、従来例における検証システム全体を示す構成図である。
 以下、本発明のAPI検証装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動を行うので、再度の説明を省略する場合がある。
 (実施の形態1)
 図1は、本発明の実施の態1におけるAPI検証装置のブロック図である。本実施形態にかかる検証システムは、ホストPC上で動作するAPI検証装置1000Aとターゲット装置2000Aとを備える。API検証装置1000Aは、テスト手順記述部1100、仮想API部1200、スクリプト実行部1300、コマンド送信部1400、およびログ受信部1500を備える。仮想API部1200は、API実行器1201、パラメータ記憶器1202、API実行完了待機設定器1203、イベント情報管理器1204、ログフィルタ1205、およびテスト結果判定部1600を備える。ターゲット装置2000Aは、コマンド受信部2100、コマンド実行部2200、コマンド・API対応管理部2300、ユーザプログラム2400、ログ出力部2500、ログ記述ルール管理部2600、およびログ送信部2700を備える。
 以下、実際に検証を行なう際の流れを説明するとともに各部の動作を説明する。検証動作は、API検証装置1000Aのコマンド送信動作と、ターゲット装置2000Aのログ送信動作と、API検証装置1000Aのログ受信動作とを含む。
 (API検証装置1000Aのコマンド送信動作)
 テスト手順記述部1100にはテスト実行手順が記述されている。テスト実行手順は、APIに渡す引数の値の代入手順やAPIの呼び出し順序が記載されたものである。以降、テスト実行手順をAPIの実行単位に区切ったものをAPIの実行手順と呼ぶ。検証が開始されるとテスト手順記述部1100は、テスト手順をAPI実行器1201に出力する。テスト手順を受け取ったAPI実行器1201は、引数や戻り値を設定する変数の情報をパラメータ記憶器1202に登録するとともに、APIの実行が完了するまで待機する旨のAPIの実行登録をAPI実行完了待機設定器1203に行なう。その後、API実行器1201は、API実行手順をスクリプト実行部1300に出力する。
 ここでパラメータ記憶器1202に登録・記憶されるパラメータ詳細内容について説明する。パラメータ詳細内容とは、引数や戻り値を設定する変数の情報のことである。図2はパラメータ記憶器1202に登録・記憶されるパラメータ詳細内容を示す図である。パラメータ記憶器1202には、パラメータ詳細内容として、API名と、そのAPIに渡される引数および戻り値とが互いに関連付けられた状態で格納される。したがって、パラメータの詳細内容を参照すれば、登録されているAPI名から引数と戻り値とを特定できる。引数と戻り値とには、APIを呼び出す際においてAPIに入力されるパラメータの値のみが設定される。そのうえで、引数と戻り値とには、APIの呼び出しが完了した後において出力パラメータが設定される。なお、出力パラメータの設定はログフィルタ1205より行なわれる。
 API実行完了待機設定器1203は、API完了イベントをイベント情報管理器1204に登録する。具体的にはAPI実行完了待機設定器1203は、API完了イベントとして“WAITING情報”をイベント情報管理器1204に登録する。イベント情報管理器1204は、“WAITING情報”に基づいて、登録された情報(APIやそのパラメータ詳細内容)がログフィルタ1205にイベントとして通知されるまで、”WAITING″(待ち)を行なう。ここで言う”WAITING”とは、例えば無限ループや定期的にイベントを確認するポーリング処理などを示すが、それらに限定されるものではないのはいうまでもない。
 イベント情報管理器1204は、APIの完了イベントとAPIとを関連付けてなるイベント情報を保持する。図3はイベント情報管理器1204が保持するイベント情報の例を示す。図3の例では、文字列でイベント名を表しており、仮想API部1200は、イベント情報管理器1204が保持するイベント情報を検出するか否かに基づいて、処理がAPIの呼び出しから復帰してきたか否かを判断する。パラメータ記憶器1202は、API実行器1201によって登録処理される引数や戻り値といったパラメータ詳細情報を保持する。
 スクリプト実行部1300はAPI実行器1201から送られてきたAPI実行手順を解釈することでそれを図4に示すコマンドの構造(以下、単にコマンドと称す)に変換する。スクリプト実行部1300は、コマンド(API実行手順)をコマンド送信部1400に出力する。コマンド送信部1400は、スクリプト実行部1300から受け取ったコマンドを送信順序に従ってターゲット装置2000Aに送信する。
 ここで、コマンド送信部1400によって送信されるコマンドの説明を行なう。図4に示すようにコマンドは文字列によって表されており、先頭の「APINAME」という文字列によって表わされるAPIとその引数とが順次配置されている。コマンドは、その配置順に沿ってコマンド送信部1400からターゲット装置2000Aに送信される。
 (ターゲット装置2000Aのコマンド受信/ログ送信動作)
 コマンド受信部2100は、API検証装置1000Aから送信されるコマンドを受信し、コマンド実行部2200に渡す。コマンド実行部2200は、コマンド・API対応管理部2300に格納されているコマンドとAPIとの対応付けを参照することで、受信したコマンドに対応するAPIをユーザプログラム2400から読み出して実行する。以下、さらに詳細に説明する。
 コマンド・API対応管理部2300は、図5に示すように、API名と、そのAPIがユーザプログラム2400のメモリ(以下、単にメモリという)上に配置されているアドレスとを対応付けて保持している。コマンド実行部2200は、コマンド内のAPI名(図例では「APINAME#X」(X:通し番号)からなる文字列)を、コマンド・API対応管理部2300に参照することで、そのAPIが配置されているメモリ上の先頭アドレス(以下、API先頭アドレスという)を特定する。さらにコマンド・API対応管理部2300は、特定したAPI先頭アドレスに存在するAPIを実行する。更にコマンド実行部2200は、API実行した結果(引数・戻り値)をユーザプログラム2400から取得して、ログ出力部2500に渡す。ログ出力部2500は、ログ記述ルール管理部2600に設けられた管理情報(以下、ログ記述ルールという)を元に受け取ったAPI実行結果を示すログ(以下、API実行結果ログと呼ぶ)を作成し、作成したAPI実行結果ログをログ送信部2700に出力する。
 ログ記述ルール管理部2600が管理するログ記述ルールの構造について図6を参照して説明する。図6は、ユーザプログラム2400上のAPIを呼び出した場合のログ記述ルールの例を示す。この例では、先頭に「EVT_APIRET:」という文字列が、その後に「RETVAL」の部分が、さらにその後に「ARGVAL1」、「ARGVAL2」の部分が設けられている。なお、ここでいう前後とは、データ送信順序に沿った位置関係をいう。
 「EVT_APIRET:」は、APIを呼び出す際のログ記述ルールであることを示す。「RETVAL」の部分には、APIを呼び出す際に返却された戻り値がログとして付加される。「ARGVAL1」、「ARGVAL2」の部分には、APIの引数として出力されるパラメータのログが付加される。
 ログ出力部2500による出力動作に戻って説明を行う。ログ出力部2500は、テスト結果を判定するためのログ(以下、テスト結果を判定するためのログという)を、ログ記述ルールで記述されたAPI実行結果ログとともにログ送信部2700に出力する。テスト結果を判定するためのログは、例えばAPIに渡した引数・戻り値の情報やAPIの内部の処理経路を表すログのことを示し、その先頭には、テスト結果を判定するためのログであることを表すヘッダが付加される。このヘッダの一例が図9に示す「<EXLOG>」である。以降、API実行結果ログとテスト結果を判定するためのログとを合わせて実行結果ログという。ログ送信部2700は、実行結果ログをAPI検証装置1000Aのログ受信部1500に送信する。
 (API検証装置1000Aのログ受信動作)
 ログ受信部1500は、ターゲット装置2000Aから受信した実行結果ログをログフィルタ1205に出力する。ログフィルタ1205は、実行結果ログを受け取ると、イベント情報管理器1204から“WAITING情報”を取得する。“WAITING情報”とは、前述した通り、待ちAPI実行完了待機設定器1203がWAITING(待ち)を行なっているAPI(イベント)に関する情報である。ログフィルタ1205は、実行結果ログを“WAITING情報”に基づいて解析することで、実行結果ログの中に、WAITING(待ち)を行なっているAPIの実行結果が含まれるか否かを判断する。含まれると判断する場合、ログフィルタ1205は、WAITING(待ち)を行なっているAPIの実行が完了したと判断してそのことをAPI実行完了待機設定器1203に通知する。API実行完了待機設定器1203は、受け取った通知(API完了通知)に基づいて、実行が完了したAPIのWAITING(待ち)を解除する。さらにログフィルタ1205は、実行結果ログから、処理が完了したAPIのAPI実行結果ログを抽出する。このログは前述したように引数や戻り値の情報である。ログフィルタ1205は、抽出したAPI実行結果ログをパラメータ記憶器1202に登録されている変数の情報に照合させることでその値(引数・戻り値)を設定する。ログフィルタ1205は、設定したAPI実行結果ログの値(引数・戻り値)をログフィルタ1205を介してAPI実行完了待機設定器1203に出力する。
 さらにログフィルタ1205は、実行結果ログから、テスト結果を判定するためのログを抽出し、抽出したテスト結果を判定するためのログをテスト結果判定部1600に出力する。テスト結果判定部1600はテスト結果を判定するためのログを解析することで、実行が完了したAPIが正しく実行されたか否かを判定する。
 API実行完了待機設定器1203は、WAITING(待ち)を解除したタイミングでAPI実行結果ログの値(引数・戻り値)をAPI実行器1201を介してテスト手順記述部1100に出力する。テスト手順記述部1100は、取得したAPI実行結果ログの値(引数・戻り値)に基づいて次のAPIの呼び出しを実施する。
 以上説明したように、本実施の形態によれば仮想API部1200がターゲット装置2000Aと同期してAPIの呼び出しコマンドの送信や、決まった形式で出力された実行結果ログを解析してその引数・戻り値を設定したうえで、設定した引数・戻り値をテスト手順記述部1100に返却する。これにより、テスト手順記述部1100上では、仮想API部1200が提供するユーザプログラムと同じインターフェースを用いて、ターゲット側APIの実行を制御することが可能となる。これにより本実施の形態では、ターゲット装置2000A上で出力された実行結果ログに基づいてテスト結果判定部1600がテスト結果を自動的に判定することが可能となる。
 なお、本実施の形態では、図7に示すように、ターゲット装置2000Fにログ蓄積部2900とログフィルタ2800とを設けてもよい。この構成では、テスト結果を判定するためのログを一旦ターゲット装置2000Fのログ蓄積部2900で蓄積したうえで、テスト手順が一通り実施されたタイミングでテスト結果を判定するためのログをターゲット装置2000Fのログ送信部2700からAPI検証装置1000Fに送信する。API検証装置1000Fでは、受信したテスト結果を判定するためのログをログ受信部1500とログフィルタ1215とを介してテスト結果判定部1600に出力する。これによれば、テスト結果を判定するためのログの伝送に起因してAPIの実行が遅延することが防止される。
 さらに、本実施の形態では、図8に示すように、ターゲット装置2000Gにログフィルタ2800と第二のログ送信部2710とをさらに設け、API検証装置1000Gに第二のログ受信部1510をさらに設けてもよい。この構成では、ターゲット装置2000Gのログフィルタ2800が、API実行結果ログからテスト結果を判定するためのログを抽出したうえで、抽出したテスト結果を判定するためのログを、ログフィルタ2800が第二のログ送信部2710を介してAPI検証装置1000Gに送信する。API検証装置1000Gでは、第二のログ受信部1510でテスト結果を判定するためのログを受信したうえで、第二のログ受信部1510から直接にテスト結果判定部1600に出力することでテスト結果を判定するためのログの伝送に起因してAPIの実行が遅延することが防止される。
 (実施の形態2)
 実施の形態2では、非同期イベントを検証するシステムについて説明する。まず、本実施の形態2における、非同期イベントの定義について明らかにする。非同期イベントとは、API実行をトリガとしてターゲット装置上のハードウェア、ソフトウェアから発生する割り込みイベントのことを示す。例えば、メモリ間のデータ転送開始処理が実装されたAPIの場合、APIの呼び出し後、データの転送開始処理自体は確認できるが、データの転送処理自体が実施されたどうかは、実際にハードウェア及び更に下位にあたるプログラムからの応答を受けるまで確認することができない。ここで言う“応答”とは、例えばデータ転送完了通知等を示す。このようなハードウェア及び下位プログラムからの応答のことを非同期イベントと呼ぶ。
 図10は本発明の実施の形態2の構成図である。図10についても図1と同様に、ホストPC上で動作するAPI検証装置1000Bとターゲット装置2000Bとを備える。API検証装置1000Bは、テスト手順記述部1100、仮想API部1210、スクリプト実行部1300、コマンド送信部1400、およびログ受信部1500を備える。仮想API部1210は、API実行器1201、パラメータ記憶器1202、API実行完了待機設定器1203、イベント情報管理器1214、ログフィルタ1215、および非同期イベント待機設定器1216を備える。
 ターゲット装置2000Bは、コマンド受信部2100、コマンド実行部2200、コマンド・API対応管理部2300、ユーザプログラム2400、ログ出力部2500、ログ記述ルール管理部2610、ログ送信部2700、およびイベント受信部3000を備える。
 本実施の形態が実施の形態1と異なる点は、
・API検証装置1000Bが非同期イベント待機設定器1216を備えること、
・イベント情報管理器1214が非同期イベント情報管理機能を備えること、
・ログフィルタ1215が非同期イベント抽出機能を備えること、
・ターゲット装置2000Bにイベント受信部3000を備えること、
 である。
 以下、本実施の形態において、非同期イベントのWAITING(待ち)処理を実施する際における各部の動作を説明する。検証動作は、API検証装置1000Bの準備動作と、ターゲット装置2000Bのログ送信動作と、API検証装置1000Bのログ受信動作とを含む。
 (API検証装置1000Bの準備動作)
 非同期イベントのWAITING(待ち)処理を行なう場合、テスト手順記述部1100は、非同期イベント待機設定器1216に、非同期イベントのWAITING(待ち)処理を行なう際の手順を示す情報を出力する。非同期イベント待機設定器1216は、イベント情報管理器1214に、WAITING(待ち)処理を行なうイベント情報を登録する。なお、非同期イベントのWAITING(待ち)処理を行なう手順とは、非同期イベント待機設定器1216によって待機開始が設定されたうえで待機が終了する(返却される)までの間の一連の処理手順のことを示す。
 (ターゲット装置2000Bのログ送信動作)
 API検証装置1000Bの準備動作が完了した後、テスト手順記述部1100からのAPIの実行などをトリガとして、ターゲット装置2000Bの上のシステムで非同期イベントが発生すると、イベント受信部3000は、ユーザプログラム2400から、非同期イベントが発生した際に通知されるパラメータを受信し、ログ出力部2500に出力する。ログ出力部2500はログ記述ルール管理部2610から非同期イベントのログ記述ルールを参照して非同期イベントの実行結果ログを作成する。ログ出力部2500は、作成した非同期イベントの実行結果ログをログ送信部2700に出力する。ログ送信部2700は、受け取った非同期イベントの実行結果ログをAPI検証装置1000Bのログ受信部1500に送信する。
 (API検証装置1000Bのログ受信動作)
 ログ受信部1500は、ログ送信部2700から受け取った非同期イベントの実行結果ログをログフィルタ1215に出力する。ログフィルタ1215は、受け取った非同期イベントの実行結果ログを解析する。この解析において、イベント情報管理器1214に登録されている非同期イベントを検出すると、ログフィルタ1215は、非同期イベントログに含まれるパラメータをパラメータ記憶器1202に設定し、さらに、非同期イベントを検出したことを非同期イベント待機設定器1216に通知する。
 非同期イベント待機設定器1216は、非同期イベント検出通知を受け取ると、パラメータ記憶器1202から非同期イベントにより返却される変数を呼び出し、呼び出した変数に非同期イベント時に返却された値を設定して、テスト手順記述部1100に返却する。
 以上のように、本実施の形態では、非同期イベントのWAITING(待ち)処理を行なう際に、ログフィルタ1215が、イベント情報管理器1214を参照して非同期イベントを判断することで、ターゲット装置2000Bにおける非同期イベントの発生(非同期イベントの実行ログ)を検知し、非同期イベント待機設定器1216に非同期イベントの発生を通知する。なお、ログフィルタ1215が、イベント情報管理器1214から参照する情報は、API検証装置1000Bの準備動作にて予め設定しておいた、WAITING(待ち)処理を行うイベント情報である。
 これにより、APIを実行し戻り値を取得した後、実際の内部処理が行われ、その動作が完了した時点で発生する非同期イベントの受信をもってAPIの目的が達成される、いわゆる非同期イベントの検証を実施することが可能となる。
 (実施の形態3)
 本発明の実施形態3にかかる検証システムは、図11に示すように、ホストPC上で動作するAPI検証装置1000Dと第一のターゲット装置2000Aaと第二のターゲット装置2000Abとを備える。第一のターゲット装置2000Aaは、第一のコマンド受信部2100a、第一のコマンド実行部2200a、第一のコマンド・API対応管理部2300a、第一のユーザプログラム2400a、第一のログ出力部2500a、第一のログ記述ルール管理部2600a、および第一のログ送信部2700aを備える。第二のターゲット装置2000Abは、第二のコマンド受信部2100b、第二のコマンド実行部2200b、第二のコマンド・API対応管理部2300b、第二のユーザプログラム2400b、第二のログ出力部2500b、第二のログ記述ルール管理部2600b、および第二のログ送信部2700bを備える。
 このように第一のターゲット装置2000Aaと第二のターゲット装置2000Abとは、ターゲット装置2000Aと同様の構成を備える。さらには、API検証装置1000Dが、テスト手順記述部1100、仮想API部1220、スクリプト実行部1300、コマンド送信部1400、およびログ受信部1500を備える点は、実施の形態1(図1)と同様である。
 本実施の形態が実施の形態1(図1)と異なるのは、仮想API部1220に、仮想API制御器1217と、第一のAPI実行器1221aと、第二のAPI実行器1221bと、API実行完了待機設定部1223とを備えることである。但し、第一のAPI実行器1221aと第二のAPI実行器1221bとは全く同じ機能を有する。
 以上のように構成された本実施の形態の検証システムについて、以下に各部の動作を説明する。検証動作は、API検証装置1000Dのコマンド送信動作と、第一、第二のターゲット装置2000Aa、2000Abのログ送信動作と、API検証装置1000Dのログ受信動作とを含む。
 (API検証装置1000Dのコマンド送信動作)
 第一のテスト手順記述部1100aと第二のテスト手順記述部1100bとにはそれぞれテスト手順が記述されている。テスト手順には、APIに渡す引数に値を代入する手順やAPIを呼び出す順序が記載されている。検証が開始されると第一のテスト手順記述部1100aと第二のテスト手順記述部1100bとは、テスト手順を、仮想API制御器1217に出力する。第一のテスト手順記述部1100aと第二のテスト手順記述部1100bとに記述されているテスト手順には、各々のテストを識別するための識別情報(以下、スクリプト識別情報という)が記述されている。
 仮想API制御器1217は、第一のAPI実行器1221aあるいは第二のAPI実行器1221bにAPI実行手順を出力する。仮想API制御器1217は、API実行手順の出力に際して、第一のAPI実行器1221aと第二のAPI実行器1221bとのうちのどちらにAPI実行手順を出力するかを選択する。以下、その選択方法について説明する。
 まず仮想API制御器1217は、任意に選択した一つのAPI実行器(例えば第一のAPI実行器1221a)にAPI実行手順を出力可能であるかどうかを判断する。この判断は、選択したAPI実行器において既に他のテスト手順が実施されている状態であるか否かを確認することで実施される。出力可能であると判断する場合、仮想API制御器1217は、出力可能と判断した方のAPI実行器(例えば第一のAPI実行器1221a)にAPI実行手順を出力する。出力不可能であると判断する場合、仮想API制御器1217は、出力不可能と判断した方とは異なる他方のAPI実行器(例えば第二のAPI実行器1221b)にAPI実行手順を出力する。以下、API実行手順が出力されるAPI実行器に、便宜的に符号1221xを付す。
 なお、仮想API制御器1217は、API実行手順を出力する際には、API実行手順を送信するターゲット装置を識別する識別情報(以下、ターゲット装置識別情報という)をAPI実行手順に付加する。ターゲット装置の識別情報とは、例えばIPアドレスやMACアドレスを示すが、それらに限定されるものではないのはいうまでもない。
 API実行手順を受け取ったAPI実行器1221xは、スクリプト実行部1300にAPI実行手順を出力する。この時、API実行器1221xはスクリプト記述情報に基づいて、実行しているスクリプトを特定する情報を作成して保持しておく。スクリプト実行部1300は、受け取ったAPI実行手順を解釈することでコマンド(API名と引数との構造)に変換してコマンド送信部1400に出力する。スクリプト実行部1300は、作成するコマンドに、ターゲット装置識別情報やスクリプトの記述情報を更に付与する。ターゲット装置識別情報は、前述したように仮想API制御器1217によってAPI実行手順に付加されている。
 コマンド送信部1400は、API実行手順に付加されたターゲット装置識別情報に基づいて、コマンド(API実行手順)をターゲット装置2000Axに送信する。ここで、ターゲット装置2000Axは、第一のターゲット装置2000Aa、または第二のターゲット装置2000Ab、または両ターゲット装置2000Aa、2000Abとなる。
 (第一、第二のターゲット装置2000Aa、2000Abのコマンド受信/ログ送信動作)
 第一のターゲット装置2000Aaと第二のターゲット装置2000Abとは全く同機能を有し、同じ動作をするため、第一のターゲット装置2000Aaを代表してその動作の説明を行なう。
 第一のコマンド受信部2100aは、コマンドを受信するとそのコマンドを第一のコマンド実行部2220aに出力する。第一のコマンド実行部2220aは、第一のコマンド・API対応管理部2300aを参照することで、受信したコマンドをコマンドそのものとAPI引き数とに変換する。第一のコマンド実行部2220aは、変換により得られるコマンドとAPI引き数とに基づいて第一のユーザプログラム2400a上のAPIを実行する。
 第一のコマンド実行部2220aは、第一のユーザプログラム2400a上のAPIを実行することで、実行しているスクリプトを特定する情報(以下、スクリプト識別情報という)と、実行しているターゲットを特定する情報(以下、ターゲット識別情報という)と、APIを実行した結果得られる戻り値とを取得し、それらを第一のログ出力部2500aに出力する。
 第一のログ出力部2500aは、API実行の結果得られる戻り値とスクリプト識別情報とターゲット識別情報とを第一のログ送信部2700aに出力する。戻り値とスクリプト識別情報とターゲット識別情報とは、第一のログ記述ルール管理部2600aの指示に従ってAPIを実行した結果のログ(実行結果ログ)である。第一のログ送信部2700aは、受け取った実行結果ログを、第一のログ出力部2500aからAPI検証装置1000Dのログ受信部1500に送信する。
 (API検証装置1000Dのログ受信動作)
 ログ受信部1500は、受信した実行結果ログを仮想API部1220のログフィルタ1205に出力する。ログフィルタ1205は、受信した実行結果ログを、イベント情報管理器1204を参照して調べることで、API実行完了待機状態のイベントを示すログが受信ログ内にあるか否かを判断する。API実行完了待機状態のイベントを示すログが受信ログ内にあると判断するとログフィルタ1205は、API実行完了待機状態のイベントに対応する戻り値パラメータをパラメータ記憶器1202に設定した後、API実行完了待機設定器1223にスクリプト識別情報とターゲット識別情報とを通知する。API実行完了待機設定器1223は、通知を受けたスクリプト識別情報とターゲット識別情報とを第一のAPI実行器1221aと第二のAPI実行器1221bとに出力する。第一のAPI実行器1221aと第二のAPI実行器1221bとは、スクリプト識別情報を解釈して、そのスクリプトが現在実行しているスクリプトであると判断すれば、パラメータ記憶器1202から上記戻り値パラメータを取得して、その戻り値パラメータを仮想API制御器1217に返却する。戻り値パラメータの返却を受けた仮想API制御器1217は、スクリプト識別情報に基づいて第一のテスト手順記述部1100aと第二のテスト手順記述部1100bとのうちの一つを特定したうえで、特定したテスト手順記述部に戻り値を返却する。但し、同じスクリプトを別のターゲット上でも実行している場合はもう一方のターゲット上でのAPIの実行完了を待つ。
 以上説明したように、本実施の形態によれば複数のテスト手順を実行することが可能となる。なお、本実施の形態によれば一つ以上のテスト手順を実行する場合に、仮想API制御器1217からコマンド送信先を指定することで複数のターゲット装置を同時にAPI単位で制御することが可能となる。
 以上のように、本発明にかかるAPI検証装置は、テストスクリプトからユーザシステム上に実装されたソフトウェアをAPI単位で制御することが可能となる、という効果を有し、API検証装置やターゲット側のシステムと組み合わせた、API検証システムとして有用である。
1000A API検証装置
2000A ターゲット装置
2000Aa 第一のターゲット装置
2000Ab 第二のターゲット装置
1100  テスト手順記述部
1100a 第一のテスト手順記述部
1100b 第二のテスト手順記述部
1200  仮想API部
1201  API実行器
1201a 第一のAPI実行器
1201b 第二のAPI実行器
1202  パラメータ記憶器
1203  API実行完了待機設定器
1204  イベント情報管理器
1205  ログフィルタ
1217  仮想API制御器
1221a  第一のAPI実行器
1221b  第二のAPI実行器
1300  スクリプト実行部
1400  コマンド送信部
1500  ログ受信部
1510  第二のログ受信部
1800  テスト結果判定部
2100  コマンド受信部
2100a 第一のコマンド受信部
2100b 第二のコマンド受信部
2200  コマンド実行部
2200a 第一のコマンド実行部
2200b 第二のコマンド実行部
2300  コマンド・API対応管理部
2300a 第一のコマンド・API対応管理部
2300b 第二のコマンド・API対応管理部
2400  ユーザプログラム
2400a 第一のユーザプログラム
2400b 第二のユーザプログラム
2500  ログ出力部
2500a 第一のログ出力部
2500b 第二のログ出力部
2600  ログ記述ルール管理部
2600a 第一のログ記述ルール管理部
2600b 第二のログ記述ルール管理部
2610  ログ記述ルール管理部
2700  ログ送信部
2700a 第一のログ送信部
2700b 第二のログ送信部
2710  第二のログ送信部
2800  ログフィルタ
2900  ログ蓄積部

Claims (9)

  1.  API(Application Program Interface)を実行可能なターゲット装置に相互通信可能に接続されたAPI検証装置であって、
     前記APIのテスト手順が記述されたテスト手順記述部と、
     前記ターゲット装置におけるAPIインターフェースを前記テスト手順記述部に提供したうえで当該テスト手順記述部から前記テスト手順を取り出し、取り出した当該テスト手順で前記APIを呼び出すコマンドを発行する仮想API部と、
     前記コマンドのスクリプト解釈を行なうスクリプト実行部と、
     前記スクリプト実行部でスクリプト解釈された前記コマンドを前記ターゲット装置に送信するコマンド送信部と、
     前記コマンドに基づいて前記APIを実行する前記ターゲット装置から前記APIの実行結果ログを受信するログ受信部と、
     を備え、
     前記仮想API部は、前記ログ受信部が受信する前記実行結果ログから前記APIを実行することで得られる戻り値を取得する、
     API検証装置。
  2.  前記仮想API部は、前記ターゲット装置上で実行される前記APIと同種のインターフェースを有しており、
     かつ前記仮想API部は、
     前記ターゲット装置で前記APIを実行させるトリガを出力するAPI実行器と、
     前記APIに渡すパラメータを記憶するパラメータ記憶器と、
     前記ターゲット装置が前記APIの実行を完了するタイミングを検出するAPI実行完了待機設定器と、
     前記ターゲット装置で実行される前記APIにおける実行完了イベントを管理するイベント情報管理器と、
     前記実行結果ログから、前記戻り値を示す情報と、API実行完了を示す情報と、イベント情報に関するログとを抽出するログフィルタと、
     を備える、
     請求項1のAPI検証装置。
  3.  請求項2のAPI検証装置と、前記ターゲット装置とを備え、
     前記ターゲット装置は、
     前記API検証装置が送信する前記コマンドを受信するコマンド受信部と、
     前記コマンドと前記APIとを互いに対応させて記憶するコマンド・API対応管理部と、
     前記コマンド受信部で受信する前記コマンドに対応付けられた前記APIを前記コマンド・API対応管理部において特定したうえで、特定した前記APIを実行するコマンド実行部と、
     前記APIが提供する機能が実装されたユーザプログラムと、
     前記コマンド実行部で前記APIが実行されることで得られる戻り値と返却引数の値とを含む前記実行結果ログを作成するログ出力部と、
     前記実行結果ログの出力方法を定義するログ記述ルール管理部と、
     前記ログ記述ルール管理部で定義された前記出力方法に基づいて前記実行結果ログを前記API検証装置に送信するログ送信部と、
     を備える、
     検証システム。
  4.  前記ターゲット装置は、
     前記APIの実行後に任意のタイミングで発生する、非同期イベントを受信するイベント受信部をさらに備え、
     前記ログ記述ルール管理部は、前記非同期イベントに関するログの出力方法を定義し、
     前記イベント受信部は、前記非同期イベントの受信を前記ログ出力部に通知し、
     前記ログ出力部は、前記非同期イベントを検証する際には、前記ログ記述ルール管理部から読み出した前記非同期イベントに関するログ記述ルールを含む実行結果ログを生成し、
     前記仮想API部は、
     前記ターゲット装置で前記非同期イベントが発生するタイミングを検出する非同期イベント待機設定器をさらに備え、
     前記イベント情報管理器は、前記非同期イベントの情報をさらに管理し、
     前記ログフィルタは、前記イベント情報管理器で管理している前記非同期イベントの情報に基づいて、前記実行結果ログから前記非同期イベントに関するログを抽出する、
     請求項3の検証システム。
  5.  前記テスト手順記述部は、
     第一のテスト手順が記述された第一のテスト手順記述部と、
     第二のテスト手順が記述された第二のテスト手順記述部と、
     を備え、
     前記仮想API部は、
     前記第一のテスト手順記述部から読出した前記第一のテスト手順と前記第二のテスト手順記述部から読出した前記第二のテスト手順とに、これらのテスト手順を個別に識別する識別子を付与したうえで、識別子付与後の両テスト手順を、前記API実行器における両テスト手順の実施状態に応じて前記API実行器に順次出力する仮想API制御器を、
     さらに備え、
     前記API実行器は、
     前記第一のテスト手順に記載されたAPI実行手順を実施する第一のAPI実行器と、
     前記第二のテスト手順に記載されたAPI実行手順を実施する第二のAPI実行器と、
     をさらに備え、
     前記API実行完了待機設定器は、前記第一のAPI実行器と、前記第二のAPI実行器とにAPI実行完了通知を行ない、
     前記コマンド実行部は、前記コマンドから前記識別子に基づいて前記第一、第二のテスト手順のどちらが実行されているのかを判別したうえでその判別結果を前記ログ出力部に出力し、
     前記ログ出力部は、前記判別結果に基づいて前記第一のテスト手順と前記第二のテスト手順とのうちのどちらを実施しているかを示すログを含んだ前記実行結果ログを出力する、
     請求項3のAPI検証システム。
  6.  前記ターゲット装置は、
     第一のターゲット装置と、
     第二のターゲット装置と、
     を備え、
     前記テスト手順記述部に記述された前記テスト手順には、当該テスト手順を実行するターゲット装置を指定する情報がさらに記述されており、
     前記API実行器は、
     第一のAPI実行器と、
     第二のAPI実行器と、
     を備え、
     前記仮想API部は、
     前記テスト手順で指定されたターゲット装置の識別情報と前記API実行器とを関連付けたコマンドを前記API実行器に出力する仮想API制御器を、
     さらに備え、
     前記API実行完了待機設定器は、前記ログフィルタが抽出する前記実行結果ログを、前記第一のAPI実行器と前記第二のAPI実行器とに通知する、
     請求項3の検証システム。
  7.  前記ログフィルタは、前記実行結果ログから前記APIのテスト結果を判定するためのログをさらに抽出し、
     前記API検証装置は、
     前記テスト結果を判定するためのログに基づいて前記APIが正しく実行されたか否かを判定するテスト結果判定部を、
     さらに備える、
     請求項3の検証システム。
  8.  前記ターゲット装置は、
     前記テスト結果を判定するためのログの記述ルールが記述されたログ記述ルール管理部と、
     前記テスト結果を判定するためのログと前記実行結果ログとを振り分けるログフィルタと、
     前記ログフィルタによって振り分けられた前記テスト結果を判定するためのログを蓄積するログ蓄積部と、
     をさらに備え、
     前記ログ送信部は、APIの実行完了後、前記テスト結果の判定を行なうためのログを前記ログ蓄積部から読み出して、前記API検証装置に送信する、
     請求項7の検証システム。
  9.  前記ターゲット装置は、
     前記テスト結果を判定するためのログと前記実行結果ログとを振り分けるログフィルタと、
     前記ログフィルタで振り分けられた前記テスト結果を判定するためのログを前記API検証装置に送信する第二のログ送信部と、
     を備え、
     前記API検証装置は、
     前記第二のログ送信部から送信された前記テスト結果の判定するためのログを受信して前記テスト結果判定部に直接出力する第二のログ受信部を、
     さらに備える、
     請求項7の検証システム。
PCT/JP2009/002239 2008-06-10 2009-05-21 組み込み機器におけるapi評価システム WO2009150788A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010516734A JP5337155B2 (ja) 2008-06-10 2009-05-21 組み込み機器におけるapi評価システム
US12/948,526 US8443381B2 (en) 2008-06-10 2010-11-17 API evaluation system in embedded device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-151457 2008-06-10
JP2008151457 2008-06-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/948,526 Continuation US8443381B2 (en) 2008-06-10 2010-11-17 API evaluation system in embedded device

Publications (1)

Publication Number Publication Date
WO2009150788A1 true WO2009150788A1 (ja) 2009-12-17

Family

ID=41416502

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/002239 WO2009150788A1 (ja) 2008-06-10 2009-05-21 組み込み機器におけるapi評価システム

Country Status (3)

Country Link
US (1) US8443381B2 (ja)
JP (1) JP5337155B2 (ja)
WO (1) WO2009150788A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2485204A (en) * 2010-11-05 2012-05-09 Jk Technosoft Uk Ltd Automating testing of an application using a hook mechanism
JP2016177659A (ja) * 2015-03-20 2016-10-06 ヤフー株式会社 検証プログラム、検証装置及び検証方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10776233B2 (en) * 2011-10-28 2020-09-15 Teradyne, Inc. Programmable test instrument
US9759772B2 (en) 2011-10-28 2017-09-12 Teradyne, Inc. Programmable test instrument
US9470759B2 (en) 2011-10-28 2016-10-18 Teradyne, Inc. Test instrument having a configurable interface
US9747193B1 (en) * 2013-03-13 2017-08-29 Ca, Inc. System and method for automatic root cause detection
US9940223B2 (en) * 2013-04-05 2018-04-10 FEV North America Inc. Human-machine interface test system
CN103559114B (zh) * 2013-11-12 2015-08-19 福建联迪商用设备有限公司 嵌入式模块驱动功能测试系统及方法
US10296362B2 (en) * 2014-02-26 2019-05-21 Red Hat Israel, Ltd. Execution of a script based on properties of a virtual device associated with a virtual machine
US9417992B2 (en) * 2014-09-24 2016-08-16 Oracle International Corporation Web portal API test report generation
US10810099B2 (en) * 2017-09-11 2020-10-20 Internatinal Business Machines Corporation Cognitive in-memory API logging
US10956244B1 (en) * 2020-08-26 2021-03-23 Coupang Corp. Systems and methods for automated application programming interface evaluation and migration
US11704187B1 (en) 2022-01-18 2023-07-18 Bank Of America Corporation Automated application programming interface (API) route testing system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198279A (ja) * 1996-01-19 1997-07-31 Pentel Kk シミュレ−ションソフト内蔵携帯端末装置
JP2000215082A (ja) * 1999-01-26 2000-08-04 Hitachi Ltd 分散オブジェクト環境のプレイバックテスト方式
JP2007026306A (ja) * 2005-07-20 2007-02-01 Nec Corp プログラムテスト装置、方法、及び、プログラム
JP2007219893A (ja) * 2006-02-17 2007-08-30 Seiko Epson Corp ファームウェア評価システムおよびファームウェア評価方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587969B1 (en) * 1998-06-22 2003-07-01 Mercury Interactive Corporation Software system and methods for testing the functionality of a transactional server
WO2001022228A1 (en) * 1999-09-17 2001-03-29 Nortel Networks Limited System and method for producing a verification system for verifying procedure interfaces
JP2002189617A (ja) 2000-12-22 2002-07-05 Nec Corp 評価システム、及び評価方法
NZ527660A (en) * 2001-01-26 2005-03-24 Bridicum Security Group As System for providing services and virtual programming interface
US7409602B2 (en) * 2003-11-12 2008-08-05 Lsi Corporation Methodology for debugging RTL simulations of processor based system on chip
US7287190B2 (en) * 2004-01-29 2007-10-23 Sun Microsystems, Inc. Simultaneous execution of test suites on different platforms
US7529977B2 (en) * 2006-05-31 2009-05-05 Microsoft Corporation Automated extensible user interface testing
KR20080068385A (ko) * 2007-01-19 2008-07-23 슈어소프트테크주식회사 소프트웨어 테스트 시스템, 방법 및 그 방법을 실행하기위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
US8429619B2 (en) * 2007-07-03 2013-04-23 International Business Machines Corporation Executable high-level trace file generation system
US20090249216A1 (en) * 2008-03-28 2009-10-01 International Business Machines Corporation Interacting with multiple browsers simultaneously using linked browsers controlled from a primary browser interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198279A (ja) * 1996-01-19 1997-07-31 Pentel Kk シミュレ−ションソフト内蔵携帯端末装置
JP2000215082A (ja) * 1999-01-26 2000-08-04 Hitachi Ltd 分散オブジェクト環境のプレイバックテスト方式
JP2007026306A (ja) * 2005-07-20 2007-02-01 Nec Corp プログラムテスト装置、方法、及び、プログラム
JP2007219893A (ja) * 2006-02-17 2007-08-30 Seiko Epson Corp ファームウェア評価システムおよびファームウェア評価方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2485204A (en) * 2010-11-05 2012-05-09 Jk Technosoft Uk Ltd Automating testing of an application using a hook mechanism
JP2016177659A (ja) * 2015-03-20 2016-10-06 ヤフー株式会社 検証プログラム、検証装置及び検証方法

Also Published As

Publication number Publication date
US8443381B2 (en) 2013-05-14
US20110067040A1 (en) 2011-03-17
JP5337155B2 (ja) 2013-11-06
JPWO2009150788A1 (ja) 2011-11-10

Similar Documents

Publication Publication Date Title
JP5337155B2 (ja) 組み込み機器におけるapi評価システム
Feng et al. {P2IM}: Scalable and hardware-independent firmware testing via automatic peripheral interface modeling
US8151277B2 (en) Method and system for dynamic remote injection of in-process agents into virtual machine based applications
KR101008977B1 (ko) OSGi 서비스 플랫폼 테스트 방법 및 이를 이용한테스트 툴
CN103634592A (zh) 智能电视自动化测试方法及系统
CN109426158B (zh) 用于生成在测试装置上可实施的模型的方法和测试装置
US20150100830A1 (en) Method and system for selecting and executing test scripts
US20040049362A1 (en) Same virtual machine mode for distributed test execution
WO2013099438A1 (ja) 協調シミュレーション用計算機システム、組込みシステムの検証方法及びプログラム
CN110119350A (zh) 软件开发工具包测试方法、装置和设备及计算机存储介质
CN111026627A (zh) 压力测试方法、装置及服务器
CN113672441A (zh) 对智能设备的测试方法及装置
US20120246636A1 (en) Method and arrangement for installing and configuring a computer system
KR20070052641A (ko) 로봇 제어를 위한 로봇 서버, 이를 포함하는 컨텐츠 제공시스템 및 그 방법
CN114217990A (zh) 一种基于udp协议分布式硬件远程通讯系统及其控制方法
US7873498B2 (en) Remote hardware inspection system and method
JP2008135008A (ja) プログラムモジュール検証方式
Feng et al. P $^ 2$ IM: Scalable and Hardware-independent Firmware Testing via Automatic Peripheral Interface Modeling (extended version)
CN111611065A (zh) 机器学习算法的调用方法、装置、存储介质及电子设备
US20140351643A1 (en) Smart terminal fuzzing apparatus and method using multi-node structure
US20190034259A1 (en) Systems and Methods for Implementing a Thread Trace Log
KR100918840B1 (ko) 센서 네트워크를 구성하기 위한 타겟 센서 노드를 시험하는장치 및 그 방법
KR102128004B1 (ko) 소프트웨어 검증 장치 및 방법
KR20220049334A (ko) 어플리케이션 테스트 방법 및 테스트 시스템
JP2006155047A (ja) 検証システム及び検証方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09762219

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010516734

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09762219

Country of ref document: EP

Kind code of ref document: A1