收藏 分销(赏)

基于Python的智能卡自动测试平台.pdf

上传人:曲**** 文档编号:229820 上传时间:2023-03-20 格式:PDF 页数:68 大小:3.21MB
下载 相关 举报
基于Python的智能卡自动测试平台.pdf_第1页
第1页 / 共68页
基于Python的智能卡自动测试平台.pdf_第2页
第2页 / 共68页
基于Python的智能卡自动测试平台.pdf_第3页
第3页 / 共68页
基于Python的智能卡自动测试平台.pdf_第4页
第4页 / 共68页
基于Python的智能卡自动测试平台.pdf_第5页
第5页 / 共68页
点击查看更多>>
资源描述

1、摘要摘要智能卡技术在手机、GPS、机顶盒、电视机以及诸多智能通信终端上得到 了广泛的应用。智能卡的种类也从简单的电信鉴权卡发展到了带有各种实用功 能的新型智能卡,如多媒体智能卡、RF-Sim卡、一次性密码卡等。应用智能卡 的各领域在要求智能卡功能不断加强,成本逐步降低的同时,对智能卡本身的 软件质量提出了更加严格的要求。这就使得智能卡软件测试不仅需要完成功能 性测试,还必须完成针对通信协议支持度的测试,针对承载电器的兼容性测试,以及针对智能卡性能的压力测试等。本文研究的目标是智能卡自动化测试系统。本论文使用Python语言作为自 动化测试系统的核心开发语言,采用敏捷测试原理组织测试用例和构建测

2、试框 架,主要开展以下几个方面工作:(1)分析智能卡的种类及各自特点,并根据其特点分析了其软件测试的重 点。阐述敏捷测试的原理,并分析其在智能卡测试中的应用方法。(2)针对智能卡软件测试的特点,结合敏捷测试需要,构建智能卡自动化 测试的测试框架,同时构建智能卡自动化测试的测试用例。本文的研究工作在产业环境下已经投入使用,并取得良好效果。关键词:智能卡敏捷测试自动化测试PythonIAbstractAbstractSmart card technology has been widely used in the area of mobile p hones,GPS,set-top boxes,t

3、elevisions,and many other intelligent communication terminals.The typ es of smart cards have been develop ed from the simp le cards to authentication cards and others which have many various useful functions,such as multimedia smart card,RF-Sim card,one-time p assword cards,and so on.By the time of

4、the functions of the smart cards in various fields has been constantly strengthened but the cost of the software is gradually reduced,the quality of the software is required to make more stringent This makes the smart card software testing to be done not only in functional testing,but also comp lete

5、d in the sup p orting for communication p rotocol testing and comp atibility testing of the electrical load and stress testing for p erformance.The article is aimed at researching the smart card automated testing system.This p ap er uses Python language as the core of automated testing system s deve

6、lop ment language,using the agile p rincip les to organize the test cases and build test framework,it is mainly in the following asp ects:(1)It is analyzing the resp ective characteristics and typ es of the base smart card,and analyzes the imp ortant p oint of the software testing according to its c

7、haracteristics.It is also describing the p rincip les of agile testing and analyzing it how to use in the smart scard testing methods.(2)Based on the characteristics of smart card testing and combining agile testing needs,it is mainly described how to build smart card testing framework for automated

8、 testing,and the test cases of building a smart card automated testing.This research work in the industrial environment has been p ut into use,and achieved good results.Key words:Smart Card;Agile Testing;Automated testing;PythonII目录目录第一章引言.1第一节问题的提出.1第二节国内外研究现状.11.2.1 Python语言使用现状.11.2.2 智能卡测试的现状.2第

9、三节本课 题研究的内容和方法.21.3.1 研究内容及解决的问题.21.3.2 论文研究方法.31.3.3 论文的结构.3第二章智能卡测试与敏捷测试.4第一节智能卡概述.42.1.1 智能卡的定义.42.1.2 智能卡的种类.42.1.3 智能卡的基本架构.52.1.4 智能卡需要支持的国际规范.8第二节敏捷测试的特点和优点.92.2.1 敏捷测试.92.2.2 敏捷测试的特点和优点.10第三节智能卡待测试要点分析.112.3.1 智能卡基本数据交互指令系统测试.122.3.2 智能卡基本文件系统测试.122.3.3智能卡应用压力测试和边界测试.132.3.4智能卡测试的特点.142.3.5

