掌桥专利:专业的专利平台
掌桥专利
首页

分布式智能卡自动测试方法及测试系统

文献发布时间:2023-06-19 18:34:06


分布式智能卡自动测试方法及测试系统

技术领域

本发明涉及智能卡测试的技术领域,具体地,是一种分布式智能卡自动测试方法,还涉及实现该方法的自动测试系统。

背景技术

随着技术的发展,智能卡已经广泛的应用在手机通信、移动支付、身份识别等多个领域。现有的智能卡通常设置有智能芯片,智能芯片上存储有智能卡的信息,并且还运行各种应用程序。由于智能卡运行的应用程序需要经过大量测试以发现其存在的问题,智能卡开发商需要不断对应用程序进行优化、调整。

为此,在智能卡的研发过程中,需要对智能卡进行大量的测试。为了提升智能卡的测试效率,通常使用自动化测试的方式进行测试。为了验证智能卡在不同应用场景下的运行状况,通常需要设置多种测试用例,每一种测试用例模拟一种应用场景下的使用状况。

现有智能卡的测试时,通常由测试人员使用一个测试用的客户端设备进行测试,例如在客户端设备上登录测试账户,并且在客户端设备上创建测试计划,测试计划包含测试参数和测试范围等,客户端设备显示所有的能够执行的测试用例,测试人员可以通过客户端设备选择需要执行的目标测试用例,由客户端设备运行所选择的目标测试用例,并生成测试报告。最后,测试人员可以通过查看目标测试用例的运行结果,例如导出测试日志和测试报告。

但是,这种测试方法仅仅使用一个客户端设备以串行的方式执行所有的目标测试用例,测试花费的时间很长。尤其是随着智能卡的应用场景越来越多,需要执行的测试用例也越来越多,虽然智能卡的测试可以通过自动化的方式进行,但由于测试用例过多,导致测试时间非常长。此外,如果智能卡的应用程序存在问题,且存在问题对应的测试用例在所有目标测试用例中的位置比较靠后,触发问题的时间就会滞后,对应相关应用程序进行修复的时间也会相应延长,进而会影响智能卡的研发进度。另外,如果测试过程中遗漏某个功能模块的测试,导致智能卡存在未发现的问题的风险。

为此,测试人员采用并行的方式进行测试,即采用多台测试用的客户端设备对同一智能卡进行测试。参见图1,例如使用四台客户端设备11、12、13、14以并行的方式进行测试,每一台客户端设备11、12、13、14均连接至服务器10,在每一台客户端设备11、12、13、14上运行一部分测试用例,并且将测试用例的运行结果发送至服务器10。最后服务器10将获取所有已经执行的测试用例的运行结果。在所有客户端设备11、12、13、14均运行各自的测试用例后,服务器10可以导出测试日志并生成测试报告,供测试人员了解测试的结果。

通过同时使用多台客户端设备11、12、13、14执行目标测试用例的方式能够大幅度节省测试所需要的时间。但是,由于一部分测试用例需要使用专用的程序或者需要在专用的测试环境中执行,并不是每一个客户端设备都具有运行这些特殊测试用例的程序或者运行环境,如果将特定的测试用例分配至不具备专用的程序或者具有专用的测试环境的客户端设备上运行,将导致这些测试用例无法正确运行,或者导致测试用例的运行结果不准确。

但是,由于客户端设备往往并未标记其运行的程序或者运行的环境,导致测试人员难以确定相应的测试用例是否可以在该客户端设备上运行,在分配各测试用例运行的客户端设备时,将容易导致各测试用例的分配错误。

发明内容

本发明的第一目的是提供一种能够自动对通用测试用例以及专用测试用例进行分配的分布式智能卡自动测试方法。

本发明的第二目的是提供一种实现上述分布式智能卡自动测试方法的测试系统。

为实现本发明的第一目的,本发明提供的分布式智能卡自动测试方法包括在主客户端上登录测试账户,并创建测试计划;并且,确定测试计划中的专用测试用例,根据专用测试用例确定各专用测试用例的专用测试客户端,将各专用测试用例分配至对应的专用测试客户端;确定测试计划中的通用测试用例,将通用测试用例分配至通用测试客户端;将测试计划的信息传送至服务器;在专用测试客户端上登录测试账户,并运行对应的专用测试用例,将专用测试用例的运行结果发送至服务器;在通用测试客户端上登录测试账户,并运行对应的通用测试用例,将通用测试用例的运行结果发送至服务器;服务器将各专用测试用例以及各通用测试用例的运行结果发送至主客户端。

