基于网络测试移动装置内核的系统和方法与流程

文档序号:31550815发布日期:2022-09-17 07:49阅读:55来源:国知局
基于网络测试移动装置内核的系统和方法与流程
基于网络测试移动装置内核的系统和方法
1.相关申请的交叉引用
2.本技术是pct申请,要求2020年2月10日提交的美国临时申请第62/972,530的优先权,该申请通过引用并入本文中。


背景技术:

3.当测试诸如非接触式终端(例如,交通门终端、销售点终端、信息自助终端等)的非接触式访问装置时,使用非接触式探针或可重新编程的便携式装置(例如,可重新编程的卡)。为了完成关于访问装置的测试计划,针对访问装置手动地轻触非接触式探针或可重新编程的便携式装置数百次或甚至数千次。即使轻触过程是自动化的,测试过程仍然非常耗时,因为需要进行针对访问装置轻触探针或可重新编程的便携式装置的实际动作。当访问装置收到频繁更新并经过频繁测试时,这是一个问题。
4.当技术人员无法轻易触及待测试的访问装置时,这个问题就会复杂化。例如,在特定地理位置内可能存在数千个访问装置。人类技术人员前往去教学且每个访问装置测试它们是不切实际和不方便的。
5.此外,例如蜂窝电话等移动装置正越来越多地用作访问装置。例如,在允许用户获得对由资源提供商提供的资源的访问之前,资源提供商可以使用诸如蜂窝电话等移动装置来扫描用户的访问卡。使用现有测试方法频繁测试每个可能用作访问装置的可能移动装置是不切实际的。
6.本公开的实施例单独地和共同地解决了此问题及其它问题。


技术实现要素:

7.一个实施例涉及一种方法,包括:由测试计算机确定测试计划以测试移动装置上的内核;由所述测试计算机根据所述测试计划确定交互输入消息,所述交互输入消息包括第一数据;由所述测试计算机通过基于网络的通信信道将包括所述第一数据的交互输入消息传输到所述移动装置,其中所述移动装置中的内核响应于接收到所述交互输入消息而生成交互输出消息;由所述测试计算机从所述移动装置通过所述基于网络的通信信道接收包括来自所述移动装置的第二数据的交互输出消息;以及由所述测试计算机确定所述交互输出消息是否与所述测试计划一致。
8.另一个实施例涉及一种测试计算机,包括:处理器;以及耦合到所述处理器的计算机可读介质,所述计算机可读介质包括由所述处理器可执行的指令,以使所述测试计算机:确定测试计划以测试移动装置上的内核;根据所述测试计划确定交互输入消息,所述交互输入消息包括第一数据;将所述包括所述第一数据的交互输入消息通过基于网络的通信信道传输到所述移动装置,其中所述移动装置中的内核响应于接收到所述交互输入消息而生成交互输出消息;从所述移动装置通过所述基于网络的通信信道接收包括来自所述移动装置的第二数据的交互输出消息;以及确定所述交互输出消息是否与所述测试计划一致。
9.另一个实施例包括一种方法,包括:由包括内核的移动装置通过基于网络的通信
信道从测试计算机接收包括第一数据的交互输入消息;响应于接收到所述交互输入消息,由所述移动装置中的内核生成包括第二数据的交互输出消息;以及由所述移动装置通过所述基于网络的通信信道将所述交互输出消息传输到所述测试计算机。
10.关于本公开的实施例的另外细节可见于具体实施方式和图式。
附图说明
11.图1示出根据实施例的测试系统的框图。
12.图2示出说明根据实施例的移动装置的流程图。
13.图3示出根据实施例的测试计算机的部件的框图。
14.图4示出根据实施例的测试系统中的测试计算机和智能手机形式的移动装置的部件的框图。
15.图5示出说明根据实施例的测试方法的流程图。
具体实施方式
16.在论述本公开的实施例之前,可以更详细地描述一些术语。
[0017]“用户”可包括使用某物的个人或装置。
[0018]“便携式装置”可包括可容易地运输的装置。例如,用户可以使用便携式装置与访问装置交互以便进行交互。便携式装置的示例包括支付装置、会员装置、访问卡、识别装置等。
[0019]“移动装置”可以包括可由用户携带的装置。移动装置的实例可以包括智能手机、平板电脑等。在一些实施例中,移动装置可包括交互应用程序和内核。在一些实施例中,移动装置可以是移动访问装置。移动访问装置可以由资源提供商或为资源提供商工作的人员使用,以确认使用便携式装置的用户有权获得对由资源提供商(例如,交通运营商、场馆运营商、商家等)提供的资源(例如,位置、商品、服务、数据等)的访问。
[0020]“测试计算机”可以包括可以确定目标是否得到满足的计算机。在一些实施例中,测试计算机可以通过执行测试(例如,交互测试)来确定目标是否正被满足。在一些实施例中,测试计算机可以将数据传输至移动装置以确定移动装置是否正确操作。这可以基于例如包括来自移动装置的第二数据的响应,所述第二数据响应于由测试计算机传输到移动装置的第一数据。
[0021]“交互”可包括相互动作或影响。交互可以包括各方、装置和/或实体之间的通信、接触或交换。示例性交互包括双方之间的交易和两个装置之间的数据交换。在一些实施例中,交互可以包括用户请求访问安全数据、安全网页、安全位置等。在其它实施例中,交互可以包括支付交易,其中装置可以交互以促进支付。
[0022]“交互数据”可以包括与交互有关的数据。在一些实施例中,交互数据可以是交易数据。交易数据可以包括具有与交易相关联的数据值的多个数据元素。在一些实施例中,交互数据可以包括标识符、凭证、金额、日期、时间等。
[0023]“交互输入消息”可以是在交互期间接收的通信。例如,由移动装置发送的消息可以是用于接收便携式装置的交互输入消息。交互输入消息的一个实例可包括apdu(应用程序协议数据单元)命令。
[0024]“交互输出消息”可以是在响应交互输入消息的交互期间发送的通信。交互输出消息的一个实例可包括响应于接收到apdu命令而由便携式装置发送的apdu响应。
[0025]“测试交互”可以是调查交互。在一些实施例中,可以执行测试交互以确定关于交互系统如何工作的信息。例如,不同的测试交互可以被设计成当由不同类型的便携式装置发起时确定是否将正确地处理交互。测试交互可以涉及在交互通信会话期间将某些类型的信息发送至移动装置,以便测试如何处理信息。一些测试交互可被设计成检查交互处理中的错误。例如,当测试计算机为交互提供不正确信息时,一些测试交互可以检查来自移动装置的响应。在接收到不正确信息之后,正常运行的移动装置将提供预测响应(例如,特定错误消息)。
[0026]“交互报告”可包括与一个或多个先前交互有关的信息。交互报告可以描述如何处理交互中的消息。例如,交互报告可以含有已发送和接收以及交互是否成功的信息。交互报告还可以包括关于在交互期间发生的问题、缺失信息、延迟或其它问题的注释。
[0027]“授权请求消息”可以是请求授权的电子消息。在一些实施例中,授权请求消息可以是请求对交互进行授权的电子消息。在一些实施例中,可以将授权请求消息发送至网络处理计算机和/或支付卡的发行方以请求对交互的授权。根据一些实施例的授权请求消息可以符合国际标准化组织(iso)8583,这是用于交换与用户使用支付装置或支付账户进行的支付相关联的电子交易信息的系统的标准。授权请求消息可包括可以与支付装置或支付账户相关联的发行方账户标识符。授权请求消息还可以包括对应于“识别信息”的额外数据元素,仅作为实例包括:服务代码、cvv(卡验证值)、dcvv(动态卡验证值)、pan(主账号或“账号”)、支付令牌、用户名、到期日期等。授权请求消息还可以包括“交易信息”,例如与当前交易相关联的任何信息,例如交易值、商家标识符、商家位置、收单方银行识别号(bin)、卡接受者id、正在购买的物品的标识信息等,以及可用于确定是否识别和/或授权交易的任何其它信息。
[0028]“授权响应消息”可以是响应授权请求的消息。在某些情况下,可以是对由发行金融机构或交易处理计算机生成的授权请求的电子消息回复。
[0029]“授权实体”可以是授权请求的实体。授权实体的实例可以包括发行方、政府机构、文档储存库、访问管理员等。授权实体可以操作授权实体计算机。“发行方”可以指发行并任选地维护用户的账户的商业实体(例如,银行)。发行方还可以向消费者或在一些实施例中向便携式装置发布存储在例如蜂窝电话、智能卡、平板电脑或笔记本电脑等用户装置上的支付凭证。
[0030]“处理器”可包括处理某事的装置。在一些实施例中,处理器可以包括任何合适的一个或多个数据计算装置。处理器可包括一起工作以实现期望功能的一个或多个微处理器。处理器可包括cpu,cpu包括足以执行程序组件以用于执行用户和/或系统生成的请求的至少一个高速数据处理器。cpu可以是微处理器,例如amd的athlon、duron和/或opteron;ibm和/或摩托罗拉的powerpc;ibm和sony的cell处理器;intel的celeron、itanium、pentium、xeon和/或xscale;和/或类似处理器。
[0031]“存储器”可以是可以存储电子数据的任何合适的一个或多个装置。合适的存储器可包括存储指令的非暂时性计算机可读介质,所述指令可由处理器执行以实施期望方法。存储器的实例可包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可以使用任何合
适的电、光学和/或磁操作模式操作。
[0032]“服务器计算机”可以包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群或作为单元起作用的一组服务器。在一个实例中,服务器计算机可以是联接到网络服务器的数据库服务器。服务器计算机可以包括一个或多个计算设备,并且可以使用各种计算结构、布置和编译中的任一个来服务于来自一个或多个客户端计算机的请求。
[0033]
实施例允许基于网络测试移动装置例如智能手机中的移动装置内核。移动装置中的移动装置内核可以在移动装置上的应用程序中。移动装置内核可包括用于包含内核或与内核相关联的应用程序的基本功能的代码。例如,移动装置上的应用程序可以是允许移动装置接受或处理来自访问卡或支付卡的数据的接受应用程序。内核可以包括将由接受应用程序执行的主要交互(例如,消息处理)的代码。
[0034]
实施例可以使用基于网络的apdu(应用协议数据单元)传输来自动化内核测试过程。当在移动装置上测试交互应用程序(及其内核)时,本发明的实施例不使用非接触式探针或可重新编程的非接触式装置。使用本发明的实施例,可以以完全自动化和连续的方式执行数千个测试案例,而不需要人或机器针对移动装置物理地轻触探针或可重新编程的卡。在本发明的实施例中,待测试的移动装置可以位于世界任何地方,并且人类不需要前往它们进行测试。
[0035]
图1示出根据实施例的系统100。系统100包括移动装置102和测试计算机104。移动装置102和测试计算机104可以通过通信网络彼此可操作地通信。
[0036]
在图1中可以使用安全通信协议来在移动装置102和测试计算机104之间传输消息,所述安全通信协议例如但不限于:文件传输协议(ftp);超文本传输协议(http);安全超文本传输协议(https)、ssl、iso(例如,iso 8583)等等。通信网络可以包括以下各项中的任一者和/或组合:直接互连;互联网;局域网(lan);城域网(man);作为互联网节点的操作任务(omni);安全定制连接;广域网(wan);无线网络(例如,采用诸如但不限于无线应用程序协议(wap)、i-模式等的协议);等等。通信网络可以使用任何合适的通信协议来生成一个或多个安全通信信道。在一些情况下,通信信道可以包括安全通信信道,所述安全通信信道可以任何已知方式建立,例如通过使用相互认证和会话密钥以及建立安全套接字层(ssl)会话。
[0037]
移动装置102可以是任何合适的装置。例如,移动装置102可以是可商购获得的智能手机。移动装置102可包括交互应用程序(例如,轻触手机(tap-to-phone)接受应用程序),其可促进用户执行交互(例如,交易、数据传输等)。在一些实施例中,交互应用程序可包括内核和虚拟便携式装置(例如,虚拟支付卡)。
[0038]
测试计算机104可包括服务器计算机。测试计算机104可以包括例如包括测试引擎和多个测试计划的测试工具。测试计算机104可以测试移动装置是否正确生成数据、传输数据、处理数据、执行交互等。
[0039]
图2示出根据实施例的测试计算机200的框图。示例性测试计算机200可包括处理器204。处理器204可以耦合到存储器202、网络接口206和计算机可读介质208。在一些实施例中,测试计算机200可以与数据库(图2中未示出)操作通信。
[0040]
存储器202可用于存储数据和代码。存储器202可以内部或外部耦合到处理器204
(例如,基于云的数据存储),并且可以包括易失性和/或非易失性存储器的任何组合,例如ram、dram、rom、闪存或任何其他合适的存储器装置。例如,存储器202可以存储与交互和/或测试交互、密钥等有关的任何合适的数据。
[0041]
计算机可读介质208联接到处理器208,计算机可读介质208包括由所述处理器可执行的指令,以使测试计算机:确定测试计划以测试移动装置上的内核;根据测试计划确定交互输入消息,所述交互输入消息包括第一数据;将包括第一数据的交互输入消息通过基于网络的通信信道传输到移动装置,其中响应于接收到交互输入消息,移动装置中的内核生成交互输出消息;通过基于网络的通信信道从移动装置接收包括来自移动装置的第二数据的交互输出消息;并确定交互输出消息中的第二数据是否与测试计划一致。
[0042]
计算机可读介质208还可以包括测试引擎208a、虚拟读取器208b和服务器套接字208c。
[0043]
测试引擎208a可包括用于生成或选择测试,以及执行命令或生成与那些测试相关联的消息的代码。待执行的测试可各自包括具有命令或数据的消息集合,以及消息或数据的对应响应集合。在一些实施例中,测试引擎208a和处理器208可以将交互输入消息发送至待测试内核,并且可以从内核接收交互输出消息。交互输出消息可包括可以在内核满足测试的情境中指示预期结果的数据。如果交互输出消息包括不指示预期结果的数据,则内核可能不满足测试。测试引擎208a和处理器204还可以评估交互输出消息是否以测试引擎208a预期的方式或时间帧接收。例如,如果在从交互输入消息首次传输到内核起的预定时间之后从内核接收到交互输出消息,则测试引擎208a和处理器204可以确定内核不满足测试。
[0044]
虚拟读取器208b还可以包括用于模拟访问装置中的读取器的功能的代码。虚拟读取器208b和处理器208b可以模拟将在诸如功能性访问终端的访问装置中存在的读取器的功能。例如,来自测试引擎208a的消息可以是可以由访问卡(例如,以nfc数据格式)产生的apdu消息,并且这些消息可以由测试计算机200中的虚拟读取器208b接收。虚拟读取器208b和处理器204可以在真实的访问装置中像真实读取器一样操作,并且可以解释那些消息,并且将它们转换成基于网络的通信协议,例如tcp/ip协议。一旦消息采用基于网络的通信协议,它们就可以由测试计算机200传输至移动装置,以使用基于网络的协议通过通信网络进行测试。
[0045]
服务器套接字208c可包括用于通过网络通信网络侦听和响应客户端的通信的代码。服务器套接字208c可以是侦听特定端口等待客户端的连接请求的服务器应用程序。当连接请求到达时,客户端和测试计算机200建立专用连接,它们可以通过该专用连接进行通信。在连接过程中,客户端被分配一个本地端口号,并将套接字与之绑定。客户端通过写入套接字与测试计算机200通话,并通过读取从测试计算机200获得信息。
[0046]
网络接口206可以包括可以允许网络计算机200与外部计算机通信的接口。网络接口206可以使测试计算机200能够将数据传送至另一个装置(例如,移动装置102等)和从另一个装置传送数据。网络接口206的一些实例可包括调制解调器、物理网络接口(例如以太网卡或其它网络接口卡(nic))、虚拟网络接口、通信端口、个人计算机存储卡国际协会(pcmcia)插槽和卡等。由网络接口206启用的无线协议可包括wi-fi
tm
。经由网络接口206传输的数据可以呈信号形式,所述信号可以是电、电磁、光学或能够由外部通信接口接收的任
何其它信号(统称为“电子信号”或“电子消息”)。可以包括数据或指令的这些电子消息可以经由通信路径或信道在网络接口206和其它装置之间提供。如上所述,可以使用任何合适的通信路径或信道,例如电线或电缆、光纤、电话线、蜂窝链路、射频(rf)链路、wan或lan网络、互联网或任何其它合适的介质。
[0047]
图3示出了根据实施例的移动通信装置300。移动通信装置300可以包括耦合到系统存储器302的装置硬件304,所述系统存储器可以包括计算机可读介质302。
[0048]
装置硬件304可包括处理器306、短程天线314、长程天线316、输入元件310、用户界面308和输出元件312(其可以是用户界面308的一部分)。输入元件的实例可包括麦克风、小键盘、触控板、传感器等。输出元件的实例可包括扬声器、显示屏和触觉装置。处理器306可以实施为一个或多个集成电路(例如,一个或多个单核或多核微处理器和/或微控制器),并且用于控制移动通信装置300的操作。处理器306可以响应于存储在系统存储器302中的程序代码或计算机可读代码来执行各种程序,并且可以维持多个同时执行的程序或过程。
[0049]
长程天线316可以包括一个或多个rf收发器和/或连接器,所述rf收发器和/或连接器可以由移动通信装置300使用以与其他装置通信和/或与外部网络连接。用户界面308可包括输入元件和输出元件的任何组合,以允许用户与移动通信装置300交互并调用其功能。短程天线314可以被配置成通过短程通信介质(例如,使用蓝牙、wi-fi、红外线、nfc等)与外部实体通信。长程天线314可以被配置成通过无线电与远程基站和远程蜂窝或数据网络通信。
[0050]
系统存储器302可以使用任何数量的非易失性存储器(例如,闪存)和易失性存储器(例如,dram、sram)的任何组合、或任何其他非暂时性存储介质或其组合介质来实现。系统存储器302可以存储可由处理器306执行的计算机代码,以用于执行本文所述功能中的任一个。例如,系统存储器302可包括包含代码的计算机可读介质,所述代码可由处理器306执行以用于实施一种方法,所述方法包括:通过基于网络的通信信道从测试计算机接收包括第一数据的交互输入消息;响应于接收到所述交互输入消息而生成交互输出消息;并通过基于网络的通信信道将交互输出消息传输到测试计算机。
[0051]
系统存储器302还可以存储内核302a、应用程序302b、虚拟装置,例如虚拟卡302c、凭证/令牌302d和操作系统302e。
[0052]
内核302a可以是非接触式内核。内核302a可以在应用程序302b内或其外部。它可以为应用程序302b提供基本功能。例如,内核302a可以为某些响应提供代码,这些响应是响应于内核302a接收的消息而执行的产物或操作。
[0053]
应用程序302b可以是交互应用程序,例如非接触式应用程序。非接触式应用程序可以是非接触式接受应用程序,其允许移动装置300像可以接收和处理来自非接触式便携式装置的数据的访问装置一样操作,所述非接触式便携式装置例如非接触式卡(例如,非接触式支付卡)。接受装置可以是pos终端、交通终端、数据访问终端等。应用程序302b可包括用于读取和处理来自便携式装置的数据,根据从便携式装置接收的数据生成授权请求消息,将授权请求消息传输到授权实体计算机,以及从授权实体计算机接收和处理授权响应消息的代码。
[0054]
虚拟卡302c可以包括用以模拟软件中的非接触式卡的功能的代码。虚拟卡302c和处理器306可以像先前描述的物理可编程卡或探针那样操作。虚拟卡302c和处理器306可以
通过基于网络的协议从测试计算机接收消息,然后将它们转换为与nfc数据传输兼容的apdu消息格式。
[0055]
系统存储器302还可以存储凭证和/或令牌302d。凭证还可包括识别移动通信装置300和/或移动通信装置300的用户的信息。凭证的实例可包括与移动通信装置300和/或移动通信装置300的用户相关联的公钥、数字签名(例如,由认证系统的密钥签名的移动通信装置300的公钥)、支付凭证、生物特征数据(例如,生物特征样本或模板)等。
[0056]
图4示出根据实施例的测试系统400中的测试计算机450和智能手机410(移动装置的实例)的部件的框图。智能手机410和测试计算机450可以通过wi-fi路由器430或任何其他合适的基于网络的通信元件进行通信。wi-fi路由器430可以使用tcp/ip等协议在智能手机410与测试计算机450之间传送消息。
[0057]
nfc卡422和非接触式探针464以虚线示出,以说明它们如何与待测试的常规智能手机交互。如上文所解释,在常规系统中,将对着智能手机中的nfc硬件轻触一个或多个nfc卡422,以便测试智能手机上的软件。在另一实例中,可以对着智能手机中的nfc硬件轻触作为测试机器的一部分的非接触式探针464。如上所述,使用此类额外装置来测试智能手机尤其繁琐。本发明的实施例不需要使用nfc卡422或非接触式探针464来测试例如智能手机等移动装置上的应用程序中的内核。
[0058]
智能手机410可包括交互应用程序412,该应用程序可以是轻触手机应用程序。交互应用程序412可以包括代码,用于使智能手机410从外部装置例如外部卡接收数据并将数据传输(例如,经由nfc硬件420和nfc api 418)至外部装置。交互应用程序412可以包括虚拟卡414、内核416、nfc api 418和nfc hw(硬件)420和/或与其通信。如上所述,虚拟卡414可以是虚拟便携式装置,并且可以模仿真实便携式装置的功能。例如,虚拟卡414可以模仿支付卡的功能。
[0059]
内核416可以是非接触式内核,并且可以包括响应于接收到某些交互输入消息,可以使智能手机410生成并提供某些交互输出消息。在一些实施例中,内核416可以产生至少以下类型的消息,其将提供给非接触式便携式装置,例如访问卡:a)可用应用程序请求(例如,请求便携式装置上的可用应用程序),应用程序选择(例如,选择便携式装置上的特定应用程序),终端交易数据响应(例如,包括关于智能手机410的数据或关于智能手机410进行的交互的数据),和账户数据请求(例如,从外部便携式装置请求账户数据)。这些消息中的任何数据可以是第二数据的实例。内核416还可以从非接触式便携式装置接收或使智能手机410处理至少以下类型的消息:可用应用程序响应(例如,指示便携式装置上存在的应用程序的消息),终端交易数据请求(例如,请求关于智能手机或当前交互的数据的消息),交易处理信息请求,和账户数据响应(例如,包括账户数据或来自便携式装置的其它数据的消息)。这些消息中的任何数据可以是第一数据的实例。注意,术语“第一”和“第二”的使用并不指示任何特定顺序,而是旨在识别不同数据集。
[0060]
测试计算机450还可包括耦合到虚拟读取器454的套接字服务器452。套接字服务器452可以被配置成从智能手机410的虚拟卡414接收信息并向其发送信息。例如,套接字服务器452可以向智能手机410中的虚拟卡414提供交互输入消息,并从其接收交互输出消息。虚拟读取器454可以例如协调和/或转换测试工具456与套接字服务器452之间的交互输入消息和交互输出消息。
[0061]
测试工具456可包括执行测试(例如,测试交互)的功能。测试工具456可包括可以处理消息的测试引擎458和多个测试计划460。多个测试计划460可以包括描述测试交互的测试计划。例如,测试计划可以包括智能手机410应响应于来自测试计算机560的请求而传输给测试计算机450的消息数目。例如,测试引擎458可以生成包括第一数据的交互输入消息,并且可以以与nfc类型的交易兼容的第一格式(例如,iso14443或iso7816消息)将其提供给虚拟读取器454。第一数据也可以是apdu的形式。第一数据的实例可以是与对例如交易金额的交易数据的请求相关联的数据。虚拟读取器454接着可将所接收的交互输入消息转换成第二格式的消息,所述第二格式兼容tcp/ip消息,且接着可经由套接字服务器452和wifi路由器430将该消息发送至虚拟卡414。虚拟卡414可以接着将tcp/ip消息转换成模拟nfc通信的第一格式,并且可以接着将交互输入消息传递到内核416。在某些情况下,当第一数据从虚拟卡414传递到内核416时,它再次呈apdu的形式。
[0062]
在内核416接收具有第一数据的交互输入消息之后,内核416接着可处理第一数据且接着可生成具有第二数据的交互输出消息。第二数据可包括与交易金额相关联的数据。交互输出消息可以采用适合于nfc通信的第一格式(例如,iso14443或iso7816消息)。交互输出消息接着可传输到虚拟卡414,其中其可转换成与tcp/ip消息兼容的第二消息格式。然后,呈tcp/ip消息格式的交互输出消息可以由智能手机410通过基于网络的通信信道(例如,经由wifi路由器430)传输到测试计算机450的虚拟读取器454。读取器454接着可将tcp/ip消息转换成适合于nfc传输的第一消息格式,且接着可将转换的交互输出消息发送至测试引擎458以供评估。所接收的交互输出消息包括第二数据,并且测试引擎456确定交互输出消息中的第二数据是否与测试计划一致。例如,如果接收到的第二数据是交易金额,并且计划中的预期数据是交易金额,则内核成功地执行测试计划。测试引擎456还可以确定交互输出消息是否以预期的方式接收。例如,测试引擎456可预期在将交互输入消息传输到内核之后的100毫秒内接收交互输出消息。测试引擎456可以基于是否在预期时间段内接收到交互输出消息来确定测试是成功还是不成功。
[0063]
测试计算机450还可包括多个测试报告462,其可以是基于随时间推移所接收消息与测试计划的消息的比较的测试交互报告。这些测试报告452可以在测试计算机450上查看,或者可以导出至外部装置以供审核。
[0064]
图5示出说明根据实施例的测试方法的流程图。将在测试计算机540与移动装置530通信的情况下描述图5中所示的方法,测试一个或多个交互测试案例。
[0065]
在步骤502之前,在一些实施例中,移动装置530和测试计算机540可以初始化通信信道。例如,移动装置530可使用待测试的交互应用程序连接至被分配ip地址192.168.1.5的wifi路由器。此外,测试计算机可以利用非接触式内核测试工具连接到分配有ip地址192.168.1.6的wifi路由器。
[0066]
在步骤502,测试计算机540可以启动套接字服务器应用程序。例如,测试计算机540可以启动测试计算机上的套接字服务器应用程序。然后,套接字服务器在其tcp/ip端口(例如,29500)上侦听,并且套接字服务器通过标准pc/sc api连接至虚拟读取器,以用于测试apdu交换。
[0067]
在步骤504,移动装置530可以在测试模式中启动交互应用程序。例如,移动装置530可以将交互应用程序载入到智能手机上的测试模式中,并且设置远程套接字服务器ip
地址和端口(例如,192.168.1.5:29500)。交互应用程序和/或其内核不连接到智能手机的nfc硬件,而是连接到测试计算机540中的套接字服务器。
[0068]
在步骤506,测试计算机540可以启动测试工具。在一些实施例中,启动测试工具可包括加载一个或多个测试案例,并连接到虚拟读取器以测试与移动装置530的apdu交换。例如,测试计算机540可以启动测试计算机上的非接触式测试工具,并将测试计划加载到测试引擎。然后,测试引擎连接到虚拟读取器以用于测试apdu交换,而不是连接到物理非接触式探针。
[0069]
注意,图5中的步骤,且具体来说,步骤502、504和506不需要按照刚描述的次序进行。例如,在一些实施例中,可以在步骤504之前执行步骤506。
[0070]
在一些实施例中,在步骤508,测试计算机540可以生成包括第一数据的交互输入消息,并将交互输入消息发送至移动装置530。这可以响应于测试引擎开始在测试计划中的单个测试案例(例如,测试案例001)。在生成交互输入消息之后,测试计算机540可以将交互输入消息传输至移动装置530。例如,测试计算机540的套接字服务器可以通过pc/sc api从测试计算机540的测试引擎接收字节阵列中的apdu响应。套接字服务器可以通过基于网络的通信协议,例如tcp/ip,经由移动装置530中的虚拟卡将字节阵列流中的apdu响应传输到交互应用程序。
[0071]
在步骤510,移动装置530可以从测试计算机540接收交互输入消息。例如,移动装置530上的交互应用程序(例如,轻触手机应用程序)中的内核可以分析交互输入消息和交互输入消息中的第一数据。响应于此,内核可接着生成包括第二数据的交互输出消息。在一些实施例中,交互输入消息可以是emv非接触式支付apdu命令(例如,可用应用程序响应、获取处理选项命令、读取记录响应)。
[0072]
在步骤512,移动装置530可以将包括第二数据的交互输出消息传送至测试计算机540。例如,移动装置530可以字节阵列流经由移动装置530中的虚拟卡经由tcp/ip将emv非接触式支付apdu命令(例如,选择、获得处理选项响应、读取记录命令)发送到套接字服务器,而不是经由移动装置中的nfc api和nfc硬件将第二数据发送到外部便携式装置。
[0073]
在步骤514处,在接收包括第二数据的交互输出消息之后,测试计算机540可以处理交互输出消息。例如,测试计算机540可以在套接字服务器处接收包括第二数据的交互输出消息。例如,套接字服务器可以接收apdu命令字节阵列,然后经由pc/sc api将apdu命令发送至虚拟读取器。然后,测试引擎可以从虚拟读取器接收apdu命令。
[0074]
测试引擎可以比较交互输出消息中的第二数据以确定其是否与预期输出匹配。如果不匹配,则测试引擎可以在测试计算机上将错误记录在测试报告中。
[0075]
在步骤514之后,如520所示,可以根据需要用不同的第一数据和第二数据重复步骤508、510和512多次,以完全一个或多个测试计划的目标。
[0076]
一旦所有交互输入消息已发送至移动装置530且所有交互输出消息已由测试计算机540处理,就可以在步骤524处更新或创建测试报告524。
[0077]
本公开的实施例具有许多优点。例如,实施方案不需要探针或可重新编程的便携式装置来测试应用程序,例如接受应用程序(例如,轻触支付(tap to pay)应用程序)或其中的内核。实施例提供包括交互应用程序的智能手机与位于远程位置的测试计算机之间的基于网络的通信,从而消除了将探针或可重新编程的便携式装置轻触到智能手机上的需
要。因此,与需要测试仪对着待测试的移动装置轻触便携式装置或探针的常规系统相比,与测试移动装置上的内核或应用程序相关联的时间在实施例中显著减少。此外,当实施例使用基于网络的通信时,待测试的移动装置可以在任何地方。移动装置的测试并不取决于人类接近待测试的移动装置的能力。
[0078]
尽管上文描述的流程图和方法流程的步骤以特定次序示出或描述,但应理解,本发明的实施例可包括具有不同次序的步骤的方法。另外,可以省略或添加步骤,并且仍可以在本发明的实施例内。
[0079]
本技术中描述的任何软件组件或功能可以通过使用任何合适的计算机语言(例如java、c、c++、c#、objective-c、swift)或脚本语言(例如,perl或python),例如使用常规或面向对象的技术实施为由处理器执行的软件代码。软件代码可以作为一系列指令或命令存储在计算机可读介质上以用于存储和/或传输,合适的介质包括随机存取存储器(ram)、只读存储器(rom)、诸如硬盘驱动器或软盘的磁介质,或诸如光盘(cd)或dvd(数字多功能磁盘)、闪速存储器等的光学介质。计算机可读介质可以是此类存储或传输装置的任何组合。
[0080]
此类程序还可使用适于经由符合包括互联网的各种协议的有线、光学和/或无线网络传输的载波信号来编码和传输。因此,根据本发明的实施例,可以使用用此类程序编码的数据信号来创建计算机可读介质。用程序代码编码的计算机可读介质可以与兼容装置一起包装或与其它装置分开提供(例如,经由互联网下载)。任何此类计算机可读介质可以驻留在单个计算机产品(例如,硬盘驱动器、cd或整个计算机系统)上或单个计算机产品内,并且可以存在于系统或网络内的不同计算机产品上或不同计算机产品内。计算机系统可以包括监视器、打印机或其它合适的显示器,以用于将本文提及的任何结果提供给用户。
[0081]
以上描述是说明性的,不是限制性的。在查看本公开后,本发明的许多变化将对本领域的技术人员是显而易见的。因此,本发明的范围不应参考上述描述来确定,而应参考待决权利要求书及其全部范围或等同物来确定。
[0082]
在不脱离本发明的教导的情况下,任何实施例的一个或多个特征可以与任何其它实施例的一个或多个特征组合。
[0083]
如本文所使用,除非明确指示为相反,否则使用“一个”、“一种”或“所述”旨在表示“至少一个”。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1