10、敏捷软件测试在智能卡开发中的应用.15III目录第三章自动化测试框架设计与测试用例的设计.17第一节自动化测试框架的设计_ 173.1.1 智能卡自动化测试的基本原理.173.1.2 智能卡自动化测试平台的层级与模块划分.183.1.3 数据交互层设计.193.1.4 公共函数层设计.203.1.5 测试运行管理层设计.22第二节测试用例的设计.243.2.1 智能卡上测试用例设计概述.243.2.2 SIM卡上测试模块.253.2.3 测试环境创建与还原.273.2.4 SIM卡特殊测试流程和测试用例.28第三节测试 流程设计.293.3.1测试运行流程概述.293.3.2测试运行中数据流程

11、概述.30第四章自动化测试系统的实现.31第一节自动化测试框架的实现.314.1.1 数据交互层实现.314.1.2 配置控制模块的实现.334.1.3 用户UI层实现.344.1.4 测试结果记录模块实现.354.1.5 测试用例调用层实现.36第二节测试用例的实现.394.2.1 测试用例实现概述.394.2.2 Unittest 测试类实现.394.2.3 回归测试框架实现.414.2.4 M0MT测试用例实现.42IV目录4.2.5 压力测试用例实现.454.2.6 兼容性测试用例实现.46第五章总结与展望.i.47第一节全文总结.475.1.1 SIM测试用例的分析.475.1.2

12、SIM测试结果的分析.485.1.3 智能卡自动测试平台的小结.485.1.4智能卡自动测试平台的特点.49第二节工作展望.49参考文献.51致谢.53附录A用户UI层关键代码.54附录B测试用例头部和尾部生成关键代码.56附录C测试信息记录关键代码.57附录D LaunchBrowser功能测试关键代码.59附录E压力测试关键代码.61附录F兼容性测试关键代码.62个人简历在学期间发表的学术论文和研究成果.63第一章引言第一章引言第一节问题的提出随着电子技术和通讯技术的发展,这两门技术越发的紧密结合到了一起。这就使得智能卡技术从最开始仅仅在手机中使用,发展到了在GPS,机顶盒,电视机等领域的

13、广泛使用。智能卡的种类也从简单的鉴权卡发展到了带有各种 实用功能的接触式,非接触式,RF-Sim卡等。智能卡的广泛使用使得智能卡在 功能加强,成本降低的同时,智能卡对本身的软件质量提出了更加严格的要求。这就需要针对智能卡系统软件从简单的功能性测试逐渐完善到对智能卡本身对 通信协议的支持度的测试;智能卡对承载电器的兼容性测试及智能卡软件所实 现功能的压力测试等。第二节国内外研究现状1.2.1 Python语言使用现状Python是一种面向对象的解释性语言。相对与其它智能处理简单业务逻辑 的脚本语言,Python具备了更强大的功能。Python具有脚本语言中最丰富和强 大的类库,足以支持绝大多数日

14、常应用。同时由于Python对C、C+等语言支 持良好,所以很多时候用Python语言,把C、Gh等语言编写的程序或动态库 进行封装或集成。Python语言在网络应用方面作为实现业务逻辑层的语言,如有些动态网站 使用p ython快速而轻松的实现复杂的数据库操作和数据处理功能。Python语言 具有强大的科学计算类库,在学术上,Python通常可以较为快速的实现科学计 算的功能。Python有各种网络协议的开发包和类库,因此经常被用于编写服务 器软件、网络爬虫。在很多操作系统里,Python被包含在系统标准组件之中。在Linux下则更是代表性语言之一,Python编写的系统管理脚本与普通的sh

15、ell 脚本相比,在可读性、性能、代码重用度、扩展性几方面都具有较为明显的优 1-第一章引言势,所以Python受到很多系统管理员得青睐。同时p ython作为测试语言被广 泛应用到了软件测试中。1.2.2智能卡测试的现状早期的智能卡功能单一,智能卡的测试主要集中在测试智能卡基本功能的 实现情况。同时受到嵌入式系统本身测试困难的特点和自动化测试工具的缺乏,测试用例也仅仅是对基本通信功能的测试。随着智能卡技术的发展,智能卡上 容纳的功能越来越多,这就使得智能卡测试向系统性发展;智能卡用户众多,这就使得智能卡的测试用例需要达到对智能卡进行全面的覆盖性测试;随着人 力成本的上升和项目周期的要求,智能