由上述方案可见,在创建测试计划的时候,识别出需要使用专用测试客户端运行的专用测试用例,在分配各测试用例的时候,选定可以运行专用测试用例的专用测试客户端,并且将专用测试用例分配至相应的专用测试客户端。这样,专用测试用例将在相应的专用测试客户端上运行,确保各专用测试用例的运行结果的准确性。

另外,由于专用测试用例是优先于通用测试用例进行分配,即在所有专用测试用例分配完毕后,才分配通用测试用例,这样,可以确保各专用测试客户端能够高效的运行相应的专用测试用例。并且,由于各个测试用例是自动分配的,不管是通用测试用例还是专用测试用例,都可以通过自动分配的方式进行自动测试,从而提高各测试用例分配的效率,也可以避免遗漏测试用例没有分配的情况发生。

一个优选的方案是,根据专用测试用例确定各专用测试用例的专用测试客户端包括:获取各专用测试客户端的测试功能信息,根据各专用测试客户端的测试功能信息确定各专用测试客户端能够执行的专用测试用例。

由此可见,各专用测试用例是根据各专用测试客户端的测试功能进行分配的,从而确保各专用测试用例端能够正确运行分配的专用测试用例,确保专用测试用例运行结果的准确性。

进一步的方案是,同一测试功能的专用测试客户端的数量为二个以上;根据专用测试用例确定各专用测试用例的专用测试客户端包括:根据各专用测试客户端的预测运行时间分配各专用测试客户端运行的专用测试用例。

可见,在可以执行同一测试功能的专用测试客户端具有多个的时候,根据预测的运行时间来分配各专用测试客户端运行的专用测试用例,使得各专用测试客户端的运行时间大致相等,提升智能卡的整体测试效率。

更进一步的方案是,根据各专用测试客户端的预测运行时间分配各专用测试客户端运行的专用测试用例包括:以各专用测试客户端的运行时间最接近的方式对各专用测试客户端运行的专用测试用例进行分配。

由此可见,通过上述的分配方式可以让各个专用测试客户端能够以最短的时间运行完所有的专用测试用例。

更进一步的方案是,创建测试计划时,从服务器中获取各专用测试客户端的信息;向服务器传送测试计划的信息包括各专用测试用例执行的专用测试客户端的信息。

可见,预先从服务器获取各专用测试客户端的信息,有利于确定各专用测试客户端的程序以及运行环境,甚至还可以确定各专用测试客户端的状态等,能够确保各专用测试用例以最高效、最准确的方式进行测试。

更进一步的方案是,将各专用测试用例分配至对应的专用测试客户端包括:获取各专用测试客户端的编号,将各专用测试用例与对应的专用测试客户端的编号匹配。

由此可见,通过记录各专用测试客户端的编号的方式对专用测试用例进行分配,可以方便对专用测试用例的分配,也有利于后续的维护。

更进一步的方案是,获取专用测试用例的运行结果后,判断运行结果是否异常,如果异常,根据专用测试用例对应的专用测试客户端的编号查找运行该专用测试用例的专用测试客户端。

由于记录了各专用测试用例对应的专用测试客户端的编号,一旦运行结果异常,可以快速的通过该编号查找到相应的专用测试客户端,为查找运行异常的原因提供极大的便利。

更进一步的方案是,将通用测试用例分配至通用测试客户端包括:根据各通用测试客户端的预测运行时间分配各通用测试客户端运行的通用测试用例。

可见,对通用测试用例进行分配时,也会考虑各个通用测试客户端的运行时间,使得各个通用测试客户端的运行时间大致相等。

为实现上述的第二目的,本发明提供的分布式智能卡自动测试系统包括主客户端以及服务器,主客户端用于登录测试账户,并创建测试计划;并且,主客户端还用于确定测试计划中的专用测试用例,根据专用测试用例确定各专用测试用例的专用测试客户端,确定测试计划中的通用测试用例,并将测试计划的信息传送至服务器;服务器用于将各专用测试用例分配至对应的专用测试客户端,并将通用测试用例分配至通用测试客户端;专用测试客户端用于登录测试账户,并运行对应的专用测试用例,将专用测试用例的运行结果发送至服务器;通用测试客户端用于登录测试账户,并运行对应的通用测试用例,将通用测试用例的运行结果发送至服务器;服务器还用于将各专用测试用例以及各通用测试用例的运行结果发送至主客户端。

