高端学术
您当前的位置:核心期刊咨询网电子信息论文》智能购电卡应用功能测试系统的设计与开发

智能购电卡应用功能测试系统的设计与开发

来源:核心期刊咨询网时间:12

摘要:智能购电卡应用功能测试系统的设计与开发 论文摘要:为保障CPU卡在预付费售电系统各类应用终端上的安全使用,确保预付费售电系统的顺利实施和安全运行设计实现了一套CPU卡应用功能测试系统。本文在介绍智能卡COS指令的基础上,主要介绍测试系统的具体设计及

  智能购电卡应用功能测试系统的设计与开发

  论文摘要:为保障CPU卡在预付费售电系统各类应用终端上的安全使用,确保预付费售电系统的顺利实施和安全运行设计实现了一套CPU卡应用功能测试系统。本文在介绍智能卡COS指令的基础上,主要介绍测试系统的具体设计及实施方案,并详细分析测试用例的设计。

  论文关键词:预付费售电系统,卡,指令,卡片测试,功能测试

  0引言

  目前在预付费售电系统中广泛使用CPU卡作为载体充当用电信息的传递媒介,CPU卡的安全、可靠和稳定对整个系统的安全性和运行的可靠性至关重要。对CPU卡性能的测试主要包括卡片的物理特性测试、电气特性测试和应用功能测试三方面。对于物理和电气特性,依据ISO/IEC7816和ISO/IEC10373等标准,国内外已研制出各类专门的检测仪器和设备对其特性参数进行测试,而应用功能测试则主要根据CPU卡片实际应用和环境要求,开发相应的测试系统对卡片进行应用功能、性能以及应用流程等方面的测试。本测试系统即针对在预付费售电系统中应用的各类卡片进行全面的功能测试和关键性能指标测试,以保障CPU卡在各类应用终端和系统上可以正确地执行各类卡操作功能,确保预付费售电系统的顺利实施和安全运行。

  1CPU卡在预付费售电系统中的应用

  CPU卡是指芯片内部集成了中央处理单元CPU、可编程只读存储单元EEPROM、随机存储单元RAM和只读存储单元ROM的IC卡。其中,RAM用于存放运算过程中的中间数据,ROM中固化有片内操作系统COS(CardOperatingSystem),而EEPROM用于存放持卡人的个人信息以及发行单位的有关信息。CPU卡应用的核心在于其芯片内部的片内操作系统COS,COS的主要功能是控制CPU卡和外界的信息交换,管理CPU卡内的存储器并在卡内部完成各种命令的处理。COS是一个专用系统而不是通用系统,不同应用的CPU卡片其内部COS一般是不相同的。正是由于COS的特殊性,对具体应用的COS应分别开发应用测试系统系统对其进行测试。

  在预付费售电系统中,CPU卡在电能表和用电管理系统之间充当信息传递的媒介,完成用户购电量充入电能表内,并将用户用电信息带回售电管理系统等功能。CPU卡对数据的读写采取目录、文件的管理方式,使用时首先要根据应用情况在每张CPU卡上建好文件结构,每个文件都在各自的密钥的控制下进行读写。应用于预付费售电系统的CPU卡内建立电能表应用DF目录,存放用于预付费售电系统的各类文件。CPU卡与电能表、售电系统进行数据交换时,通过发送符合PBOC2.0标准的COS指令对数据进行安全认证,并对卡内数据进行读写操作,完成用电信息的传递。对CPU卡应用测试即用计算机模拟电能表或售电系统对CPU卡发送指令,判断CPU卡能否做出及时、正确、可靠的应答。因此,本测试系统设计开发过程中的关键在于CPU卡在预付费售电系统中的应用功能及流程设计,即测试COS指令流的设计。

  2CPU卡应用测试系统的设计与开发

  2.1总体设计思路

  基于某电力公司CPU卡在预付费售电系统中的应用,提出一套测试方案,模拟CPU卡的应用流程进行测试。设计思路如下:根据预付费售电系统应用技术规范要求和CPU卡交易流程,生成COS测试指令流,即针对各项功能设计测试用例,开发测试系统软件。用某生产厂家提供并通过PBOC2.0标准检测的CPU卡作为标准卡,用来验证软件测试的可靠性。测试用例被测试通过后,即可作为标准来测试卡片,测试时,将测试用例发送到待测试卡,并监测待测试卡的返回数据,如果所述待测试卡的返回数据与预期输出相同,则测试成功,如果不相同则测试失败。本方案提出CPU卡应用功能测试方法,使测试更符合最终用户的使用习惯,同时能够避免由于测试覆盖度不够而造成测试通过的产品在用户使用中出现问题。

  2.2CPU卡应用测试系统基本结构

  基于预付费售电系统应用的智能卡测试系统总框架如图1所示。

  图1测试系统构成

  Fig.1Testsystemcomponents

  (1)CPU卡应用测试软件

  CPU卡应用测试软件完成测试的主要工作业务流程,记录测试数据、出具测试报告等功能,包括以下几个模块:读卡器操作模块:作为测试系统功能实现的基础,主要实现系统对读卡器的自动识别,使系统能通过动态库封装技术,对所发送指令进行统一规范,可以支持各种类型的读卡器。解释执行管理模块:是测试系统功能实现的核心,执行CPU卡操作系统的指令。测试工程管理模块:采用工程管理的思想,把将要进行的测试任务统一作为一项测试工程,利用树形结构的分级管理模式,可分层次建立测试库、测试树和测试用例,在每一级项目树中都可对测试内容进行增添和删除等操作,大大增加了测试系统的灵活性和通用性。测试报告生成模块:根据测试过程中卡片对测试任务中所有测试用例的执行结果,按照与测试工程行对应的树形结构,自动生成测试结果的列表或表格,显示每个测试项目是否通过,并存储为WORD文档格式,为测试人员提供参考并可以以此作为判定测试卡片是否符合规范要求的依据。工具算法模块:提供测试中常用算法和辅助工具,对常用算法以函数定义的方式进行统一封装,可直接调用。例如DES算法,3DES算法,MAC计算,随机数生成器等。

  系统设置模块:用来设置系统运行的一些基本参数或功能,如串口设置、机具类型设置、卡片类型设置、通信速率设置等。

  (2)读卡器

  读卡器是各类待测卡和计算机之间的传输媒介,完成测试系统软件与各类待测试卡片之间的数据通讯,采用双卡座模式,一个卡座用来放置操作的控制卡,即配对卡,另一个卡座放置待测试卡。它与计算机之间是通过数据线与USB接口相连。CPU卡读卡器由CPU卡适配插座、CPU卡电气接口电路、用于CPU卡时序生成与数据交换的微处理器以及与其它设备的连接口等部分组成。测试软件通过计算机对读卡器发送命令,读卡器把相应命令转化成COS指令发给待测试卡,待测试卡返回数据给读卡器,读卡器再将数据传到计算机软件中,进行分析。各类待测卡通过卡座与读卡器进行数据交互。

  (3)配对卡

  配对卡是各种与待测试卡配套使用的卡片总称。例如ESAM应完成与其对应的用户卡、密钥修改卡及密钥恢复卡等工具卡之间的相应操作,为测试相应功能是否被正确执行,需要和相关配套的密钥恢复卡、密钥修改卡、用户卡、工具卡等等。

  (4)待测试卡

  待测试卡是指被测试样卡,包括ESAM、用户卡、PSAM卡等。

  2.3CPU卡应用测试软件设计

  本测试软件开发环境采用WindowsXP作为系统平台,VisualBasic作为语言开发工具,对卡片应用测试系统进行开发与实现。通过调用读卡器动态库,对卡片进行读写,从而对卡片功能应用等进行测试。读卡器操作模块封装各厂家读卡器专用动态库接口。接口共封装四个主要函数:选择读卡器类型、打开端口、关闭端口、选择前/后卡座。每个函数根据不同的读卡器类型分别调用相应的动态库。系统向CPU卡发送预期的COS指令比较卡片是否返回预期的结果,并利用已经得到的结果来形成下一条指令或判断整体指令是否执行正确,返回该指令的结果,判断测试是否成功,根据需要打印测试结果。

  2.3.1测试用例设计

  针对预付费售电系统的应用环境,本测试软件分为基本功能测试、命令参数测试、基本交易功能测试、基本安全功能测试、特殊项测试五个测试项,采用相应的方法设计测试用例进行测试。各部分具体测试内容如下:

  基本功能测试:CPU卡的基本功能测试即一般意义的指令集测试,是本测试系统中要实现的最基本功能。在预付费售电系统中,已经制定了相关的卡片技术要求和规范,其中对卡片的指令集做了明确规定。本测试系统的开发也遵照有关的技术要求和规范,对所有指令逐一进行测试。如:复位应答测试、建立文件指令测试、删除文件指令测试、选择文件指令测试、安装修改密钥文件指令测试、认证指令测试等。

  命令参数测试:主要包括两方面,一是通过流程图的分析,利用白盒测试方法,测试命令的逻辑路径;二是针对命令的组成部分,利用黑盒测试对各部分参数进行测试。在设计测试用例时利用划分等价类组成测试用例,由命令管理器对对CPU卡命令APDU的命令头进行分析处理,对指令集中的每一项指令逐项进行测试,重点对错误指令进行测试,如CLA出错时,Le出错时,Lc出错时,测试卡片是否正确报错。

  基本交易功能测试:主要是对预付费售电系统实际应用中的一些流程进行测试,因此为保证交易流程测试的正确性,首先必须保证所测卡片已经通过了基本功能测试和命令参数测试的前提下才能进行。交易功能是CPU卡应用中最主要的部分,基本交易功能测试主要测试CPU卡COS能否在接受读写器命令序列后完成正常交易(对钱包文件的读、写、更新、加钱和减钱操作)。测试主要包括:用户卡充值流程测试、电表充值流程测试、ESAM工作流程测试、工具卡工作流程测试。根据交易需满足的条件和与交易有关命令间的相互关系,先做出交易测试流程图,首先采用基本路径测试设计测试用例,然后再利用功能图对测试用例进行补充。

  基本安全功能测试:主要测试CPU卡的防拔插、安全锁定和抗攻击性。对CPU卡的防拔插测试主要针对正常环境下采用正确的命令序列执行正常操作,COS写EEPROM时,突然掉电,CPU卡是否具有自动恢复的能力。安全锁定测试是测试CPU卡在对密钥进行验证时,多次错误输入后CPU卡是否自动锁定。抗攻击测试是在应用者要求的安全等级下测试CPU卡在遭受各种攻击情况下,其密钥导入、文件安全管理、交易安全执行和密钥管理是否正常。测试用例的设计是采用推断的方法针对不同情况逐一进行设计。

  特殊项测试:针对CPU卡在预付费售电系统应用中所特有的一些项目或比较特殊的重要的项目进行测试。例如用边界值分析法对钱包文件进/借位进行测试、对文件操作权限的测试等。

  2.3.2测试用例详解

  在预付费售电系统中CPU卡与电能表内嵌入式安全模块ESAM的数据交互是所有交易流程实现的基础,现以用户卡与电能表的交易流程为例进行说明。读卡器上下卡座分别插CPU卡及ESAM模块,自行开发的测试软件发命令模拟电能表。具体测试流程如下图所示。

  打开端口,发行用户卡、ESAM模块后,选择用户卡交易流程测试,进行如下操作:CPU卡和ESAM模块内部认证、ESAM模块外部认证、CPU卡和ESAM模块外部认证、更新钱包文件。

  以下是CPU卡和ESAM模块进行内部认证的源代码:

  lreturn=ICC_set_NAD(hPort,18)'打开上卡座,切换到用户卡:

  Comm="0012000000"

  RetCode=ICC_tsi_apiVB(hPort,5,Comm,RespLen,Resp)

  IfRetCode36864Then

  MsgBox"复位失败:"&Hex(RetCode),,"执行错误窗口............"

  LblStatus.Caption="复位失败!"

  ExitSub

  Else

  card=Mid(Resp,11,16)

  EndIf

  Comm="0084000008"

  RetCode=ICC_tsi_apiVB(hPort,5,Comm,RespLen,Resp)

  rand=Mid(Resp,1,16)

  lreturn=ICC_set_NAD(hPort,19)'打开下卡座,切换到ESAM:

  Comm="80FA000110"

  Comm=Comm+card+rand

  CommLen=Len(Comm)/2

  RetCode=ICC_tsi_apiVB(hPort,CommLen,Comm,RespLen,Resp)

  answeresam=Resp

  lreturn=ICC_set_NAD(hPort,18)'打开下卡座,切换到用户卡:

  Comm="0088000108"+rand

  CommLen=Len(Comm)/2

  RetCode=ICC_tsi_apiVB(hPort,CommLen,Comm,RespLen,Resp)

  answeruser=Resp

  Ifansweresam=answeruserThen

  ................

  Else

  MsgBox"内部认证认证失败:"&Hex(RetCode),,"执行错误窗口............"

  Text1.Text=Text1.Text&vbCrLf&"内部认证失败!"

  EndIf

  图2测试流程图

  Fig.2Testflowchart

  3结束语

  本测试系统采用划分等价类法、穷举法等对CPU卡发送指令流,在基本功能测试的基础上,模拟CPU卡的应用流程,对CPU卡进行测试,经过半年的试运行,界面友好,运行稳定,易于掌握和操作,大大提高了卡片应用测试的工作效率。智能购电卡应用测试系统的设计和开发,为预付费售电系统中的各类卡片提供了一个标准统一、流程规范的测试平台,保障了CPU卡在各类应用终端和系统上可以正确地执行各类卡操作功能,确保预付费售电系统的顺利实施和安全运行。

  参考文献

  1 杨振野. IC卡技术及其应用[M].北京:科学出版社,2006,126~127 .

  2 王爱英.智能卡技术[M].北京:清华大学出版社,2000,220~221.

  3 JR/T 0025-2005,中国金融集成电路(IC)卡规范[S].

  4 梅新明,周章慧,王琴.联网电子收费卡片应用测试系统设计与开发[C]. 2008第四届中国智能交通年会论文集, 2008, 947~948.

  5 陈波.智能卡技术研究与开发[D].武汉理工大学,2005.

转载请注明来自:http://www.qikan2017.com/lunwen/dzi/5314.html

相关论文阅读

论文发表技巧

期刊论文问答区

电子信息优质期刊

最新期刊更新

精品推荐