System and method for testing mobile device kernels over a network
By automating the interaction of mobile device kernels with network-based communication channels to perform input and output message testing, the problem of time-consuming manual operation in existing technologies is solved, and efficient remote automated testing of mobile device kernels is achieved.
Patent Information
- Application Number
- CN202180013664.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-02-10
- Filing Date
- 2021-02-08
- Publication Date
- 2026-01-20
- Estimated Expiration
- 2041-02-08
AI Technical Summary
Existing technologies require frequent manual operations when testing contactless access devices, especially the kernel of mobile devices, which is time-consuming and inconvenient, and makes it difficult to achieve efficient testing, especially when a large number of devices are widely distributed.
By using a network-based communication channel, automated testing is performed using a test computer and the mobile device kernel. The test plan is executed automatically using interactive input and output messages, avoiding reliance on physical probes or reprogrammable devices.
It enables highly efficient automated testing of mobile device kernels, allowing for thousands of tests to be performed remotely, reducing manual operation time, and is applicable to devices located anywhere in the world.
Smart Images

Figure CN115066876B_ABST
Abstract
Description
[0001] Cross Reference to Related Applications
[0002] This application is a PCT application claiming priority to U.S. Provisional Application No. 62 / 972,530 filed February 10, 2020, which is incorporated by reference herein. BACKGROUND
[0003] When testing contactless access devices, such as contactless terminals (e.g., transit gate terminals, point-of-sale terminals, information kiosks, etc.), a contactless probe or a reprogrammable portable device (e.g., a reprogrammable card) is used. To complete a testing plan for an access device, the contactless probe or reprogrammable portable device is manually tapped against the access device hundreds or even thousands of times. Even if the tapping process is automated, the testing process is still very time consuming because the actual action of tapping the probe or reprogrammable portable device against the access device needs to be performed. This is a problem when access devices are frequently updated and tested.
[0004] This problem is compounded when a technician does not have easy access to the access devices to be tested. For example, there can be thousands of access devices within a particular geographic location. It is impractical and inconvenient for a human technician to travel to each access device and test them.
[0005] In addition, mobile devices, such as cellular phones, are increasingly being used as access devices. For example, a resource provider can use a mobile device, such as a cellular phone, to scan a user’s access card before allowing the user to gain access to resources provided by the resource provider. It is impractical to frequently test each possible mobile device that can be used as an access device using existing testing methods.
[0006] Embodiments of the present disclosure address this and other problems individually and collectively. SUMMARY
[0007] One embodiment relates to a method comprising: determining, by a test computer, a test plan to test a kernel on a mobile device; determining, by the test computer, an interaction input message according to the test plan, the interaction input message comprising first data; transmitting, by the test computer, the interaction input message comprising the first data to the mobile device over a network-based communication channel, wherein a kernel in the mobile device generates an interaction output message in response to receiving the interaction input message; receiving, by the test computer, the interaction output message comprising second data from the mobile device over the network-based communication channel; and determining, by the test computer, whether the interaction output message is consistent with the test plan.
[0008] Another embodiment relates to a test computer comprising: a processor; and a computer readable medium coupled to the processor, the computer readable medium comprising instructions executable by the processor to cause the test computer to: determine a test plan to test a kernel on a mobile device; determine an interaction input message from the test plan, the interaction input message comprising first data; transmit the interaction input message comprising the first data to the mobile device over a network-based communication channel, wherein a kernel in the mobile device generates an interaction output message in response to receiving the interaction input message; receive the interaction output message comprising second data from the mobile device over the network-based communication channel; and determine whether the interaction output message is consistent with the test plan.
[0009] Another embodiment includes a method comprising: receiving, by a mobile device comprising a kernel, an interaction input message comprising first data from a test computer over a network-based communication channel; generating, by a kernel in the mobile device, an interaction output message comprising second data in response to receiving the interaction input message; and transmitting, by the mobile device, the interaction output message to the test computer over the network-based communication channel.
[0010] Further details regarding embodiments of the disclosure can be found in the DETAILED DESCRIPTION and the Figures. BRIEF DESCRIPTION OF DRAWINGS
[0011] Figure 1 A block diagram showing a test system according to an embodiment is shown.
[0012] Figure 2 A flow diagram illustrating a mobile device according to an embodiment is shown.
[0013] Figure 3 A block diagram showing components of a test computer according to an embodiment is shown.
[0014] Figure 4 A block diagram showing components of a test computer and a mobile device in the form of a smartphone in a test system according to an embodiment is shown.
[0015] Figure 5 A flow diagram illustrating a test method according to an embodiment is shown. DETAILED DESCRIPTION
[0016] Prior to discussing the embodiments of the disclosure, some terms can be described in more detail.
[0017] A "user" can include a person or a device that uses something.
[0018] A "portable device" can include a device that can be easily transported. For example, a user can use a portable device to interact with an access device in order to conduct an interaction. Examples of portable devices include payment devices, membership devices, access cards, identification devices, and the like.
[0019] A "mobile device" can include a device that can be carried by a user. Examples of mobile devices can include smartphones, tablets, and the like. In some embodiments, a mobile device can include an interaction application and a kernel. In some embodiments, a mobile device can be a mobile access device. A mobile access device can be used by a resource provider or a person working for a resource provider to confirm that a user using a portable device has access to a resource (e.g., a location, a good, a service, data, and the like) provided by the resource provider (e.g., a transit operator, a venue operator, a merchant, and the like).
[0020] A "test computer" can include a computer that can determine whether a target is being met. In some embodiments, a test computer can determine whether a target is being met by performing a test (e.g., an interaction test). In some embodiments, a test computer can transmit data to a mobile device to determine whether the mobile device is operating correctly. This can be based on, for example, a response that includes second data from the mobile device, the second data being responsive to first data transmitted to the mobile device by the test computer.
[0021] An "interaction" can include an action or influence on each other. An interaction can include a communication, contact, or exchange between parties, devices, and / or entities. Example interactions include a transaction between two parties and an exchange of data between two devices. In some embodiments, an interaction can include a user requesting access to secure data, a secure webpage, a secure location, and the like. In other embodiments, an interaction can include a payment transaction, where devices can interact to facilitate a payment.
[0022] "Interaction data" can include data related to an interaction. In some embodiments, interaction data can be transaction data. Transaction data can include a plurality of data elements having data values associated with a transaction. In some embodiments, interaction data can include an identifier, a credential, an amount, a date, a time, and the like.
[0023] An "interaction input message" can be a communication received during an interaction. For example, a message sent by a mobile device can be an interaction input message for receiving a portable device. One example of an interaction input message can include an APDU (Application Protocol Data Unit) command.
[0024] An "interaction output message" can be a communication sent during an interaction in response to an interaction input message. One example of an interaction output message can include an APDU response sent by a portable device in response to receiving an APDU command.
[0025] A "test interaction" can be an investigative interaction. In some embodiments, test interactions can be performed to determine information about how the interaction system works. For example, different test interactions can be designed to determine whether an interaction will be handled correctly when initiated by different types of portable devices. Test interactions can involve sending certain types of information to a mobile device during an interaction communication session in order to test how the information is handled. Some test interactions can be designed to check for errors in interaction handling. For example, some test interactions can check the response from a mobile device when a test computer provides incorrect information for an interaction. After receiving the incorrect information, a normally functioning mobile device will provide a predicted response (e.g., a particular error message).
[0026] An "interaction report" can include information about one or more previous interactions. An interaction report can describe how messages in an interaction were handled. For example, an interaction report can contain information about what was sent and received and whether the interaction was successful. An interaction report can also include notes about problems that occurred during an interaction, missing information, delays, or other issues.
[0027] An "authorization request message" can be an electronic message requesting authorization. In some embodiments, an authorization request message can be an electronic message requesting authorization for an interaction. In some embodiments, an authorization request message can be sent to a network processing computer and / or an issuer of a payment card to request authorization for an interaction. An authorization request message according to some embodiments can comply with International Standardization Organization (ISO) 8583, which is a standard for systems that exchange electronic transaction information associated with payments made by users using payment devices or payment accounts. An authorization request message can include an issuer account identifier that can be associated with a payment device or payment account. An authorization request message can also include additional data elements corresponding to "identification information," including by way of example only: a service code, a CVV (card verification value), a dCVV (dynamic card verification value), a PAN (primary account number or "account number"), a payment token, a user name, an expiration date, and the like. An authorization request message can also include "transaction information," such as any information associated with a current transaction, such as a transaction value, a merchant identifier, a merchant location, an acquirer bank identification number (BIN), a card acceptor ID, identification information for items being purchased, and the like, as well as any other information that can be used to determine whether to identify and / or authorize a transaction.
[0028] An "authorization response message" can be a message responding to an authorization request. In some cases, an authorization response message can be an electronic message reply to an authorization request generated by an issuing financial institution or a transaction processing computer.
[0029] An "authorization entity" can be an entity that authorizes a request. Examples of authorization entities can include an issuer, a government agency, a document repository, an access administrator, and the like. An authorization entity can operate an authorization entity computer. An "issuer" can refer to a business entity (e.g., a bank) that issues and optionally maintains an account of a user. An issuer can also issue payment credentials stored on a user device, such as a cellular phone, smart card, tablet, or laptop, to a consumer or, in some embodiments, to a portable device.
[0030] A "processor" can include a device that processes something. In some embodiments, a processor can include any suitable one or more data computation devices. A processor can include one or more microprocessors that work together to accomplish desired functions. A processor can include a CPU that includes at least one high-speed data processor sufficient to execute program components for executing user and / or system generated requests. A CPU can be a microprocessor, such as AMD's Athlon, Duron, and / or Opteron; IBM and / or Motorola's PowerPC; IBM's and Sony's Cell Processor; Intel's Celeron, Itanium, Pentium, Xeon, and / or XScale; and / or the like processor.
[0031] A "memory" can be any suitable one or more devices that store electronic data. Suitable memory can include non-transitory computer readable media that stores instructions that are executable by a processor to implement a desired method. Examples of memory can include one or more memory chips, disk drives, and the like. Such memory can operate using any suitable electrical, optical, and / or magnetic mode of operation.
[0032] A "server computer" can include a powerful computer or cluster of computers. For example, the server computer can be a large mainframe, a minicomputer cluster, or a group of servers acting in concert. In one example, the server computer can be a database server coupled to a Web server. The server computer can include one or more computational devices and can use any of a variety of computing structures, arrangements, and compilations to service requests from one or more client computers.
[0033] Embodiments allow for testing a mobile device kernel in a mobile device, such as a smartphone, based on a network. The mobile device kernel in a mobile device can be in an application on the mobile device. The mobile device kernel can include code for basic functionality of an application that includes or is associated with the kernel. For example, an application on a mobile device can be an acceptance application that allows the mobile device to accept or process data from an access card or a payment card. The kernel can include code for the primary interactions (e.g., message processing) that will be performed by the acceptance application.
[0034] Embodiments can use network-based APDU (application protocol data unit) transmission to automate the kernel testing process. Embodiments of the present invention do not use a contactless probe or a reprogrammable contactless device when testing an interactive application (and its kernel) on a mobile device. Using embodiments of the present invention, thousands of test cases can be executed in a fully automated and continuous manner without the need for a human or machine to physically tap a probe or reprogrammable card against a mobile device. In embodiments of the present invention, the mobile devices to be tested can be located anywhere in the world and a human need not travel to them for testing.
[0035] Figure 1 A system 100 according to an embodiment is shown. The system 100 includes a mobile device 102 and a test computer 104. The mobile device 102 and the test computer 104 can be in operable communication with each other over a communication network.
[0036] In Figure 1 A secure communication protocol can be used to transmit messages between the mobile device 102 and the test computer 104, such as, but not limited to, file transfer protocol (FTP); hypertext transfer protocol (HTTP); secure hypertext transfer protocol (HTTPS), SSL, ISO (e.g., ISO 8583), and the like. The communication network can include any one and / or combination of: a direct interconnection; the Internet; a local area network (LAN); a metropolitan area network (MAN); an operational task as an Internet node (OMNI); a secure custom connection; a wide area network (WAN); a wireless network (e.g., employing a protocol such as, but not limited to, wireless application protocol (WAP), I-Mode, and the like); and the like. The communication network can use any suitable communication protocol to generate one or more secure communication channels. In some cases, the communication channel can include a secure communication channel, which can be established in any known manner, such as by using mutual authentication and session keys and establishing a secure socket layer (SSL) session.
[0037] The mobile device 102 can be any suitable device. For example, the mobile device 102 can be a commercially available smartphone. The mobile device 102 can include an interactive application (e.g., a tap-to-phone acceptance application), which can facilitate a user performing an interaction (e.g., a transaction, data transfer, and the like). In some embodiments, the interactive application can include a kernel and a virtual portable device (e.g., a virtual payment card).
[0038] The test computer 104 can include a server computer. The test computer 104 can include a test tool including, for example, a test engine and a plurality of test plans. The test computer 104 can test whether a mobile device properly generates data, transmits data, processes data, performs interactions, etc.
[0039] Figure 2 A block diagram of a test computer 200 according to an embodiment is shown. The example test computer 200 can include a processor 204. The processor 204 can be coupled to a memory 202, a network interface 206, and a computer-readable medium 208. In some embodiments, the test computer 200 can be in operative communication with a database (not shown in FIG. 2). Figure 2
[0040] The memory 202 can be used to store data and code. The memory 202 can be coupled internally or externally to the processor 204 (e.g., cloud-based data storage), and can include any combination of volatile and / or non-volatile memory, such as RAM, DRAM, ROM, flash, or any other suitable memory device. For example, the memory 202 can store any suitable data related to interactions and / or test interactions, keys, etc.
[0041] The computer-readable medium 208 is coupled to the processor 208, the computer-readable medium 208 including instructions executable by the processor to cause the test computer to determine a test plan to test a kernel on a mobile device, determine an interaction input message according to the test plan, the interaction input message including first data, transmit the interaction input message including the first data to the mobile device over a network-based communication channel, wherein in response to receiving the interaction input message, the kernel in the mobile device generates an interaction output message, receive the interaction output message including second data from the mobile device over the network-based communication channel from the mobile device, and determine whether the second data in the interaction output message is consistent with the test plan.
[0042] The computer-readable medium 208 can also include a test engine 208A, a virtual reader 208B, and a server socket 208C.
[0043] The test engine 208A can include code for generating or selecting tests, as well as executing commands or generating messages associated with those tests. The tests to be executed can each include a set of messages having commands or data, as well as a corresponding set of responses to the messages or data. In some embodiments, the test engine 208A and the processor 208 can send an interaction input message to a kernel to be tested, and can receive an interaction output message from the kernel. The interaction output message can include data that can indicate an expected result in the context of the kernel satisfying the test. If the interaction output message includes data that does not indicate an expected result, then the kernel can not satisfy the test. The test engine 208A and the processor 204 can also evaluate whether the interaction output message is received in a manner or timeframe expected by the test engine 208A. For example, if the interaction output message is received from the kernel after a predetermined time from when the interaction input message was first transmitted to the kernel, then the test engine 208A and the processor 204 can determine that the kernel does not satisfy the test.
[0044] The virtual reader 208B can also include code for simulating the functionality of a reader in an access device. The virtual reader 208B and the processor 208B can simulate the functionality of a reader that would be present in an access device such as a functional access terminal. For example, the messages from the test engine 208A can be APDU messages that can be produced by an access card (e.g., in an NFC data format), and those messages can be received by the virtual reader 208B in the test computer 200. The virtual reader 208B and the processor 204 can operate like a real reader in a real access device, and can interpret those messages and convert them to a network-based communication protocol, such as a TCP / IP protocol. Once the messages are in a network-based communication protocol, they can be transmitted by the test computer 200 to a mobile device for testing over a communication network using the network-based protocol.
[0045] The server socket 208C can include code for listening for and responding to communications of clients over a network communication network. The server socket 208C can be a server application that listens on a particular port for connection requests from clients. When a connection request arrives, the client and the test computer 200 establish a dedicated connection over which they can communicate. During the connection process, the client is assigned a local port number and binds a socket to it. The client communicates with the test computer 200 by writing to the socket, and obtains information from the test computer 200 by reading from the socket.
[0046] The network interface 206 can include an interface that can allow the network computer 200 to communicate with external computers. The network interface 206 can enable the test computer 200 to transmit data to and from another device (e.g., the mobile device 102, etc.). Some examples of network interfaces 206 can include a modem, a physical network interface (such as an Ethernet card or other network interface card (NIC)), a virtual network interface, a communications port, a Personal Computer Memory Card International Association (PCMCIA) slot and card, etc. Wireless protocols enabled by the network interface 206 can include Wi-Fi TM Data transferred via the network interface 206 can be in the form of signals, which can be electrical, electromagnetic, optical, or any other signals capable of being received by an external communication interface (collectively referred to as "electronic signals" or "electronic messages"). These electronic messages, which can include data or instructions, can be provided to and from the network interface 206 via communication paths or channels. As described above, any suitable communication paths or channels can be used, such as electrical wires or cables, fiber optics, telephone lines, cellular links, radio frequency (RF) links, WAN or LAN networks, the Internet, or any other suitable medium.
[0047] Figure 3 A mobile communication device 300 is shown in accordance with an embodiment. The mobile communication device 300 can include device hardware 304 coupled to system memory 302, which can include computer-readable media 302.
[0048] The device hardware 304 can include a processor 306, a short-range antenna 314, a long-range antenna 316, input elements 310, a user interface 308, and output elements 312 (which can be part of the user interface 308). Examples of input elements can include a microphone, a keypad, a touchpad, sensors, etc. Examples of output elements can include a speaker, a display screen, and a haptic device. The processor 306 can be implemented as one or more integrated circuits (e.g., one or more single-core or multi-core microprocessors and / or microcontrollers) and is used to control the operation of the mobile communication device 300. The processor 306 can execute a variety of programs in response to program code or computer-readable code stored in the system memory 302 and can maintain multiple simultaneously executing programs or processes.
[0049] The long-range antenna 316 can include one or more RF transceivers and / or connectors that can be used by the mobile communication device 300 to communicate with other devices and / or connect with external networks. The user interface 308 can include any combination of input and output elements to allow a user to interact with and invoke functionality of the mobile communication device 300. The short-range antenna 314 can be configured to communicate with external entities over short-range communication mediums (e.g., using Bluetooth, Wi-Fi, infrared, NFC, etc.). The long-range antenna 314 can be configured to communicate over the air with remote base stations and remote cellular or data networks.
[0050] The system memory 302 can be implemented using any combination of any number of nonvolatile memory (e.g., flash memory), and volatile memory (e.g., DRAM, SRAM), or any other non-transitory storage medium or combination of media. The system memory 302 can store computer code executable by the processor 306 for performing any of the functions described herein. For example, the system memory 302 can include a computer-readable medium containing code executable by the processor 306 for implementing a method comprising: receiving, from a test computer over a network-based communication channel, an interaction input message comprising first data; generating an interaction output message in response to receiving the interaction input message; and transmitting the interaction output message to the test computer over the network-based communication channel.
[0051] The system memory 302 can also store a kernel 302A, application programs 302B, virtual devices, such as virtual cards 302C, credentials / tokens 302D, and an operating system 302E.
[0052] The kernel 302A can be a contactless kernel. The kernel 302A can be within or external to the application programs 302B. It can provide basic functionality for the application programs 302B. For example, the kernel 302A can provide code for certain responses that are the product or operation of responses performed in response to messages received by the kernel 302A.
[0053] The application programs 302B can be an interaction application program, such as a contactless application program. The contactless application program can be a contactless accepting application program that allows the mobile device 300 to operate like an access device that can receive and process data from a contactless portable device, such as a contactless card (e.g., a contactless payment card). The accepting device can be a POS terminal, a transit terminal, a data access terminal, etc. The application programs 302B can include code for reading and processing data from the portable device, generating an authorization request message from the data received from the portable device, transmitting the authorization request message to an authorization entity computer, and receiving and processing an authorization response message from the authorization entity computer.
[0054] The virtual card 302C can include code to emulate the functionality of a contactless card in software. The virtual card 302C and the processor 306 can operate like the physical programmable card or probe described previously. The virtual card 302C and the processor 306 can receive messages from the test computer through a network-based protocol and then convert them to APDU message format compatible with NFC data transfers.
[0055] The system memory 302 can also store credentials and / or tokens 302D. The credentials can also include information identifying the mobile communication device 300 and / or a user of the mobile communication device 300. Examples of credentials can include a public key associated with the mobile communication device 300 and / or a user of the mobile communication device 300, a digital signature (e.g., a public key of the mobile communication device 300 signed by a key of an authentication system), a payment credential, biometric data (e.g., a biometric sample or template), and the like.
[0056] Figure 4 A block diagram showing components of a test computer 450 and a smartphone 410 (an example of a mobile device) in a test system 400 according to an embodiment is shown. The smartphone 410 and the test computer 450 can communicate through a Wi-Fi router 430 or any other suitable network-based communication element. The Wi-Fi router 430 can use a TCP / IP or the like protocol to transfer messages between the smartphone 410 and the test computer 450.
[0057] The NFC cards 422 and the contactless probe 464 are shown in dashed lines to illustrate how they interact with a conventional smartphone to be tested. As explained above, in a conventional system, one or more NFC cards 422 would be tapped against the NFC hardware in the smartphone in order to test the software on the smartphone. In another example, a contactless probe 464 that is part of the test machine can be tapped against the NFC hardware in the smartphone. As noted above, using such extra devices to test a smartphone is especially cumbersome. Embodiments of the present invention do not require the use of NFC cards 422 or a contactless probe 464 to test a kernel in an application on a mobile device, such as a smartphone.
[0058] The smartphone 410 can include an interaction application 412, which can be a tap-to-phone application. The interaction application 412 can include code for causing the smartphone 410 to receive data from and transmit data to (e.g., via the NFC hardware 420 and the NFC API 418) external devices, such as external cards. The interaction application 412 can include and / or be in communication with a virtual card 414, a kernel 416, an NFC API 418, and an NFC HW (hardware) 420. As described above, the virtual card 414 can be a virtual portable device and can mimic the functionality of a real portable device. For example, the virtual card 414 can mimic the functionality of a payment card.
[0059] The kernel 416 can be a contactless kernel and can include that, in response to receiving certain interaction input messages, can cause the smartphone 410 to generate and provide certain interaction output messages. In some embodiments, the kernel 416 can produce at least the following types of messages that will be provided to a contactless portable device, such as an access card: a) an available application request (e.g., a request for available applications on the portable device), an application selection (e.g., a selection of a particular application on the portable device), a terminal transaction data response (e.g., including data about the smartphone 410 or data about an interaction by the smartphone 410), and an account data request (e.g., a request for account data from an external portable device). Any data in these messages can be an instance of second data. The kernel 416 can also receive or cause the smartphone 410 to process at least the following types of messages from a contactless portable device: an available application response (e.g., a message indicating the applications present on the portable device), a terminal transaction data request (e.g., a message requesting data about the smartphone or a current interaction), a transaction processing information request, and an account data response (e.g., a message including account data or other data from the portable device). Any data in these messages can be an instance of first data. Note that the use of the terms "first" and "second" do not indicate any particular order, but are intended to identify different sets of data.
[0060] The test computer 450 can also include a socket server 452 coupled to a virtual reader 454. The socket server 452 can be configured to receive information from and send information to the virtual card 414 of the smartphone 410. For example, the socket server 452 can provide interaction input messages to and receive interaction output messages from the virtual card 414 in the smartphone 410. The virtual reader 454 can, for example, coordinate and / or translate interaction input messages and interaction output messages between the test tool 456 and the socket server 452.
[0061] The test tool 456 can include functionality to perform tests (e.g., test interactions). The test tool 456 can include a test engine 458 that can process messages and a plurality of test plans 460. The plurality of test plans 460 can include test plans that describe test interactions. For example, a test plan can include a number of messages that the smartphone 410 should transmit to the test computer 450 in response to a request from the test computer 560. For example, the test engine 458 can generate an interaction input message that includes first data and can provide it to the virtual reader 454 in a first format (e.g., an ISO 14443 or ISO 7816 message) that is compatible with NFC type transactions. The first data can also be in the form of an APDU. An example of the first data can be data associated with a request for transaction data such as a transaction amount. The virtual reader 454 can then convert the received interaction input message to a message in a second format that is compatible with a TCP / IP message and can then send the message to the virtual card 414 via the socket server 452 and the WiFi router 430. The virtual card 414 can then convert the TCP / IP message to the first format that emulates NFC communications and can then pass the interaction input message to the kernel 416. In some cases, when the first data is passed from the virtual card 414 to the kernel 416, it is again in the form of an APDU.
[0062] After the kernel 416 receives the interaction input message with the first data, the kernel 416 can then process the first data and can then generate an interaction output message with second data. The second data can include data associated with a transaction amount. The interaction output message can be in a first format suitable for NFC communication (e.g., an ISO 14443 or ISO 7816 message). The interaction output message can then be transmitted to the virtual card 414, where it can be converted to a second message format compatible with TCP / IP messages. The interaction output message in the TCP / IP message format can then be transmitted by the smartphone 410 to the virtual reader 454 of the test computer 450 over a network-based communication channel (e.g., via the WiFi router 430). The reader 454 can then convert the TCP / IP message to the first message format suitable for NFC transmission and can then send the converted interaction output message to the test engine 458 for evaluation. The received interaction output message includes the second data, and the test engine 456 determines whether the second data in the interaction output message is consistent with the test plan. For example, if the received second data is a transaction amount and the expected data in the plan is a transaction amount, then the kernel successfully performed the test plan. The test engine 456 can also determine whether the interaction output message was received in an expected manner. For example, the test engine 456 can expect the interaction output message to be received within 100 milliseconds after the interaction input message was transmitted to the kernel. The test engine 456 can determine whether the test was successful or unsuccessful based on whether the interaction output message was received within the expected time period.
[0063] The test computer 450 can also include a plurality of test reports 462, which can be test interaction reports based on a comparison of received messages over time to messages of a test plan. These test reports 452 can be viewed on the test computer 450 or can be exported to an external device for review.
[0064] Figure 5 A flowchart illustrating a test method according to embodiments is shown. The method shown in FIG. 5 will be described with the test computer 540 in communication with the mobile device 530. Figure 5 The method shown in FIG. 5 tests one or more interaction test cases.
[0065] Prior to step 502, in some embodiments, the mobile device 530 and the test computer 540 can initialize a communication channel. For example, the mobile device 530 can connect to the WiFi router assigned the IP address 192.168.1.5 using the interaction application to be tested. In addition, the test computer can connect to the WiFi router assigned the IP address 192.168.1.6 using the contactless kernel test tool.
[0066] In step 502, test computer 540 may start a socket server application. For example, test computer 540 may start a socket server application on a test computer. The socket server then listens on its TCP / IP port (e.g., 29500) and connects to the virtual reader via a standard PC / SC API for testing APDU switching.
[0067] In step 504, mobile device 530 can launch the interactive application in test mode. For example, mobile device 530 can load the interactive application into test mode on a smartphone and set the remote socket server IP address and port (e.g., 192.168.1.5:29500). The interactive application and / or its kernel are not connected to the smartphone's NFC hardware, but rather to the socket server in test computer 540.
[0068] In step 506, the test computer 540 may launch a test tool. In some embodiments, launching the test tool may include loading one or more test cases and connecting to a virtual reader to test APDU exchanges with the mobile device 530. For example, the test computer 540 may launch a contactless test tool on the test computer and load a test plan into a test engine. The test engine then connects to a virtual reader to test APDU exchanges, instead of connecting to a physical contactless probe.
[0069] Notice, Figure 5 The steps in the above, and specifically, steps 502, 504, and 506, do not need to be performed in the order just described. For example, in some embodiments, step 506 may be performed before step 504.
[0070] In some embodiments, in step 508, test computer 540 may generate an interactive input message including first data and send the interactive input message to mobile device 530. This may be in response to the test engine starting a single test case (e.g., test case 001) in the test plan. After generating the interactive input message, test computer 540 may transmit the interactive input message to mobile device 530. For example, the socket server of test computer 540 may receive APDU responses in a byte array from the test engine of test computer 540 via a PC / SC API. The socket server may transmit the APDU responses in the byte array stream to the interactive application via a network-based communication protocol, such as TCP / IP, through a virtual card in mobile device 530.
[0071] At step 510, the mobile device 530 can receive the interaction input message from the test computer 540. For example, a kernel in an interaction application (e.g., tap-to-phone application) on the mobile device 530 can analyze the interaction input message and the first data in the interaction input message. In response, the kernel can then generate an interaction output message including second data. In some embodiments, the interaction input message can be an EMV contactless payment APDU command (e.g., available application response, get processing options command, read record response).
[0072] At step 512, the mobile device 530 can transmit the interaction output message including the second data to the test computer 540. For example, the mobile device 530 can send an EMV contactless payment APDU command (e.g., select, get processing options response, read record command) via TCP / IP via a virtual card in the mobile device 530 via a socket server, instead of sending the second data to an external portable device via an NFC API and NFC hardware in the mobile device, as a byte array stream.
[0073] At step 514, after receiving the interaction output message including the second data, the test computer 540 can process the interaction output message. For example, the test computer 540 can receive the interaction output message including the second data at the socket server. For example, the socket server can receive the APDU command byte array and then send the APDU command to a virtual reader via a PC / SC API. Then, the test engine can receive the APDU command from the virtual reader.
[0074] The test engine can compare the second data in the interaction output message to determine whether it matches an expected output. If not, the test engine can record an error in the test report on the test computer.
[0075] After step 514, steps 508, 510, and 512 can be repeated as many times as necessary with different first data and second data, as shown at 520, to fully target one or more test plans.
[0076] Once all interaction input messages have been sent to the mobile device 530 and all interaction output messages have been processed by the test computer 540, a test report can be updated or created at step 524.
[0077] Embodiments of the present disclosure have many advantages. For example, the implementations do not require a probe or a reprogrammable portable device to test an application, such as an acceptance application (e.g., a tap to pay application) or a kernel therein. Embodiments provide for network-based communication between a smartphone including an interactive application and a test computer located at a remote location, thereby eliminating the need to tap a probe or a reprogrammable portable device to the smartphone. Thus, the time associated with testing a kernel or an application on a mobile device is significantly reduced in embodiments as compared to conventional systems that require a tester to tap a portable device or a probe to the mobile device under test. Moreover, when embodiments use network-based communication, the mobile device under test can be anywhere. The testing of the mobile device does not depend on the ability of a human to be in proximity to the mobile device under test.
[0078] Although the steps of the flowcharts and method flows described above are shown or described in a particular order, it is understood that embodiments of the present invention can include methods having steps in different orders. Additionally, steps can be omitted or added, and still be within embodiments of the present invention.
[0079] Any of the software components or functions described in this application can be implemented as software code to be executed by a processor using any suitable computer language such as Java, C, C++, C#, Objective-C, Swift, or scripting language such as Perl or Python using, for example, conventional or object-oriented techniques. The software code can be stored as a series of instructions or commands on a computer readable medium for storage and / or transmission, such as a series of instructions compatible with a given processor or platform. A computer readable medium can be any combination of a non-transitory (e.g., tangible) computer readable medium or a transitory (e.g., signal) computer readable medium. Non-limiting examples of non-transitory computer readable media include magnetic storage, optical disks such as compact discs (CDs) or digital versatile discs (DVDs), volatile or non-volatile memory storage such as read-only memory (ROM), random access memory (RAM), flash memory, etc. A computer readable medium can be any combination of such storage or transmission devices.
[0080] Such programs can also be encoded and transmitted using carrier signals adapted to carry the program code in a data signal, e.g., in a packetized or other suitable transmission format, via a variety of protocols including the Internet. Thus, a computer readable medium according to an embodiment of the present invention can include a computer readable medium encoded with the program code of such a computer program. The computer readable medium encoded with the program code can be packaged with a compatible device or provided separately from other devices (e.g., via Internet download). Any such computer readable medium can reside on or within a single computer product (e.g., a hard disk drive, a CD, or an entire computer system), and can be present on or within different computer products within a system or network. A computer system can include a monitor, printer, or other suitable display for providing any results mentioned herein to a user.
[0081] The above description is illustrative and not restrictive. Many variations of the application will become apparent to those of skill in the art upon review of this disclosure. The scope of the application should, therefore, be determined not with reference to the above description, but instead with reference to the appended claims along with their full scope or equivalents.
[0082] One or more features of any embodiment can be combined with one or more features of any other embodiment without departing from the teachings of the application.
[0083] As used herein, the use of the term "or" means "and / or" unless clearly indicated otherwise. As used herein, the use of the terms "a," "an" or "the" are intended to mean "one or more," unless clearly indicated to the contrary.
Claims
1. A method comprising: A test plan is determined by a test computer to test the kernel on the mobile device. The kernel is a contactless kernel that can communicate with the NFC hardware in the mobile device, which can interact with an external NFC card. The test computer determines the interactive input message according to the test plan, and the interactive input message includes first data; The test computer transmits the interactive input message, including the first data, to the mobile device via a network-based communication channel, wherein the kernel in the mobile device generates an interactive output message in response to receiving the interactive input message; The test computer receives the interactive output message, which includes second data from the mobile device, from the mobile device via the network-based communication channel; as well as The test computer determines whether the interactive output message is consistent with the test plan. The test computer includes a test engine, a virtual reader, and a socket server. The test engine provides the interactive input message in a first format to the virtual reader, and the virtual reader provides the interactive input message in a second format to the socket server. The mobile device includes a virtual device that receives the interactive input message in the second format and provides the interactive input message in the first format to the kernel, and the virtual device is a virtual card that simulates the function of a contactless payment card in the software.
2. The method according to claim 1, wherein the network-based communication channel is a TCP / IP communication channel.
3. The method according to claim 1, wherein determining whether the interactive output message is consistent with the test plan includes determining whether the second data is what the test is expected.
4. The method of claim 1, wherein the mobile device is a smartphone.
5. The method of claim 1, wherein the mobile device includes an interactive application containing the kernel.
6. A test computer, comprising: processor; as well as A computer-readable medium coupled to the processor, the computer-readable medium including instructions executable by the processor to cause the test computer to: A test plan is determined to test the kernel on the mobile device, which is a contactless kernel capable of communicating with NFC hardware in the mobile device, which is capable of interacting with external NFC cards. The interactive input message is determined according to the test plan, and the interactive input message includes first data; The interactive input message, including the first data, is transmitted to the mobile device via a network-based communication channel, wherein the kernel in the mobile device generates an interactive output message in response to receiving the interactive input message; The interactive output message, which includes second data from the mobile device, is received from the mobile device via the network-based communication channel. as well as Determine whether the interactive output message is consistent with the test plan. The test computer includes a test engine, a virtual reader, and a socket server. The test engine is programmed to provide the interactive input message in a first format to the virtual reader, and the virtual reader is programmed to provide the interactive input message in a second format to the socket server. The mobile device includes a virtual device programmed to receive the interactive input message in the second format and to provide the interactive input message in the first format to the kernel, and the virtual device is a virtual card that simulates the function of a contactless payment card in the software.
7. The test computer of claim 6, wherein the test computer further includes a memory, the memory including a plurality of test plans for testing the kernel.
8. The test computer of claim 6, wherein the network-based communication channel includes a TCP / IP channel.
9. The test computer of claim 6, wherein the test computer further comprises a memory containing a plurality of test reports.
10. A method comprising: A mobile device including a kernel receives an interactive input message containing first data from a test computer via a network-based communication channel. The kernel is a contactless kernel that can communicate with NFC hardware in the mobile device, which can interact with an external NFC card. In response to receiving the interactive input message, the kernel in the mobile device generates an interactive output message including second data; as well as The mobile device transmits the interactive output message to the test computer via the network-based communication channel. The test computer includes a test engine, a virtual reader, and a socket server. The test engine provides the interactive input message in a first format to the virtual reader, and the virtual reader provides the interactive input message in a second format to the socket server. The mobile device includes a virtual device that receives the interactive input message in the second format and provides the interactive input message in the first format to the kernel, and the virtual device is a virtual card that simulates the function of a contactless payment card in the software.
11. The method of claim 10, wherein the mobile device is a smartphone.
12. The method of claim 10, wherein the mobile device includes an NFC API between the kernel and the NFC hardware.
13. The method of claim 10, wherein the network-based communication channel is a TCP / IP-based communication channel.
Citation Information
Patent Citations
Test method and system for Hybrid application in Android system
CN106557411A
Simulator for system testing
CN110268389A
Systems and methods for unit testing of operating system kernels from user space
US10108532B1