由上述方案可见,在分配各测试用例的时候,先分辨出需要专用程序或者专用运行环境下运行的专用测试用例,并且将专用测试用例分配到专用测试客户端,将剩下的通用测试用例分配到通用测试客户端。这样,可以确保各专用测试用例可以在符合其运行条件的专用测试客户端上运行,进而确保专用测试用例的运行结果的准确性。

并且,由于专用测试用例是优先于通用测试用例进行分配的,因此,能够均衡的将专用测试用例、通用测试用例分配到各个测试客户端上,使得各个测试客户端的总的运行时间基本上相等,从而减少智能卡测试的整体时间,提升智能卡的测试效率。

附图说明

图1是现有的智能卡动态测试系统的结构框图。

图2是本发明分布式智能卡自动测试系统实施例的结构框图。

图3是本发明分布式智能卡自动测试方法实施例的流程图。

以下结合附图及实施例对本发明作进一步说明。

具体实施方式

本发明的分布式智能卡自动测试方法用于对智能卡进行测试,尤其是通过多台客户端设备同时进行测试,每一台客户端设备运行一部分测试用例,可以提升智能卡的测试效率。此外,本发明能够对测试环境有特殊要求的专用测试用例进行特殊处理,即分配至具有相应测试条件的专用测试客户端上,从而确保专用测试用例的运行结果的准确性。本发明的分布式智能卡自动测试系统可以实现上述的分布式智能卡自动测试方法。

参见图2,本实施例的分布式智能卡自动测试系统包括服务器20以及多台客户端设备,其中一台客户端设备是主客户端30,另外四台客户端设备包括两台专用测试客户端21、22以及两台通用测试客户端23、24。其中,专用测试客户端21、22上运行有特殊的软件程序,或者具有特殊的运行环境,满足特殊的测试用例的运行需求。其中,这些特殊获得测试用例就是专用测试用例。对于运行环境没有特殊需求的测试用例,就是通用测试用例,这些通用测试用例可以在任何一台测试客户端上运行,即可以在通用测试客户端或者专用测试客户端上运行通用测试用例。

为此,在分配各个测试用例运行的测试客户端时,专用测试用例的分配优先等级高于通用测试用例的分配优先等级,即优先分配专用测试用例,在所有的专用测试用例分配完毕后,再分配通用测试用例。这样,如果某一个专用测试客户端未被分配执行专用测试用例,则可以作为通用测试客户端使用,也就是将通用测试用例分配至未被分配执行专用测试用例的专用测试客户端上。当然,另一种情况是,如果通用测试客户端数量较少,需要执行的通用测试用例较多,导致每一个通用测试客户端需要执行的通用测试用例较多,测试时间较长的情况下,也可以适当的将部分通用测试用例分配至专用测试客户端,由执行较少专用测试用例的专用测试客户端执行一部分通用测试用例,从而使得各个测试客户端运行测试用例的时间相对均衡,进而提升智能卡的整体测试效率。

本实施例中,每一台测试客户端均与服务器20进行通信,例如每一台测试客户端可以从服务器20接收所需要执行的测试用例的信息,并且可以将各测试用例的运行结果发送至服务器20。此外,服务器20可以将各台测试客户端对相应的测试用例的运行结果发送至主客户端30。主客户端30接收到各测试用例的运行结果信息后,可以通过显示屏将运行结果信息进行显示,这样,测试人员可以从主客户端30处获取各测试用例的运行结果信息。可选的,主客户端30自身也可以是一个测试客户端,例如作为专用测试客户端或者通用测试客户端,也能够运行一部分测试用例。

本实施例中,专用测试客户端21上可以运行专用测试用例41、42,专用测试客户端22上可以运行专用测试用例43、44,而通用测试客户端23上可以运行通用测试用例45、46,通用测试客户端24上可以运行通用测试用例47、48。