16、卡测试需要向自动化测试方向发展。第三节本课题研究的内容和方法1.3.1 研究内容及解决的问题.本论文主要针对通信类接触式智能卡的测试开展,主要从构建智能卡自动 化测试系统及完善的测试用例这几个方面进行描述。1、发挥Python的特点构建敏捷测试框架。Python自带一个名为PyUint的单元测试框架吗本论文采用这个自动测试 框架作为测试用例的组织体,这样可以构建出高内聚、低耦合的自动化测试系 统。2、找出智能卡需要测试的公共部分。通过分析不同类型智能卡之间的共同之处,整合出智能卡测试中的公共部 分加以封装,构建出智能卡测试的基础测试用例。3、完善压力测试,边界测试和兼容性测试。通过分析不同类型

17、智能卡之间的差异,针对不同类型的芯片设计可配置的 压力测试用例。根据使用智能卡的电子设备的不同,设计出覆盖面广的兼容性 测试用例。第一章引言1.3.2 论文研究方法本文采用如下方法进行研究:1、通过广泛学习软件自动测试的原理和软件工程的原理提高论文的学术水 平。了解相关产业的发展动态和企业应用状态提高论文的实践指导意义。2、采用理论研究和案例开发相辅相成的方法,理论研究指导案例开发的研 究策略,结合“敏捷开发”,“测试驱动的开发”等先进的软件工程思想来研 究分析。3、采用先分析,再试验的综合、归纳等研究方法。1.3.3 论文的结构本论文以智能卡自动化测试平台的设计与开发为重点,共分五章。第一章

18、为引言,在这一章中综述本论文研究的问题智能卡自动化测试。同时分析现在国内外对于智能卡自动化测试这个问题的研究现状。最后初步提 出了本论文的研究方向和方法。第二章为敏捷测试与智能卡测试的分析,在这一章中首先阐述什么是智能 卡,智能卡的种类和各自的特点以及智能卡需要支持的国际规范,通过分析这 些,可以总结出智能卡函待测试点的要点。其次阐述敏捷测试的概念并对其特 点进行了分析。最后对敏捷测试方法应用到智能卡测试方面进行了研究。第三章为自动化测试框架设计与测试用例的设计,这一章先阐述智能卡自 动化测试系统设计的核心思想,再阐述智能卡自动化测试系统的结构,最后初 步设计了智能卡测试的测试用例。第四章为智

19、能卡自动化测试系统的实现。在这一章中从自动化测试框架和 测试用例这两个方面阐述了自动化测试系统的实现。第五章为总结与展望,这一章中总结了本论文的成功之处,同时也指出了 论文中的不足,同时针对本论文研究的问题,对未来工作进行了展望。-3-第二章智能卡测试与敏捷测试第二章智能卡测试与敏捷测试第一节智能卡概述2.1.1 智能卡的定义智能卡英文名称为:Smart Card,是对内部含有微处理芯片的嵌入式卡片的 统称。目前国内大多数的银行卡,它们没有芯片而只有磁条,仅仅拥有简单 的数据存储功能但是没有数据处理的能力,这样的卡片我们通常不认为是智能 卡。我们日常中经常接触到的智能卡有手机中的SIM卡,第二

20、代居民身份证,财务软件的加密卡等等。判断一张卡是不是智能卡很简单:物理上看它是一个 塑料制成的卡体以及带微处理器的芯片;功能上看它提供安全的数据存储能力。2.1.2 智能卡的种类随着智能卡在生活中的普及,智能卡的种类也越来越多。.按照功能划分智能卡包含身份识别类智能卡如手机中的SIM卡、支付工具类智能卡 如具有智能卡芯片的银行卡、力口/解密类智能卡如保证信息安全的加密卡和 信息存储类智能卡如大型卖场用的客户/商品信息卡。按照数据传输方式划分智能卡包含需要10线路接触的接触式智能卡、使用RF、红外线等非 10线路接触的非接触式智能卡和同时具备了接触功能和非接触功能的混 合式智能卡叫按照硬件芯片划

