COS 测试总体上采用增量测试的方法,各项内容与测试阶段对应见表2。
2. 1 COS 基本功能测试
灰盒测试[ 6]结合了白盒测试和黑盒测试,软件需求规格说明书是测试用例的设计依据,也是验证软件满足其功能需求的依据,在对需求和结构进行覆盖分析时须使用同样的测试用例。灰盒测试是发现软件潜在缺陷的非常有效的技术手段。对于COS 基本功能的灰盒测试方法如下: 测试人员根据ISO/ IEC7816- 4 标准以及具体的需求规范进行测试用例设计,对已有测试进行覆盖分析来进一步扩充测试用例以确保测试的充分性,对于需求的覆盖率一般要达到100%,而对于结构的覆盖率达到所要求的即可。
从智能卡所遵循的ISO/ IEC 7816- 4 规范入手设计COS 的测试用例,ISO/ IEC 7816- 4 规范的主要内容包括: 在接口设备与智能卡之间的通信中所传送的报文、命令和响应的内容; 在处理交换用的行业间命令时,在接口处所看到的数据文件的结构; 卡内数据文件的访问方法; 定义卡内数据文件访问权限的安全体系结构。这些都可用模拟终端发送特定的命令序列给COS,然后根据COS 执行命令的结果来进行测试。
智能卡与终端是以APDU 为基本单元通信的,COS 功能测试主要关注工作流程、命令参数、安全状态、状态码和响应数据。因而对COS 基本功能测试的对象就是APDU 序列。
首先需要针对标准以及需求规范中描述的每个命令的APDU 设计测试用例,由于命令解释模块首先对命令缓冲区中APDU 的4 个字节的必备头进行接受分析处理,因此对各个命令可依据图4 所示的测试用例树来设计测试用例。
测试时,判断命令执行结果是否正确的主要依据是COS 执行APDU 命令后返回的状态码,在COS 中定义了4 种状态:
1) St ate- Response: 命令执行完后,把命令执行的结果存储在Get Response 专用缓冲区中,并且卡回送的状态码被设为61XX,它通知终端发出Get Response命令来获取数据;
2) St ate- Success: 命令成功执行时返回的状态,该状态不需要终端再使用Get Response 命令来获取数据;
3) St ate- Error: 在执行命令过程中出现了异常情况时返回的状态,这时会向终端回送错误代码,包括命令的参数出错和在执行命令过程中出现的存储空间、安全状态等错误;
4) State- T imeout: 在接收Lc 长度的数据的过程中发生超时,则返回该状态,此时不需要向终端回送错误代码。
在EVDO 卡的测试中,以SELECT 命令为例,依据图4 设计测试用例,如表3 所示。
对命令功能的测试主要是测试各命令之间的相互关系以及命令序列所完成的功能。根据ISO 7816- 4中规定的命令执行时需要满足的条件及有关命令间的相互关系,描述执行命令序列的过程,然后以非正常和正常事件作为输入来设计测试用例。
在EVDO 卡的测试过程中,利用团队自主开发的自动化测试工具,引入脚本技术,实现COS 测试的自动化,大大地提高了测试的效率。引入自动化测试技术具有如下优势:
1)使测试可以快速准确地进行,减少人为的操作失误,更多更频繁地运行测试脚本,使得脚本的执行效率高于手工测试,缩短发布产品的时间;
2)对新版本的程序运行已有的测试脚本,特别是在程序更新较频繁时,自动化测试可以在短时间内测试已有的脚本;
3)更好地利用资源,使繁琐的任务自动化可提高测试的准确性以及测试人员的积极性,从而使测试人员能有更多精力来设计更好的测试用例;
4) 自动化测试可通过重复执行相同的测试脚本来获得测试的可重复性和一致性。
2. 2 防拔插和耐久性测试
防拔插测试主要检测因突然断电而使操作中断后智能卡能否自动恢复。主要涉及的是在正常环境下执行正确的命令序列,COS 写FLASH 时,突然断电,智能卡能够保证卡内的数据依然具有完整性。若命令未能成功执行,验证卡内数据与命令执行前是否完全一致,若一致则表示卡片的防插拔功能是有效的。智能卡的使用寿命是有限的,对智能卡的插拔次数决定了智能卡的物理寿命,一般来说,约在1 万次左右; 而数据存储器的擦写次数决定了集成电路芯片的寿命,各厂家生产的芯片其指标是不同的。故而必须对智能卡实施耐久性测试,检验存储器的擦写次数是否会因为日常使用而超出芯片存储器擦写的最大值。对文件的操作是使用智能卡时主要涉及的内容,因而需要模拟日常使用智能卡的行为,对所有文件的访问频率进行统计,找出具有相对较高访问频率的那些文件,在个人化过程中分散存储这些文件,避免某一块存储区域擦写过度,均衡整个存储器的擦写。
3 结束语
根据COS 的特点给出了COS 的测试方案,对于每个测试项给出了其测试的方法和技术。在测试中,结合对测试结果的分析,进一步补充测试用例。在EVDO 卡的开发中按照文中的测试方案进行了测试,经反复测试,开发的EVDO 卡通过了第3 方测试,该卡正应用于生产。
12