下面结合图3介绍分布式智能卡自动测试系统对智能卡进行测试的过程。首先,执行步骤S1,测试人员在主客户端30登录测试账户,如果没有创建测试账户,则需要创建一个新的测试账户,该测试账户对应于一款需要测试的智能卡。在主客户端30上登录测试账户后,需要创建测试计划,测试计划的信息包括测试参数以及测试范围,具体的,测试范围是当前需要测试的项目所需要测试的所有测试用例,对于不同的智能卡,或者针对不同的测试项目,所需要测试的测试用例是不同的,因此,相应的测试范围也是不同的。

测试计划中包含有需要执行的多个测试用例的信息,其中一些测试用例是需要由特殊的软件程序执行或者运行在特殊的运行环境下,这些测试用例是专用测试用例,专用测试用例需要在专用测试客户端上运行。由于不同的专用测试客户端所运行的软件程序、运行环境不完全相同,因此,不同的专用测试客户端所实现的测试功能也不相同。

与专用测试用例相对的,如果测试用例对运行环境没有特殊要求,可以在普通的测试客户端上运行,在这些测试用例是通用测试用例,通用测试用例可以在通用测试客户端上运行。当然,由于专用测试客户端也具有运行测试用例的基本性能,因此,专用测试客户端也可以运行通用测试用例。

当然,原则上,专用测试用例应该只能分配到相应的专用测试客户端,例如测试人员在主客户端上选定的专用测试客户端,而通用测试用例应该只能分配到由测试人员选定的通用测试客户端,在专用测试客户端执行完所分配的专用测试用例后,不会再去执行通用测试用例。因此,在执行各测试用例时,只能在主客户端所选择的测试客户端上执行,例如通过主客户端输入执行各个测试用例的测试客户端的编号,这些测试用例只能在对应的测试客户端上执行。并且,一个客户端编号在一个测试计划中只能填写一次,即在执行专用测试用例部分填写了某一个专用测试客户端的编号,就不能在该测试计划中其他地方填写该专用测试客户端的编号。

当通用测试客户端不够用,并且可执行通用测试用例的专用测试客户端有闲置时,可以将这些闲置的专用测试客户端的编号写在测试计划中执行通用测试用例的那些编号中,从而让一部分专用测试客户端执行通用测试用例。

在创建测试计划时,需要确定所需要执行的所有测试用例中,哪些测试用例是专用测试用例,哪些测试用例是通用测试用例,并且,针对专用测试用例,还需要确定专用测试用例是需要使用怎么样的专用客户端运行。例如,针对协议测试,需要使用协议测试的专用测试用例,而针对掉电测试,也需要使用专用的掉电测试用例进行测试,另外,针对特定性能测试,也需要使用相应的性能测试用例。由于不同的专用测试用例对测试客户端的性能也有相应的要求,因此,需要确定获取各个专用测试客户端的信息,例如各个专用测试客户端的软件、硬件以及运行环境、性能、可实现功能等信息。

然后,执行步骤S2,根据各个专用测试客户端的信息确定各个专用测试用例分配的专用测试客户端,具体的,根据各个专用测试客户端的软硬件以及运行环境等情况确定各个专用测试客户端能够实现的功能,并由此确定各专用测试客户端能够对哪些专用测试用例进行测试,继而将相应的专用测试用例分配到相应的专用测试客户端。例如,确定专用测试客户端21能够满足专用测试用例41、42的运行需求,则将专用测试用例41、42分配至专用测试客户端21,确定专用测试客户端22能够满足专用测试用例43、44的运行需求,则将专用测试用例43、44分配至专用测试客户端22。

当然,如果针对同一测试功能的专用测试客户端有二个以上,即多个专用测试客户端均满足同一测试功能的运行需求,可以随机选择任一个专用测试客户端执行该功能的专用测试用例。本实施例中,为了减少智能卡的整体测试效率,将考虑各专用测试客户端的运行时间,因此,会根据专用测试客户端的预测运行时间分配各专用测试客户端运行的专用测试用例,以使得各个专用测试客户端的运行时间大致相等,也就是以各专用测试客户端的运行时间最接近的方式对各专用测试客户端运行的专用测试用例进行分配,以实现各个专用测试客户端的运行时间差值最小化。

在所有的专用测试用例分配完毕后,执行步骤S3,对通用测试用例进行分配,由于所有的通用测试客户端以及所有的专用测试客户端均可以执行通用测试用例,因此,可以根据各个通用测试客户端、专用测试客户端的预测运行时间分配来分配各个通用测试用例,以使得各个通用测试客户端的运行时间大致相等,或者各个通用测试客户端的运行时间差值最小化。进一步的,可以让运行专用测试用例所需要时间较少的专用测试客户端运行一部分通用测试用例以减少智能卡测试的整体运行时间,从而提高智能卡的整体测试效率。