21、分智能卡包括仅含有EEPR0M的信息储存卡;具备EEPR0M和加密解密电 路的逻辑加密/解密卡;具备微处理器单元的CPU卡和具备CPU、存储模块和 10设备的超级智能卡。现在日常生活中用到的大部分是CPU卡,如手机中的SIM卡等。本论文第二章智能卡测试与敏捷测试中主要研究的是CPU卡。2.1.3 智能卡的基本架构2.1.3.1 硬件环境智能卡的硬件环境主要包括CPU,存储模块和10接口模块,存储模块中 又包括ROM,RAM和EEPROM或者FLASH这三个部分,如下图2.1所示:智能卡存储模块图2.1智能卡硬件环境架构图CPU是智能卡的核心,没有CPU就根本谈不上智能。目前卡片上常用的 CPU

22、是8位或16位的,例如8051。围绕CPU的还有3个存储模块:ROM,RAM和EEPROM或者FLASH。ROM装有芯片的操作系统(Chip Op erating System即COS),是在芯片制 造时就预置进去的,在芯片的整个生命周期内都不可更改。RAM用来存储处理器工作时的临时数据。当芯片断电时,存储在RAM 里的所有数据都会丢失。由于卡片上的RAM区通常都不大,所以在编程时要 慎重考虑如何有效地使用它。EEPROM和FLASH是智能卡主要的存储元件,它们都用来存放一些应用 程序或数据,另外由于FLASH的空间很大,通常我们也用它来存放操作系统,这个时候ROM上就只需要放一个非常小的引导

23、系统以帮助我们将操作系统装 载到FLASH区。2.1.3.2软件环境智能卡根据种类不同和厂商不同,卡上的软件环境也不相同,但是智能卡 都拥有芯片操作系统(Chip Op erating System)和卡片应用这两大软件部分。芯片操作系统的主要功能包括响应读卡设备发送的复位信号;从外部读卡 第二章智能卡测试与敏捷测试设备接收命令和数据;分析并检查接收到的命令和数据是否符合规范定义;判 断所收到的命令是否满足安全性要求;命令执行的结果(例如成功或者失败,以及失败原因);需要的时候返回命令执行后产生的数据等功能叫根据智能卡使用的领域不同卡片的应用也不相同,但是卡片应用都包含数 据存储及数据访问功能

24、,安全策略及加密算法,卡上应用和数据传输等功能皿。智能卡软件功能架构如图2.2所示:智能卡软件架构卡上应用与业务数据存储和数 据管理数字安全策略数据输入输出图2.2智能卡软件环境架构图首先是卡上应用与业务,卡上应用与卡片支持的业务是智能卡功能的体现,也是智能卡价值的体现。其次是数据存储与数据管理,需要定义一套命令来创建和访问卡片上存储 的这些数据。再次是安全策略。我们说智能卡是用来保障信息安全的,那么完备的安全 策略是每一个卡片应用都必须提供的。这些安全策略包括数据的存储安全,访 问安全等。最后是与外界的交互。与外界的交互包括指令和数据通过I/O进行传输的 过程。2.1.3.3 存储环境智能卡

25、提供给用户的是安全的数据存储和数据处理功能,所以它必须要解 决的问题之一就是数据在智能卡内如何存放,以什么样的结构存放。按照ISO 78164的规定,智能卡存储区以文件方式进行组织,类似于个人 电脑中文件的组织方式。智能卡上的根目录称为MF(MasterFile,主文件)。一张智能卡上有且只有一个MF。智能卡执行复位操作后主文件被默认选中。主文件MF包含了所有其它目录和文件。除了 MF之外卡片上还有两类文件,我们称为DF(Dedicated File,目录文 第二章智能卡测试与敏捷测试件)和EF(Elementary File,基本文件)。DF按字面翻译是专用文件,但通常 我们也称之为目录文件

26、,它是可以把其它文件(包括DFs或者EFs)组织到一 起的一个目录原则上对目录文件的层数没有限制,但是由于智能卡存储器 容量有限,在实际应用中主文件下多于2层的目录文件就已经比较少见了 智能卡的文件结构如图2.3所示:图2.3智能卡文件结构图根据习惯,卡片上一个应用所需要的所有文件都组织到MF下的一个DF 中,我们也称这样的DF为Ap p lication DF。对于多应用的卡片,卡片MF下可 以包含多个Ap p lication DF。应用所需要的有用数据都存放在基本文件中,也就是EF里。2.1.3.4 基本指令卡片和外部终端之间的交互命令和数据是通过APDU(Ap p lication P

27、rotocol Data Unit)来实现的。APDU按照传递的方向分为命令和响应,命令是从终端 发到卡片的,而响应则是由卡片返回到终端的数据。命令数据是从终端发往卡 片的数据,它由4个字节的数据头和不固定长度的数据体构成。数据头包含CLA(即 Class),INS(即 Instruction),Pl 和 P2。CLA 和 INS 组合在一起标识了 命令类型,P1和P2是命令参数。P3由INS的编码决定,或是表示命令中送给 SIM卡的数据长度,或是表示等待从SIM卡响应数据的最大长度。APDU命令 结构如图2.4所示回:图2.4 APDU命令结构图CLAINSPlP2P3数据第二章智能卡测试与

