基于Python的智能卡自动测试平台---优秀毕业论文 参考文献 可复制黏贴.pdf_第1页
基于Python的智能卡自动测试平台---优秀毕业论文 参考文献 可复制黏贴.pdf_第2页
基于Python的智能卡自动测试平台---优秀毕业论文 参考文献 可复制黏贴.pdf_第3页
基于Python的智能卡自动测试平台---优秀毕业论文 参考文献 可复制黏贴.pdf_第4页
基于Python的智能卡自动测试平台---优秀毕业论文 参考文献 可复制黏贴.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

基于Python的智能卡自动测试平台---优秀毕业论文 参考文献 可复制黏贴.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中图分类号 u d c 学校代码 1 0 0 5 5 密级 公开 高盐大法 硕士专业学位论文 基于p y t h o n 的智能卡自动测试平台 p y t h o n b a s e dp l a t f o r mf o ra u t o m a t e dt e s t i n go f s m a r tc a r d 南开大学研究生院 二 一一年五月 南开大学学位论文使用授权书 根据 南开大学关于研究生学位论文收藏和利用管理办法 我校的博士 硕士学位获 得者均须向南开大学提交本人的学位论文纸质本及相应电子版 本人完全了解南开大学有关研究生学位论文收藏和利用的管理规定 南开大学拥有在 著作权法 规定范围内的学位论文使用权 即 1 学位获得者必须按规定提交学位论文 包 括纸质印刷本及电子版 学校可以采用影印 缩印或其他复制手段保存研究生学位论文 并编入 南开大学博硕士学位论文全文数据库 2 为教学和科研目的 学校可以将公开 的学位论文作为资料在图书馆等场所提供校内师生阅读 在校园网上提供论文目录检索 文 摘以及论文全文浏览 下载等免费信息服务 3 根据教育部有关规定 南开大学向教育部 指定单位提交公开的学位论文 4 学位论文作者授权学校向中国科技信息研究所和中国学 术期刊 光盘 电子出版社提交规定范围的学位论文及其电子版并收入相应学位论文数据库 通过其相关网站对外进行信息服务 同时本人保留在其他媒体发表论文的权利 非公开学位论文 保密期限内不向外提交和提供服务 解密后提交和服务同公开论文 论文电子版提交至校图书馆网站 h t t p 2 0 2 1 1 3 2 0 1 6 1 8 0 0 1 i n d c x h u n 本人承诺 本人的学位论文是在南开大学学习期间创作完成的作品 并已通过论文答辩 提交的学位论文电子版与纸质本论文的内容一致 如因不同造成不良后果由本人自负 本人同意遵守上述规定 本授权书签署一式两份 由研究生院和图书馆留存 作者暨授权人签字 堂连城 2 0 1 1 年5 月2 0 日 南开大学研究生学位论文作者信息 论文题目 基于l m h o n 的智能卡自动测试平台 姓名常连城学号2 2 2 0 0 9 0 5 9 4答辩日期2 0 1 1 年5 月2 5 日 论文类别 博士口学历硕士口硕士专业学位团高校教师口同等学力硕士口 院 系 所信息技术科学院专业计算机技术 联系电话1 3 8 2 0 1 6 0 7 1 6 e m a i l 鼢v a g l c 2 6 16 3 g o m 通信地址 邮编 天津市南开区玉泉路春香里9 号楼4 门2 0 3 邮编 3 0 0 0 1 9 3 备注 是否批准为非公开论文否 注 本授权书适用我校授予的所有博士 硕士的学位论文 由作者填写 一式两份 签字后交校图书 馆 非公开学位论文须附 南开大学研究生申请非公开学位论文审批表 南开大学学位论文原创性声明 本人郑重声明 所呈交的学位论文 是本人在导师指导下进行研究工作所 取得的研究成果 除文中已经注明引用的内容外 本学位论文的研究成果不包 含任何他人创作的 已公开发表或者没有公开发表的作品的内容 对本论文所 涉及的研究工作做出贡献的其他个人和集体 均已在文中以明确方式标明 本 学位论文原创性声明的法律责任由本人承担 学位论文作者签名 堂整城 2 0 1 1年5 月2 0 日 非公开学位论文标注说明 本页表中填写内容须打印 根据南开大学有关规定 非公开学位论文须经指导教师同意 作者本人申 请和相关部门批准方能标注 未经批准的均为公开学位论文 公开学位论文本 说明为空白 论文题目 基于p y t h o n 的智能卡自动测试平台 申请密级口限制 2 年 口秘密 1 0 年 口机密 2 0 年 保密期限2 0 年月 日至2 0年月日 审批表编号批准日期 2 0年月日 南开大学学位评定委员会办公室盖章 有效 注 限制 2 年 可少于2 年 秘密 1 0 年 可少于1 0 年 机密 2 0 年 可少于2 0 年 摘要 摘要 智能卡技术在手机 g p s 机顶盒 电视机以及诸多智能通信终端上得到 了广泛的应用 智能卡的种类也从简单的电信鉴权卡发展到了带有各种实用功 能的新型智能卡 如多媒体智能卡 r f s i m 卡 一次性密码卡等 应用智能卡 的各领域在要求智能卡功能不断加强 成本逐步降低的同时 对智能卡本身的 软件质量提出了更加严格的要求 这就使得智能卡软件测试不仅需要完成功能 性测试 还必须完成针对通信协议支持度的测试 针对承载电器的兼容性测试 以及针对智能卡性能的压力测试等 本文研究的目标是智能卡自动化测试系统 本论文使用p y t h o n 语言作为自 动化测试系统的核心开发语言 采用敏捷测试原理组织测试用例和构建测试框 架 主要开展以下几个方面工作 1 分析智能卡的种类及各自特点 并根据其特点分析了其软件测试的重 点 阐述敏捷测试的原理 并分析其在智能卡测试中的应用方法 2 针对智能卡软件测试的特点 结合敏捷测试需要 构建智能卡自动化 测试的测试框架 同时构建智能卡自动化测试的测试用例 本文的研究工作在产业环境下已经投入使用 并取得良好效果 关键词 智能卡敏捷测试自动化测试p y t h o n a b s t r a c t a b s t r a c t s m a r tc a r dt e c h n o l o g yh a sb e e nw i d e l yu s e di nt h ea r e ao fm o b i l ep h o n e s g p s s e t t o pb o x e s t e l e v i s i o n s a n dm a n yo t h e ri n t e l l i g e n tc o m m u n i c a t i o nt e r m i n a l s t h e t y p e so fs m a r tc a r d sh a v eb e e nd e v e l o p e df r o mt h es i m p l ec a r d st oa u t h e n t i c a t i o n c a r d sa n do t h e r sw h i c hh a v em a n yv a r i o u su s e f u lf u n c t i o n s s u c ha sm u l t i m e d i a s m a r tc a r d r f s i mc a r d o n e t i m ep a s s w o r dc a r d s a n ds oo n b yt h et i m eo ft h e f u n c t i o i i so ft h es m a r tc a r d si nv a r i o u sf i c l d sh a sb e e nc o n s t a n t l ys 由陷n 霉啦e n e db u t t h ec o s to ft h es o f t w a r ei sg r a d u a l l yr e d u c e d t h eq u a l i t yo ft h es o f t w a r ei sr e q u i r e d t om a k em o r es t r i n g e n t t h i sm a k e st h es m a r tc a r ds o f t w a r et e s t i n gt ob ed o n en o t o n l yi nf u n c t i o n a lt e s t i n gb u ta l s oc o m p l e t e di nt h es u p p o r t i n gf o rc o m m u n i c a t i o n p r o t o c o lt e s t i n ga n dc o m p a t i b i l i t yt e s t i n go ft h ee l e c t r i c a ll o a da n ds t r e s st e s t i n gf o r p e r f o r m a n c e t h ea r t i c l ei sa i m e da tr e s e a r c h i n gt h es m a r tc a r da u t o m a t e dt e s t i n gs y s t e m t h i s p a p e r u s e sp y t h o nl a n g u a g ea st h ec o r eo fa u t o m a t e d t e s t i n gs y s t e m sd e v e l o p m e n t l a n g u a g e u s i n gt h ea g i l ep r i n c i p l e st oo r g a n i z et h et e s t o a s e sa n db u i l dt e s t f r a m e w o r k i ti sm a i n l yi nt h ef o l l o w i n ga s p e c t s 1 i ti sa n a l y z i n gt h er e s p e c t i v ec h a r a c t e r i s t i c sa n dt y p e so ft h eb a s es m a r tc a r d a n d a n a l y z e s t h e i m p o r t a n tp o i n to ft h es o t h a r et e s t i n ga c c o r d i n gt o i t s c h a r a c t e r i s t i c s i ti sa l s od e s c r i b i n gt h ep r i n c i p l e so fa g i l et e s t i n ga n da n a l y z i n gi t h o wt ou s ei nt h es m a r ts c a r dt e s t i n gm e t h o d s 2 b a s e do nt h ec h a r a c t e r i s t i c so fs m a r tc a r dt e s t i n ga n dc o m b i n i n ga g i l et e s t i n g n e e d s i ti sm a i n l yd e s c r i b e dh o wt ob u i l ds m a r tc a r dt e s t i n gf r a m e w o r kf o r a u t o m a t e dt e s t i n g a n dt h et e s tc a s e so f b u i l d i n gas m a r tc a r da u t o m a t e d t e s t i n g t h i sr e s e a r c hw o r ki nt h ei n d u s t r i a le n v i r o n m e n th a sb e e np u ti n t ou s e a n d a c h i e v e dg o o dr e s u l t s k e yw o r d s s m a r tc a r d a g i l et e s t i n g a u t o m a t e dt e s t i n g p y t h o n i i 目录 目录 第一章引言 l 第一节问题的提出 1 第二节国内外研究现状 1 1 2 1p y t h o n 语言使用现状 1 1 2 2 智能卡测试的现状 2 第三节本课题研究的内容和方法 2 1 3 1 研究内容及解决的问题 2 1 3 2 论文研究方法 3 1 3 3 论文的结构 3 第二章智能卡测试与敏捷测试 4 第一节智能卡概述 4 2 1 1 智能卡的定义 4 2 1 2 智能卡的种类 4 2 1 3 智能卡的基本架构 5 2 1 4 智能卡需要支持的国际规范 8 第二节敏捷测试的特点和优点 9 2 2 1 敏捷测试 9 2 2 2 敏捷测试的特点和优点 1 0 第三节智能卡待测试要点分析 11 2 3 1 智能卡基本数据交互指令系统测试 1 2 2 3 2 智能卡基本文件系统测试 1 2 2 3 3 智能卡应用压力测试和边界测试 1 3 2 3 4 智能卡测试的特点 1 4 2 3 5 敏捷软件测试在智能卡开发中的应用 1 5 i i i 目录 第三章自动化测试框架设计与测试用例的设计 1 7 第一节自动化测试框架的设计 1 7 3 1 1 智能卡自动化测试的基本原理 1 7 3 1 2 智能卡自动化测试平台的层级与模块划分 1 8 3 1 3 数据交互层设计 1 9 3 1 4 公共函数层设计 2 0 3 1 5 测试运行管理层设计 2 2 第二节测试用例的设计 2 4 3 2 1 智能卡上测试用例设计概述 2 4 3 2 2s i 卡上测试模块 2 5 3 2 3 测试环境创建与还原 2 7 3 2 4s l 卡特殊测试流程和测试用例 j 2 8 第三节测试流程设计 2 9 3 3 1 测试运行流程概述 2 9 3 3 2 测试运行中数据流程概述 3 0 第四章自动化测试系统的实现 3 l 第一节自动化测试框架的实现 31 4 1 1 数据交互层实现 3 1 4 1 2 配置控制模块的实现 3 3 4 1 3 用户u i 层实现 3 4 4 1 4 测试结果记录模块实现 3 5 4 1 5 测试用例调用层实现 3 6 第二节测试用例的实现 3 9 4 2 1 测试用例实现概述 3 9 4 2 2u n i t t e s t 测试类实现 3 9 4 2 3 回归测试框架实现 4 1 4 2 4m o m t 测试用例实现 4 2 i v 目录 4 2 5 压力测试用例买现 4 5 4 2 6 兼容性测试用例实现 4 6 第五章总结与展望 4 7 第一节全文总结 4 7 5 1 1s i m 测试用例的分析 4 7 5 1 2s i 测试结果的分析 4 8 5 1 3 智能卡自动测试平台的小结 4 8 5 1 4 智能卡自动测试平台的特点 4 9 第二节工作展望 4 9 参考文献 51 致谢 5 3 附录a 用户u i 层关键代码 5 4 附录b 测试用例头部和尾部生成关键代码 5 6 附录c 测试信息记录关键代码 5 7 附录dl a u n c h b r o w s e r 功能测试关键代码 5 9 附录e 压力测试关键代码 6 1 附录f 兼容性测试关键代码 6 2 个人简历在学期间发表的学术论文和研究成果 6 3 v 第一章引言 第一章引言 第一节问题的提出 随着电子技术和通讯技术的发展 这两门技术越发的紧密结合到了一起 这就使得智能卡技术从最开始仅仅在手机中使用 发展到了在g p s 机顶盒 电视机等领域的广泛使用 智能卡的种类也从简单的鉴权卡发展到了带有各种 实用功能的接触式 非接触式 r f s i m 卡等 智能卡的广泛使用使得智能卡在 功能加强 成本降低的同时 智能卡对本身的软件质量提出了更加严格的要求 这就需要针对智能卡系统软件从简单的功能性测试逐渐完善到对智能卡本身对 通信协议的支持度的测试 智能卡对承载电器的兼容性测试及智能卡软件所实 现功能的压力测试等 第二节国内外研究现状 1 2 1p y t h o n 语言使用现状 p y t h o n 是一种面向对象的解释性语言 相对与其它智能处理简单业务逻辑 的脚本语言 p y t h o n 具备了更强大的功能 p y t h o n 具有脚本语言中最丰富和强 大的类库 足以支持绝大多数日常应用 同时由于p y t h o n 对c c 等语言支 持良好 所以很多时候用p y t h o n 语言 把c c 等语言编写的程序或动态库 进行封装或集成 p y t h o n 语言在网络应用方面作为实现业务逻辑层的语言 如有些动态网站 使用p y t h o n 快速而轻松的实现复杂的数据库操作和数据处理功能 p y t h o n 语言 具有强大的科学计算类库 在学术上 p y t h o n 通常可以较为快速的实现科学计 算的功能 p y t h o n 有各种网络协议的开发包和类库 因此经常被用于编写服务 器软件 网络爬虫他3 在很多操作系统里 p y t h o n 被包含在系统标准组件之中 在l i n u x 下则更是代表性语言之一 p y t h o n 编写的系统管理脚本与普通的s h e l l 脚本相比 在可读性 性能 代码重用度 扩展性几方面都具有较为明显的优 第一章引言 势 所以p y t h o n 口3 受到很多系统管理员得青睐 同时p y t h o n 作为测试语言被广 泛应用到了软件测试中 1 2 2 智能卡测试的现状 早期的智能卡功能单一 智能卡的测试主要集中在测试智能卡基本功能的 实现情况 同时受到嵌入式系统本身测试困难的特点和自动化测试工具的缺乏 测试用例也仅仅是对基本通信功能的测试 随着智能卡技术的发展 智能卡上 容纳的功能越来越多 这就使得智能卡测试向系统性发展 智能卡用户众多 这就使得智能卡的测试用例需要达到对智能卡进行全面的覆盖性测试 随着人 力成本的上升和项目周期的要求 智能卡测试需要向自动化测试方向发展n 第三节本课题研究的内容和方法 1 3 1 研究内容及解决的问题 本论文主要针对通信类接触式智能卡的测试开展 主要从构建智能卡自动 化测试系统及完善的测试用例这几个方面进行描述 l 发挥p y t h o n 的特点构建敏捷测试框架 p y t h o n 自带一个名为p y u i n t 的单元测试框架晦1 本论文采用这个自动测试 框架作为测试用例的组织体 这样可以构建出高内聚 低耦合的自动化测试系 统 2 找出智能卡需要测试的公共部分 通过分析不同类型智能卡之间的共同之处 整合出智能卡测试中的公共部 分加以封装 构建出智能卡测试的基础测试用例 3 完善压力测试 边界测试和兼容性测试 通过分析不同类型智能卡之间的差异 针对不同类型的芯片设计可配置的 压力测试用例 根据使用智能卡的电子设备的不同 设计出覆盖面广的兼容性 测试用例 第一章引言 1 3 2 论文研究方法 本文采用如下方法进行研究 1 通过广泛学习软件自动测试的原理和软件工程的原理提高论文的学术水 平 了解相关产业的发展动态和企业应用状态提高论文的实践指导意义 2 采用理论研究和案例开发相辅相成的方法 理论研究指导案例开发的研 究策略 结合 敏捷开发 测试驱动的开发一等先进的软件工程思想来研 究分析 3 采用先分析 再试验的综合 归纳等研究方法 1 3 3 论文的结构 本论文以智能卡自动化测试平台的设计与开发为重点 共分五章 第一章为引言 在这一章中综述本论文研究的问题 智能卡自动化测试 同时分析现在国内外对于智能卡自动化测试这个问题的研究现状 最后初步提 出了本论文的研究方向和方法 第二章为敏捷测试与智能卡测试的分析 在这一章中首先阐述什么是智能 卡 智能卡的种类和各自的特点以及智能卡需要支持的国际规范 通过分析这 些 可以总结出智能卡函待测试点的要点 其次阐述敏捷测试的概念并对其特 点进行了分析 最后对敏捷测试方法应用到智能卡测试方面进行了研究 第三章为自动化测试框架设计与测试用例的设计 这一章先阐述智能卡自 动化测试系统设计的核心思想 再阐述智能卡自动化测试系统的结构 最后初 步设计了智能卡测试的测试用例 第四章为智能卡自动化测试系统的实现 在这一章中从自动化测试框架和 测试用例这两个方面阐述了自动化测试系统的实现 第五章为总结与展望 这一章中总结了本论文的成功之处 同时也指出了 论文中的不足 同时针对本论文研究的问题 对未来工作进行了展望 第二章智能卡测试与敏捷测试 第二章智能卡测试与敏捷测试 2 1 1 智能卡的定义 第一节智能卡概述 智能卡英文名称为 s m a r tc a r d 是对内部含有微处理芯片的嵌入式卡片的 统称哺1 目前国内大多数的银行卡 它们没有芯片而只有磁条 仅仅拥有简单 的数据存储功能但是没有数据处理的能力 这样的卡片我们通常不认为是智能 卡 我们日常中经常接触到的智能卡有手机中的s i m 卡 第二代居民身份证 财务软件的加密卡等等 判断一张卡是不是智能卡很简单 物理上看它是一个 塑料制成的卡体以及带微处理器的芯片 功能上看它提供安全的数据存储能力 2 1 2 智能卡的种类 随着智能卡在生活中的普及 智能卡的种类也越来越多 按照功能划分 智能卡包含身份识别类智能卡如手机中的s i m 卡 支付工具类智能卡 如具有智能卡芯片的银行卡 加 解密类智能卡如保证信息安全的加密卡和 信息存储类智能卡如大型卖场用的客户 商品信息卡抽1 按照数据传输方式划分 智能卡包含需要i o 线路接触的接触式智能卡 使用r f 红外线等非 i o 线路接触的非接触式智能卡和同时具备了接触功能和非接触功能的混 合式智能卡哺 一按照硬件芯片划分 智能卡包括仅含有e e p r o m 的信息储存卡 具备e e p r o m 和加密解密电 路的逻辑加密 解密卡 具备微处理器单元的c p u 卡和具备c p u 存储模块和 i o 设备的超级智能卡 1 现在日常生活中用到的大部分是c p u 卡 如手机中的s i m 卡等 本论文 第二章智能卡测试与敏捷测试 中主要研究的是c f u 卡 2 1 3 智能卡的基本架构 2 1 3 1 硬件环境 智能卡的硬件环境主要包括c p u 存储模块和i o 接口模块 存储模块中 又包括r o m r a m 和e e p r o m 或者f l a s h 这三个部分口3 如下图2 1 所示 图2 1 智能卡硬件环境架构图 c p u 是智能卡的核心 没有c p u 就根本谈不上智能 目前卡片上常用的 c p u 是8 位或1 6 位的 例如8 0 5 1 围绕c p u 的还有3 个存储模块 r o m r a m 和e e p r o m 或者f l a s h r o m 装有芯片的操作系统 c h i po p e r a t i n gs y s t e m 即c o s 是在芯片制 造时就预置进去的 在芯片的整个生命周期内都不可更改口1 洲用来存储处理器工作时的临时数据 当芯片断电时 存储在r a m 里的所有数据都会丢失 由于卡片上的r a m 区通常都不大 所以在编程时要 慎重考虑如何有效地使用它口1 e e p r o m 和f l a s h 是智能卡主要的存储元件 它们都用来存放一些应用 程序或数据 另外由于f l a s h 的空间很大 通常我们也用它来存放操作系统 这个时候r o m 上就只需要放一个非常小的引导系统以帮助我们将操作系统装 载到f l a s h 区 2 1 3 2 软件环境 智能卡根据种类不同和厂商不同 卡上的软件环境也不相同 但是智能卡 都拥有芯片操作系统 c h i po p e r a t i n gs y s t e m 和卡片应用这两大软件部分哺 芯片操作系统的主要功能包括响应读卡设备发送的复位信号 从外部读卡 第二章智能卡测试与敏捷测试 设备接收命令和数据 分析并检查接收到的命令和数据是否符合规范定义 判 断所收到的命令是否满足安全性要求 命令执行的结果 例如成功或者失败 以及失败原因 需要的时候返回命令执行后产生的数据等功能一 根据智能卡使用的领域不同卡片的应用也不相同 但是卡片应用都包含数 据存储及数据访问功能 安全策略及加密算法 卡上应用和数据传输等功能n 们 智能卡软件功能架构如图2 2 所示 p 能卡软件架构 数 数 字据 上应用与业务h 安输 全入 致据存储和效i 策输 据管理i 略 出 图2 2 智能卡软件环境架构图 首先是卡上应用与业务 卡上应用与卡片支持的业务是智能卡功能的体现 也是智能卡价值的体现 其次是数据存储与数据管理 需要定义一套命令来创建和访问卡片上存储 的这些数据 再次是安全策略 我们说智能卡是用来保障信息安全的 那么完备的安全 策略是每一个卡片应用都必须提供的 这些安全策略包括数据的存储安全 访 问安全等 最后是与外界的交互 与外界的交互包括指令和数据通过i o 进行传输的 过程 2 1 3 3 存储环境 智能卡提供给用户的是安全的数据存储和数据处理功能 所以它必须要解 决的问题之一就是数据在智能卡内如何存放 以什么样的结构存放 按照i s o7 8 1 6 4 的规定 智能卡存储区以文件方式进行组织 类似于个人 电脑中文件的组织方式 智能卡上的根目录称为m f m a s t e rf i l e 主文件 一张智能卡上有且只有一个m f 智能卡执行复位操作后主文件被默认选中 主文件m f 包含了所有其它目录和文件 除了m f 之外卡片上还有两类文件 我们称为d f d e d i c a t e df i l e 目录文 第二章智能卡测试与敏捷测试 件 和e f e l e m e n t a r yf i l e 基本文件 d f 按字面翻译是专用文件 但通常 我们也称之为目录文件 它是可以把其它文件 包括d f s 或者e f s 组织到一 起的一个目录n 1 1 原则上对目录文件的层数没有限制 但是由于智能卡存储器 容量有限 在实际应用中主文件下多于2 层的目录文件就已经比较少见了n 2 1 智能卡的文件结构如图2 3 所示 图2 3 智能卡文件结构图 根据习惯 卡片上一个应用所需要的所有文件都组织到m f 下的一个d f 中 我们也称这样的d f 为a p p l i c a t i o nd f 对于多应用的卡片 卡片m f 下可 以包含多个a p p l i c a t i o nd f 应用所需要的有用数据都存放在基本文件中 也就是e f 里 2 1 3 4 基本指令 卡片和外部终端之间的交互命令和数据是通过a p d u a p p l i c a t i o np r o t o c o l d a t au n i t 来实现的 a p d u 按照传递的方向分为命令和响应 命令是从终端 发到卡片的 而响应则是由卡片返回到终端的数据 命令数据是从终端发往卡 片的数据 它由4 个字节的数据头和不固定长度的数据体构成 数据头包含c l a 即c l a s s i n s 即i n s t r u c t i o n p 1 和p 2 c l a 和i n s 组合在一起标识了 命令类型 p 1 和p 2 是命令参数 p 3 由i n s 的编码决定 或是表示命令中送给 s i m 卡的数据长度 或是表示等待从s i m 卡响应数据的最大长度 a p d u 命令 结构如图2 4 所示n 2 1 图2 4 a p d u 命令结构图 第二章智能卡测试与敏捷测试 响应数据是卡片收到命令数据 并分析执行之后给终端反馈的执行结果 它也是由两部分数据构成 前 部分是返回的数据 例如 如果上一条指令是 读文件内容 这里返回的就是文件的实际内容 并不是每一条响应数据都一定 包含有数据部分n 羽 而后半部分的s t a t u sw o r d 状态字 则是每一条响应数 据都必须包含的 共2 字节长 a p d u 响应结构如图2 5 所示n 羽 图2 5 a p d u 响应结构图 2 1 4 智能卡需要支持的国际规范 智能卡必须遵守的国际范是e o h c e7 8 1 6 系列 这个系列是由i s o t h e i n t e r n a t i o n a lo r g a n i z a t i o nf o rs t a n d a r d i z a t i o n 国际标准化组织和i e c t h e i n t e r n a t i o n a le l e c t r ot e c h n i c a lc o m m i s s i o n 国际电工技术委员会这两个国际机 构联合定制的 主要包括如下几个主要的规范n 3 l 如表2 1 所示 表2 1 智能卡支持基本国际规范表 规范名称主要内容 i s o i e c7 8 1 6 1p h y s i c a l 定义了智能卡的基本物理特性 c h a r a c t e r is t i c s i s o i e c7 8l6 2d i m e n s i o n sa n d定义了智能卡的卡片尺寸和触点的物 l o c a t i o no ft h ec o n t a c t s理位置 i s o i e c7 8 1 6 3e l e c t r o n i cs i g n a l s定义了智能卡传输时的电子信号和传 a n dt r a n s m i s s i o np r o t o c o l s输协议 i s o i e c7 81 6 4i n t e r i n d u s t r y定义了智能卡传输时所使用的基本指 c o m m a n d sf o ri n t e r c h a n g e令 i s 0 i e c7 8 1 6 5n u m b e r i n gs y s t e ma n d r e g is t r a tio np r o c e d u r ef o r规定了智能卡处理基本应用的方式 a p p li c a t i o n i s o i e c7 8 1 6 6i n t e r i n d u s t r yd a t a 定义了智能卡中基本指令的结构 e l e m e n t s i s o i e c7 8 1 6 7i n t e r i n d u s t r y 规定了组织和构建卡片内部文件结构 c o r r a n a n d sf o rs t r u c t u r e dc a r dq u e r y 的指令 la n g u a g e i s o i e c7 8 1 6 8s e c u r i t yr e l a t e d 定义了智能卡中和安全性相关的指令 i n t e r i n d u s t r yc o m m a n d s 第二章智能卡测试与敏捷测试 表2 1 智能卡支持基本国际规范表 续表 规范名称主要内容 i s o i e c7 8 1 6 9a d d i t i o n a l i n t e r i n d u s t r yc o m m a n d sa n d规定了智能卡中附加指令和安全特性 s e c u r i t y i s 0 i e c7 8 1 6 1 0e l e c t r o n i cs i g n a l s 定义了智能卡重启和信息同步时的电 a n da n s w e rt or e s e tf o rs y n c h r o n o u s 气指令 c a r d s 这十部规范构建起了智能卡从物理 电气 内部文件结构到交互指令等方 方面面的行业规范 同时这几部规范与不同行业技术规范相结合又衍生出了智 能卡在不同行业内的规范 如在通讯领域的g s m1 1 1 1 g s m l l 1 4 g s m 0 3 4 8 g s m 0 3 4 0 等 在智能卡软件测试的时候 i s o i e c7 8 1 6 1 到i s o i e c7 8 1 6 3 这几个规范所规定的是智能卡的物理结构 输入输出管脚和传输时的高低电平 设计 故而在智能卡软件测试的时候无法涉及到 i s 0 i e c7 8 1 6 4 到i s o i e c 7 8 1 6 8 这几个规范是智能卡测试的重点 其中涵盖了基本指令 基本文件系统 基本数据安全处理和算法等 i s o i e c7 8 1 6 9 和i s o i e c7 8 1 6 1 0 这两个规范 由于各种智能卡支持的卡上业务不同 而测试的侧重点也不尽相同 2 2 1 敏捷测试 第二节敏捷测试的特点和优点 所谓敏捷测试就是指在敏捷软件开发的过程中 依据敏捷软件开发思想所 进行的软件测试n 劓 依据测试周期的先后顺序 敏捷测试主要分为两大部分 一是由程序开发人员完成的程序单元测试 二是由软件测试人员进行的验收测 试 依据测试任务来划分 敏捷测试包括对软件代码的测试和软件测试的过程 和模式 所以敏捷测试不仅仅是对软件代码质量的检验 还对整个软件开发过 程进行了整体上的控制u 钔 敏捷测试的基本过程是由单元测试 迭代测试 发布版本 用户反馈和修 改测试用例这五个过程循环组成的n 5 1 所以说敏捷测试的测试用例是不断修改 的 并且测试用例可以迭代使用n 钔 在用户反馈之后 需要测试人员及时根据 用户的反馈及时的做出相应的测试脚本 在多个版本的迭代之后 能确保项目 第二章智能卡测试与敏捷测试 按时 高质量的交付给客户 敏捷测试周期示例如图2 6 所示 迭代版本1迭代版本2 迭代版本3 图2 6 敏捷测试周期示例图 2 2 2 敏捷测试的特点和优点 在测试周期上敏捷测试具备了高度迭代和周期性测试的特点 而迅速反应 客户的反馈这就需要敏捷测试人员对项目的需求 项目开发计划 项目的设计 等环节都非常的熟悉 这就需要敏捷测试人员参加项目的所有会议并参与部分 决策 相较于传统的软件测试 敏捷测试具备如下几个特点 l 敏捷软件测试需要测试人员具备更强的沟通与协调能力u 副 传统的软件测试在程序发布了阶段性的版本之后才会开始 测试结果再反 馈给开发人员 敏捷测试过程中 开发人员提交的测试版本非常多 每个测试 版本之间的间隔较小 开发人员与测试人员的沟通与交流会更多u 叼 在程序阶 段性提交给客户之后 需要敏捷软件测试人员及时与客户沟通 了解客户对新 版本软件的意见和改进需求 这就要求敏捷软件测试人员应该具备同客户沟通 的能力 所以敏捷测试人员需要具备更强的沟通与协调能力 2 敏捷软件测试需要测试人员实时调整测试用例的规模和精细程度u 建议敏捷软件测试需要及时交付测试报告 并且存在多次迭代测试的环节 这就需要测试人员掌握每次迭代的测试用例规模和测试的精细程度 测试用例 既要避免笨重的覆盖测试又要满足程序质量控制的需求 这就需要敏捷测试人 员在每个 单元测试 级别的测试中精简测试用例 迅速发现问题 在程序版 本迭代的测试中 尽量覆盖测试范围 测试用例的规模和测试精细程度需要测 第二章智能卡测试与敏捷测试 试人员依据个人经验来判断和控制 8 1 3 敏捷软件测试需要多元化的测试方法和完备的自动化测试平台 单单采用一种测试方法必然会是测试过程中存在疏漏之处 现在的敏捷测 试经常是白盒测试 黑盒测试和灰盒测试交替使用n 町 这样可以保证测试用例 的高覆盖性 鉴于敏捷测试迭代次数多的特点 构建完善的自动测试平台尤为 重要 有了自动测试平台就可以简单的重现运行之前的测试用例 回归测试的 质量自然就提高了 4 敏捷软件测试需要的测试人员更为复杂 敏捷测试需要的测试人员包括进行u n i tt e s t 的程序开发人员 需要及时和 客户沟通并获得反馈的售前工程师 需要处理程序安装调试的售后工程师 甚 至一部分情况下 客户也会加入到敏捷测试的行列中去 这样参与测试的人员 囊括了软件开发人员 软件测试人员 项目经理 售后工程师 售前工程师 甚至客户也会被囊括进来 敏捷测试人员如图2 7 所示 的软件测试主要涵盖 统测试 智能卡的业 的就是卡上应用的实 鉴于智能卡使用客户 能的测试之外 压力 项目质量要求高等特 第二章智能卡测试与敏捷测试 2 3 1 智能卡基本数据交互指令系统测试 智能卡与外界通过i o 口进行数据交换 智能卡与使用智能卡的外部设备 之间的基本数据交互指令决定了智能卡的功能 故而 智能卡基本数据交互指 令系统测试是智能卡测试的基础 也是验证智能卡功能与业务实现情况的基础 智能卡基本交互指令的测试需要首先涵盖所有智能卡都必须支持的基本交互指 令 然后根据智能卡的类型和应用领域不同 智能卡测试的指令还需包含各自 领域内的交互指令 如在通信领域中g s m l l 1 4 中规定的交互指令 p r i v a t e c o m m e n d 最后测试那些不暴露给用户和使用设备的私有指令啪1 以手机中 的s i m 卡为例 如图2 8 所示 图2 8 智能卡数据交互指令测试层次图 基本交互指令是智能卡交互的基础 这些指令包括文件操作相关的文件选 择 文件读取等交互指令 安全相关的校验p i n 值 鉴权等交互指令 不同领 域内的智能卡有不同的交互指令 如通信领域的s i m 卡中包含电信业务的 p r i v a t ec o m m e n d 如t e r m i n a lr e s p o n s e s t a t u s 等交互指令 在实现交互指令的测试用例的时候 不仅仅要对交互指令的关键字和参数 逐一进行检查 同时还要设计错误检测的测试用例 向能卡中发送错误的交互 指令 以此来测试智能卡对与错误指令的容错性n 钉 2 3 2 智能卡基本文件系统测试 智能卡文件系统的测试也是按照先测试所有智能卡必须遵守的公共部分文 件 再逐步测试行业私有文件及文件组织结构的顺序进行的 如先测试3 f 0 0 文件夹下规定的p i n p u k 文件 再测试g s m 规定的7 f 2 0 文件夹及其下的文件 或者测试c d m a 规定的7 f 2 5 下的文件夹及文件 最后测试卡上应用需要用到 的私有文件夹和文件 第二章智能卡测试与敏捷测试 在实现智能卡文件系统的测试用例的时候 对于标准文件仅仅通过选择文 件 查询文件内容的方式进行测试即可 但是由于智能卡的业务通常将程序中 的全局变量和标志位存储到卡上的文件系统中 所以应用相关的测试通常是先 往智能卡q 丁g j 建文件再写入文件内容 再整体测试卡上应用的实现情况强 智 能卡文件测试如图2 9 所示 i 选择文件检查 i 文件是否存在 l 更新文件内容 图2 9 智能卡数据交互指令测试层次图 2 3 3 智能卡应用压力测试和边界测试 目前智能卡上的功能繁多 但是智能卡经常会直接面对最终客户 在测试 时要考虑到软件输入输出的边界情况和软件运行中的压力测试 比如在需要用 户输入内容的时候 对用户输入的上限和下限分别进行输入检查 并对用户输 入的边界重点检查 在检测用户输入的时候采用软件测试中的 五点法 嘲 这 五点 分别是 小于阈值下限的一个测试点 等于阈值下限的一个测试点 阈值下限和上限内部的一个点 等于阈值上限的一个测试点和大于阈值上限的 一个测试点 如图2 1 0 所示 图2 1 0 五点法测试示例图 第二章智能卡测试与敏捷测试 通过这五点来检测智能卡软件对于边界情况的处理 如需要用户输入手机 号码 会对用户输入的长度和内容进行检查 当用户输入的字符不仅是数字 并包含英文字母的时候 需要提示给用户 请输入数字一 当用户输入的字符 长度仅仅为1 0 位字符的时候 会提示用户 请输入1 1 位数字的电话号码 在智能卡实际的使用中 用户会连续使用智能卡很长时间 如手机卡 很 多用户长达几个月才关机一次 如电视机顶盒内的智能卡 通常的情况下几年 才会重启一次 长时间连续使用智能卡 会使得智能卡中的堆栈段逐渐用满 所以在智能卡设计的时候会有测试堆栈段的压力测试用例矧 通常智能卡软件 压力测试采用先将智能卡上现有文件的内容置满 再反复调用或使用卡上最复 杂的功能 以此来检测智能卡软件的抗压力性 2 3 4 智能卡测试的特点 智能卡是一种嵌入式电子设备 其具备了嵌入式设备测试的所有特点 纵 观智能卡软件测试 主要具有以下几个特点 1 智能卡测试对设备的依赖度高 由于智能卡不具备输入 输出设备 其 黑盒测试必须借助使用智能卡的电子设备来测试 这就给自动化测试带来了不 便 同时由于使用智能卡的电子设备的不同 又给智能卡带来了兼容性问题 2 相比高级编程语言 智能卡软件开发语言不具备u n i tt e s t 框架等敏捷 测试需要的基础 作为嵌入式设备的智能卡 其绝大多数是由c 语言开发 或 者底层由c 语言开发 而c 语言的开发环境并不像j a v a 钟等高级语言具有 u n i tt e s t 类或者u n i tt e s t 框架 所以 仅仅依靠开发语言实现逐级迭代开发 迭代测试的敏捷开发过程几乎不可能 智能卡白盒测试比其黑盒测试更加困难 3 软件测试和卡上文件内容测试密不可分 智能卡上程序的运行需要 固 化 在芯片上的c o s 程序作为基础 存储在f l a s h 或e e p r o m 上的 应用 和 文件系统 这三者整体工作 由于c o s 上的程序 应用 和 文件系统 作为一个整体参与测试 当测试出现了问题 需要进一步分析来定位错误发生 在哪一个环节 这样简单的黑盒测试往往不能准确定位问题 这就给智能卡测 试增加了难度 笫二章智能卡测试与敏捷测试 2 3 5 敏捷软件测试在智能卡开发中的应用 由于智能卡与其使用设备之间的数据交互全部由a p d u 执行 所以测试通 过向智能卡中发送a p d u 检测a p d u 的返回数据和状态字来判断测试是否通 过 本次研究采用p y t h o n 作为开发自动化测试系统的软件 使用其中的p y u n i t 框架作为整合测试用例的结构 在测试用例的设计和组织上采用敏捷开发 敏 捷测试的思想 做到测试用例具备高内聚 低耦合的特点 在设计测试框架时 既满足在智能卡软件日常开发中u n i tt e s t 的功能 同时还要满足程序开发之后 的回归测试 压力测试和兼容性测试等环节的需要膻钔 敏捷软件测试在智能卡开发中的应用可以从以下几个方面出发 1 在智能卡软件开发过程中 按照从基础到复杂应用的迭代过程分成小的 开发模块 并为每一个小模块提供能够快速运行u n i tt e s t 测试的测试用例 2 构建自动化测试平台 敏捷测试的基础就是自动化测试 有了自动化测 试 在智能卡软件的开发过程中可以方便的运行u n i tt e s t 在智能卡软件开发 结束进入项目收尾的时候可以迅速的执行回归测试 3 先针对单一功能构建 用户故事 并编写测试用例 1 将这些简单的测 试用例加以整合组成基础测试框架 4 对每一版发布的程序进行小版本的迭代测试哺1 在每个迭代测试中进行 压力测试 这样可以尽早发现程序中的指针丢失 内存越界等隐藏极深的问题 同时在迭代测试中检测不同的智能卡上的应用是否存在内存覆盖的冲突啪1 这 就需要在卡片功能开发的同时 进行该功能的u n i tt e s t 功能加载到智能卡上 之前保证该功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论