优选的,对于每一个测试客户端,不管是专用测试客户端还是通用测试客户端,均设置有唯一的编号,在分配测试用例时,将测试用例与分配的测试客户端的编号进行匹配,即记录每一个测试用例所分配的测试客户端的编号。这样,一旦后续测试过程中,某一个测试用例的运行结果异常,可以快速的根据测试客户端的编号查找出运行该测试用例的测试客户端,并分析出现异常的原因。

然后,执行步骤S4,将测试计划的信息上传至服务器20。其中,所传送的测试计划包括各个测试用例的分配情况,即包括每一个测试用例所分配的测试客户端,优选的,将每一个测试用例与对应的测试客户端的编号进行关联。测试计划记录的测试用例可以仅仅是测试用例的名称或者编码等,测试用例的具体内容可以存储在服务器20中,服务器获取各测试用例的名称或者编码后,根据测试用例的名称或者编码查找相应的测试用例,并且将各测试用例的内容按照测试计划传送至各个相应的测试客户端。

优选的,测试人员可以在主客户端30上选择运行的测试客户端,例如,主客户端30从服务器20获取各专用测试客户端的信息,其中包括各个专用测试客户端的软硬件信息以及运行环境信息等,还包括各个专用测试客户端能够实现的功能等。在创建测试计划时,主客户端30可以展示各个专用测试客户端的信息,进一步的,还可以展示各个专用测试客户端的运行状态,例如某一个专用测试客户端正在执行其他的测试程序,或者某一个专用测试客户端后续还有需要执行的测试程序等。

这样,测试人员可以根据各个专用测试客户端的信息以及运行状态选择使用哪一个专用测试客户端执行相应的专用测试用例,例如将选定的专用测试客户端进行勾选。主客户端30向服务器20所传送测试计划的信息包括各专用测试用例执行的专用测试客户端的信息,例如包括所选定的专用测试客户端的编号。

接着,执行步骤S5,在需要运行测试用例的客户端上登录测试账户。由于主客户端30已经登录了测试账户,测试账户的信息已经记录在服务器20中,专用测试客户端21、22与通用测试客户端23、24需要登录同一个测试账户,并且向服务器20发送当前登录的测试账户的信息。接着,服务器20在接收到主客户端30发送的测试计划的信息后,根据测试计划的信息从测试用例数据库中查找与该测试计划相关联的所有测试用例,并且将各个测试客户端所需要运行的测试用例发送至相应的测试客户端。

各测试客户端接收到需要运行的测试用例的信息后,运行相应的测试用例,并将测试用例的运行结果发送至服务器20,即执行步骤S6。不管测试用例的运行结果是正常还是异常,各测试客户端将如实的将运行结果发送至服务器20。

最后,服务器20执行步骤S7,获取所有测试客户端对各自测试用例的运行结果,包括专用测试用例以及通用测试用例的运行结果。并且,服务器20还将所有测试用例的运行结果发送至主客户端30,由主客户端30显示所有测试用例的运行结果。这样,测试人员可以方便的从主客户端30上获取所有测试用例的运行结果。

进一步的,由于每一个测试客户端均有自己唯一的编号,且服务器20还记录了每一个测试用例与执行该测试用例的测试客户端的编号之间的对应关系,因此,如果某一个测试用例的运行结果异常,则可以方便的查询运行该测试用例的测试客户端,并快速的查找运行结果异常的原因。

可见,本发明的方法可以同时在多台测试客户端上运行不同的测试用例,提升智能卡的测试效率。并且,针对专用测试用例,将分配至相应的专用测试客户端上运行,能够确保专用测试用例能够在适当的环境下运行,确保运行结果的准确性。

最后需要强调的是,本发明不限于上述实施方式,例如测试客户端数量的改变,或者测试用例分配方式的改变等,这些改变也应该包括在本发明权利要求的保护范围内。

相关技术
  • 一种自动化测试系统及自动化测试方法
  • 车辆自动化测试系统、测试方法及装置
  • 智能卡动态分布式测试方法及测试系统
  • 全流程分布式系统自动化测试方法以及测试系统
技术分类

06120115611962