28、敏捷测试响应数据是卡片收到命令数据,并分析执行之后给终端反馈的执行结果。它也是由两部分数据构成。前一部分是返回的数据,例如,如果上一条指令是 读文件内容,这里返回的就是文件的实际内容。并不是每一条响应数据都一定 包含有数据部分皿,而后半部分的Status Word(状态字)则是每一条响应数 据都必须包含的,共2字节长。APDU响应结构如图2.5所示例:数据SW1SW2图2.5APDU响应结构图2.1.4智能卡需要支持的国际规范智能卡必须遵守的国际范是ISO/ICE 7816系列,这个系列是由ISO(the International Organization for Standardizati

29、on)国际标准化组织和 IEC(the International Electro technical Commission)国际电工技术委员会这两个国际机 构联合定制的,主要包括如下几个主要的规范皿、如表2.1所示:表2.1智能卡支持基本国际规范表规范名称主要内容ISO/IEC 7816-1 Physical characteristics定义了智能卡的基本物理特性ISO/IEC 7816-2 Dimensions and location of the contacts定义了智能卡的卡片尺寸和触点的物 理位置ISO/IEC 7816-3 Electronic signals and tra

30、nsmission p rotocols定义了智能卡传输时的电子信号和传 输协议ISO/IEC 7816-4 Interindustry commands for interchange定义了智能卡传输时所使用的基本指 令ISO/IEC 7816-5 Numbering system and registration p rocedure for ap p lication规定了智能卡处理基本应用的方式ISO/IEC 7816-6 Interindustry data elements定义了智能卡中基本指令的结构ISO/IEC 7816-7 Interindustry commands for

31、 structured card query 1 anguage规定了组织和构建卡片内部文件结构 的指令ISO/IEC 7816-8 Security related interindustry commands定义了智能卡中和安全性相关的指令第二章智能卡测试与敏捷测试表2.1智能卡支持基本国际规范表(续表)规范名称主要内容ISO/IEC 7816-9 Additional interindustry commands and security规定了智能卡中附加指令和安全特性ISO/IEC 7816-10 Electronic signals and answer to reset for s

32、ynchronous cards定义了智能卡重启和信息同步时的电 气指令这十部规范构建起了智能卡从物理,电气,内部文件结构到交互指令等方 方面面的行业规范。同时这几部规范与不同行业技术规范相结合又衍生出了智 能卡在不同行业内的规范,如在通讯领域的GSM11.11,GSM1L14,GSM0348,GSM0340等。在智能卡软件测试的时候,ISO/IEC 7816-1到ISO/IEC 7816-3 这几个规范所规定的是智能卡的物理结构、输入输出管脚和传输时的高低电平 设计,故而在智能卡软件测试的时候无法涉及到;ISO/IEC 7816-4到ISO/IEC 7816-8这几个规范是智能卡测试的重点,

33、其中涵盖了基本指令,基本文件系统,基本数据安全处理和算法等;ISO/IEC 7816-9和ISO/IEC 7816-10这两个规范,由于各种智能卡支持的卡上业务不同,而测试的侧重点也不尽相同。第二节敏捷测试的特点和优点2.2.1敏捷测试所谓敏捷测试就是指在敏捷软件开发的过程中,依据敏捷软件开发思想所 进行的软件测试依据测试周期的先后顺序,敏捷测试主要分为两大部分,一是由程序开发人员完成的程序单元测试,二是由软件测试人员进行的验收测 试。依据测试任务来划分,敏捷测试包括对软件代码的测试和软件测试的过程 和模式,所以敏捷测试不仅仅是对软件代码质量的检验,还对整个软件开发过 程进行了整体上的控制,。

