智能卡操作系统自动测试中的脚本技术 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

智能卡操作系统自动测试中的脚本技术

来源:中国一卡通网  作者:周章慧,王同洋,吴俊军,张新访  发布时间:2010-01-14 11:58:55  字体:[ ]

关键字:脚本语言  智能卡芯片操作系统  测试自动化  语言解释器  

摘   要:介绍了智能卡的特点,用巴科斯范式(BNF) 出了SCML脚本语言的主要语法定义。重点介绍了SCML解释执行的相关技术及如何对SCML语言进行扩展以满足不断变化的需求。把SCML应用到智能卡大师测试系统中可以实现测试自动化,实际表明该脚本技术可以适应各类智能卡测试的要求,并得到广泛应用。


    第2趟扫描为解释执行,实现在SCM程序流程结构的控制下执行对应的智能卡操作系统指令达到预期的智能卡测试目的.首先根据有无控制前缀判断当前语句是否为控制语句,再根据流程控制语句的关键字判断是否为流程控制语句或普通的赋值语句。根据行号可以从第一趟扫描的流程控制树中检索到当前的流程控制结构。对应的4种流程控制结构的处理实现可以用图1的流程图来表示。nl nPos为流程控制处理后将要执行语句的行号,该行可能是智能卡命令也可能是另一个流程控制语句。

    4 scML的扩展技术

    SCM中已经定义了各类常用的函数供用户使用时调用,包括:字符串处理,各类加解密算法,通信、金融、社保行业使用的专用算法等,这些函数已经可以满足一般的使用要求。因为智能卡产品的日新月异,一些新的要求会不断提出,原有的函数接口可能无法满足要求,在不更改主实现程序的情况下,使用动态组件技术可以自由的扩充需要的函数,使测试得以顺利进行。动态组件是满足一定的接口规格的动态库,它可以动态安装到主程序中并可以卸载,为了防止非法的组件被使用及组件被非法使用,动态组件采用了授权技术,安装和使用过程中,需要对组件进行双向认证授权,否则无法使用。SCM是一个通用的智能卡测试工具,它可以适用于各类智能卡产品的测试,为了减轻工作人员的负担,系统提供了一系列的命令,命令由命令名称和命令参数组成,一个命令包含了一条或多条的APDU,通过命令的执行,SCM可以向智能卡发送预期的APDU(包括形成APDU的报文参数)并比较卡是否返回预期的结果,并利用已经得到的结果(可能包括更前面的命令返回的结果)来形成下一条APDU或判断整体命令是否执行正确,然后返回该条命令的执行结果。不同规范的智能卡可能使用同一个命令名称,但需要执行不同的算法和处理流程。为了解决这种问题,采用了面向对象方法的继承和重载思想,子类可以直接使用父类的方法,也可以有自己专用的方法,当父类的方法不适用的时候,子类可以对该方法进行更改。基础类为一个通用智能卡类CICCard,它用于处理通用的智能卡测试命令,如参数P1、P2、P3的测试、测试参数设置命令、执行结果比较命令等,其它类型的智能卡都是从此类上派生的,包含了各自的类成员和方法,并对命令处理方法重载。如GSM 网络的通信智能卡类CSim是从类CICCard派生的,CDMA网络的通信智能卡类CUim是从类CSim派生的。通过派生和重载可以为各种智能卡标准建立各自的命令集,层次清晰,实现简单。 

 

    5 组织SCML测试脚本实现测试自动化

    通过单个的SCML~0试脚本可以实现一项或多项测试用例的测试,把多个测试脚本按照一定的规则组合在一起就可以实现整个智能卡各项功能的测试并实现自动化。SCM 中一个或多个测试脚本和其它测试相关内容(如案例名称、案例描述等)一起构成了一个测试案例,测试案例通过树状的结构组合在一起就形成了层次的测试包,一个测试包用以代表一类功能的测试案例的集合,多个测试包再加上测试的一些配置条件就形成了测试工程,通过对测试工程的执行就实现了对一类智能卡的完整性测试。测试过程中可以自动进行测试轮次的管理并自动记录每轮中的测试细节信息,用户可以查看单个测试案例的执行历史情况也可以动态统计测试工程中案例的执行通过、失败的情况,并可以对各类分布情况进行汇总。测试执行完成后,用户就可以同步得到一份内容可详可简的测试报告。

    图2为利用SCM 进行一种中国移动的通信卡测试过程中的截图。 

利用SCM 进行中国移动通信卡测试

    6 结束语

    SCML测试脚本简洁易读、结构清晰、易于维护、便于扩展,此种脚本语言格式及处理机制已经应用到武汉天喻信息产业股份有限公司的智能卡通用测试工具中,并实际应用到各类智能卡产品的测试中,实现了测试平台的统一并实现了过程自动化,为公司的产品质量稳定、可靠起到了实际的作用。
 
    (文/华中科技大学机械学院,武汉天喻信息产业股份有限公司 周章慧,王同洋,吴俊军,张新访)

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