34、敏捷测试的基本过程是由单元测试,迭代测试,发布版本,用户反馈和修 改测试用例这五个过程循环组成的同。所以说敏捷测试的测试用例是不断修改 的,并且测试用例可以迭代使用皿。在用户反馈之后,需要测试人员及时根据 用户的反馈及时的做出相应的测试脚本。在多个版本的迭代之后,能确保项目第二章智能卡测试与敏捷测试按时,高质量的交付给客户。敏捷测试周期示例如图2.6所示:修改后的功能A修改后的功能B迭代版本3迭代版本1 迭代版本2修改后的功能A图2.6敏捷测试周期示例图2.2.2敏捷测试的特点和优点在测试周期上敏捷测试具备了高度迭代和周期性测试的特点,而迅速反应 客户的反馈这就需要敏捷测试人员对项目的需求,项

35、目开发计划,项目的设计 等环节都非常的熟悉,这就需要敏捷测试人员参加项目的所有会议并参与部分 决策。相较于传统的软件测试,敏捷测试具备如下几个特点:1、敏捷软件测试需要测试人员具备更强的沟通与协调能力同。传统的软件测试在程序发布了阶段性的版本之后才会开始,测试结果再反 馈给开发人员。敏捷测试过程中,开发人员提交的测试版本非常多,每个测试 版本之间的间隔较小,开发人员与测试人员的沟通与交流会更多的。在程序阶 段性提交给客户之后,需要敏捷软件测试人员及时与客户沟通,了解客户对新 版本软件的意见和改进需求,这就要求敏捷软件测试人员应该具备同客户沟通 的能力。所以敏捷测试人员需要具备更强的沟通与协调能

36、力。2、敏捷软件测试需要测试人员实时调整测试用例的规模和精细程度】。建议敏捷软件测试需要及时交付测试报告,并且存在多次迭代测试的环节,这就需要测试人员掌握每次迭代的测试用例规模和测试的精细程度。测试用例 既要避免笨重的覆盖测试又要满足程序质量控制的需求,这就需要敏捷测试人 员在每个“单元测试”级别的测试中精简测试用例,迅速发现问题,在程序版 本迭代的测试中,尽量覆盖测试范围。测试用例的规模和测试精细程度需要测-10-第二章智能卡测试与敏捷测试试人员依据个人经验来判断和控制网。3、敏捷软件测试需要多元化的测试方法和完备的自动化测试平台。单单采用一种测试方法必然会是测试过程中存在疏漏之处。现在的敏

37、捷测 试经常是白盒测试,黑盒测试和灰盒测试交替使用闻。这样可以保证测试用例 的高覆盖性。鉴于敏捷测试迭代次数多的特点,构建完善的自动测试平台尤为 重要。有了自动测试平台就可以简单的重现运行之前的测试用例,回归测试的 质量自然就提高了。4、敏捷软件测试需要的测试人员更为复杂。敏捷测试需要的测试人员包括进行Unit Test的程序开发人员,需要及时和 客户沟通并获得反馈的售前工程师,需要处理程序安装调试的售后工程师,甚 至一部分情况下,客户也会加入到敏捷测试的行列中去。这样参与测试的人员 囊括了软件开发人员,软件测试人员,项目经理,售后工程师,售前工程师,甚至客户也会被囊括进来。敏捷测试人员如图2

38、.7所示。程序开发人员程序窝试人员客户图2.7敏捷测试人员示例图第三节智能卡待测试要点分析结合智能卡本身的特点和其需要支持的规范,智能卡的软件测试主要涵盖 了智能卡上基本指令系统的测试和智能卡上基本文件的系统测试。智能卡的业 务功能和应用功能是支持智能卡价值的体现,客户最关心的就是卡上应用的实 现情况,所以智能卡上应用的测试是智能卡测试的重点。鉴于智能卡使用客户 群体数量众多的特点,智能卡应用方面的测试除了基本功能的测试之外,压力 测试和边界测试也必不可少。基于智能卡项目周期短,对项目质量要求高等特 点,需要在智能卡测试中具备敏捷开发中的单元测试功能。第二章智能卡测试与敏捷测试2.3.1 智能

39、卡基本数据交互指令系统测试智能卡与外界通过I/O 口进行数据交换,智能卡与使用智能卡的外部设备 之间的基本数据交互指令决定了智能卡的功能。故而,智能卡基本数据交互指 令系统测试是智能卡测试的基础,也是验证智能卡功能与业务实现情况的基础。智能卡基本交互指令的测试需要首先涵盖所有智能卡都必须支持的基本交互指 令;然后根据智能卡的类型和应用领域不同,智能卡测试的指令还需包含各自 领域内的交互指令,如在通信领域中GSM11.14中规定的交互指令“p rivate commend;最后测试那些不暴露给用户和使用设备的私有指令,以手机中 的SIM卡为例,如图2.8所示:卜I殊应用,h!|产互指令测试1.:

40、SIM卡交互指令测试,基本交互指令测试 图2.8智能卡数据交互指令测试层次图基本交互指令是智能卡交互的基础,这些指令包括文件操作相关的文件选 择,文件读取等交互指令;安全相关的校验PIN值,鉴权等交互指令。不同领 域内的智能卡有不同的交互指令,如通信领域的SIM卡中包含电信业务的 Private Commend,如 Terminal Resp onse,status 等交互指令。在实现交互指令的测试用例的时候,不仅仅要对交互指令的关键字和参数 逐一进行检查,同时还要设计错误检测的测试用例,向能卡中发送错误的交互 指令,以此来测试智能卡对与错误指令的容错性。2.3.2 智能卡基本文件系统测试智能

41、卡文件系统的测试也是按照先测试所有智能卡必须遵守的公共部分文 件,再逐步测试行业私有文件及文件组织结构的顺序进行的。如先测试3F00 文件夹下规定的PINPUK文件:再测试GSM规定的7F20文件夹及其下的文件,或者测试CDMA规定的7F25下的文件夹及文件;最后测试卡上应用需要用到 的私有文件夹和文件。第二章智能卡测试与敏捷测试在实现智能卡文件系统的测试用例的时候,对于标准文件仅仅通过选择文 件,查询文件内容的方式进行测试即可。但是由于智能卡的业务通常将程序中 的全局变量和标志位存储到卡上的文件系统中,所以应用相关的测试通常是先 往智能卡中创建文件再写入文件内容,再整体测试卡上应用的实现情况

42、。智 能卡文件测试如图2.9所示:图2.9智能卡数据交互指令测试层次图2.3.3智能卡应用压力测试和边界测试目前智能卡上的功能繁多,但是智能卡经常会直接面对最终客户,在测试 时要考虑到软件输入输出的边界情况和软件运行中的压力测试。比如在需要用 户输入内容的时候,对用户输入的上限和下限分别进行输入检查,并对用户输 入的边界重点检查。在检测用户输入的时候采用软件测试中的“五点法”,这“五点”分别是:小于阈值下限的一个测试点,等于阈值下限的一个测试点,阈值下限和上限内部的一个点,等于阈值上限的一个测试点和大于阈值上限的 一个测试点,如图2.10所示:输入范围域图2.10五点法测试示例图-13-第二章

43、智能卡测试与敏捷测试通过这五点来检测智能卡软件对于边界情况的处理。如需要用户输入手机 号码,会对用户输入的长度和内容进行检查,当用户输入的字符不仅是数字,并包含英文字母的时候,需要提示给用户“请输入数字”,当用户输入的字符 长度仅仅为10位字符的时候,会提示用户“请输入11位数字的电话号码”。在智能卡实际的使用中,用户会连续使用智能卡很长时间,如手机卡,很 多用户长达几个月才关机一次,如电视机顶盒内的智能卡,通常的情况下几年 才会重启一次。长时间连续使用智能卡,会使得智能卡中的堆栈段逐渐用满。所以在智能卡设计的时候会有测试堆栈段的压力测试用例。通常智能卡软件 压力测试采用先将智能卡上现有文件的

44、内容置满,再反复调用或使用卡上最复 杂的功能,以此来检测智能卡软件的抗压力性。2.3.4 智能卡测试的特点智能卡是一种嵌入式电子设备,其具备了嵌入式设备测试的所有特点。纵 观智能卡软件测试,主要具有以下几个特点。1、智能卡测试对设备的依赖度高。由于智能卡不具备输入、输出设备,其 黑盒测试必须借助使用智能卡的电子设备来测试,这就给自动化测试带来了不 便,同时由于使用智能卡的电子设备的不同,又给智能卡带来了兼容性问题。2、相比高级编程语言,智能卡软件开发语言不具备Unit Test框架等敏捷 测试需要的基础。作为嵌入式设备的智能卡,其绝大多数是由C语言开发,或 者底层由C语言开发,而C语言的开发环

45、境并不像Java,C#等高级语言具有 Unit Test类或者Unit Test框架。所以,仅仅依靠开发语言实现逐级迭代开发,迭代测试的敏捷开发过程几乎不可能。智能卡白盒测试比其黑盒测试更加困难。3、软件测试和卡上文件内容测试密不可分。智能卡上程序的运行需要“固 化”在芯片上的COS程序作为基础,存储在Flash或EEPROM上的“应用”和“文件系统”这三者整体工作。由于COS上的程序,“应用”和“文件系统”作为一个整体参与测试,当测试出现了问题,需要进一步分析来定位错误发生 在哪一个环节,这样简单的黑盒测试往往不能准确定位问题,这就给智能卡测 试增加了难度。-14-第二章智能卡测试与敏捷测试

46、2.3.5 敏捷软件测试在智能卡开发中的应用由于智能卡与其使用设备之间的数据交互全部由APDU执行,所以测试通 过向智能卡中发送APDU,检测APDU的返回数据和状态字来判断测试是否通 过。本次研究采用Python作为开发自动化测试系统的软件,使用其中的PyUnit 框架作为整合测试用例的结构。在测试用例的设计和组织上采用敏捷开发、敏 捷测试的思想,做到测试用例具备高内聚、低耦合的特点。在设计测试框架时 既满足在智能卡软件日常开发中Unit Test的功能,同时还要满足程序开发之后 的回归测试,压力测试和兼容性测试等环节的需要阂。敏捷软件测试在智能卡开发中的应用可以从以下几个方面出发:1.在智

47、能卡软件开发过程中,按照从基础到复杂应用的迭代过程分成小的 开发模块,并为每一个小模块提供能够快速运行Unit Test测试的测试用例。2.构建自动化测试平台。敏捷测试的基础就是自动化测试,有了自动化测 试,在智能卡软件的开发过程中可以方便的运行Unit Test,在智能卡软件开发 结束进入项目收尾的时候可以迅速的执行回归测试。3.先针对单一功能构建“用户故事”并编写测试用例侬将这些简单的测 试用例加以整合组成基础测试框架。4.对每一版发布的程序进行小版本的迭代测试囱,在每个迭代测试中进行 压力测试,这样可以尽早发现程序中的指针丢失,内存越界等隐藏极深的问题;同时在迭代测试中检测不同的智能卡上

48、的应用是否存在内存覆盖的冲突。这 就需要在卡片功能开发的同时,进行该功能的Unit Test,功能加载到智能卡上 之前保证该功能的业务逻辑调试正确。功能加载到智能卡上之后先进行对堆栈 段的压力测试,最后再通过自动测试框架将原先所有的测试重新运行,完成回 归测试阶段,整个测试流程如图2.11所示:图2.11智能卡的Unittest与回归测试-15-第二章智能卡测试与敏捷测试通过这种Unit Test,压力测试,再到回归测试的方法可以基本上保证智能 卡软件测试的覆盖性和测试点的全面性并能尽早发现智能卡软件所存在的问 题。-16-第三章自动化测试框架设计与测试用例设计第三章自动化测试框架设计与测试用

49、例的设计第一节自动化测试框架的设计本小节结合智能卡测试的特点与需求,进行智能卡自动化测试系统框架的 设计。3.1.1 智能卡自动化测试的基本原理智能卡与其使用设备之间的交互是通过APDU来实现的,这样智能卡自动 化测试的基本原理就是向智能卡发送APDU,通过分析智能卡返回的数据(Return Data)和状态字(Status Word)来判断智能卡软件是否满足测试用例 的要求。智能卡基本测试原理如图3.1所示:智能卡APDU.自动化测试系统别试用例返回数据瞅公裳图3.1智能卡基本测试原理图当自动化测试系统收到卡片返回的数据和状态字,通过Python的断言(assert)函数来判断卡片返回的状态

50、是否正确。断言使用实例如下:ifQuaWerCunwtAssertassafEqualtQualifis;AsserHamfienqualifia;%5et iqxit Qualifer match cmr ifTot JQintntAssertsserqual(Iact,ftextstring,wGet input Textstring match ifMinMax:QmwtAs9atassertEqual(MinMax,fininmax,Get iqxit resp onse knft match eno*)ifDubTextCurrentAsserLassenEquaXI11 fDe&u

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 环境建筑 > 智能化/通信

移动网页_全站_页脚广告1

关于我们      联系我们       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号  |  icp.png浙ICP备2021020529号-1 浙B2-2024(办理中)  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服