




已阅读5页,还剩76页未读, 继续免费阅读
(信号与信息处理专业论文)基于软件测试的蓝牙协议互连测试仪的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
p 7 九2 摘要: 艋芽是一种新兴的短距离无线通信技术,它最初提出是用来 取代信号电缆连线的,也可以用于各种移动设备的互联,组建个 人无线局域网。 由于蓝芽技术是由爱立信、i b m 、东芝等4 0 0 多家电子、电脑 及通信业厂商组成的特殊利益集团共同推动的,所以不同厂家产 品之间的互操作性成了制约蓝芽技术产品能否普及的一个瓶项。 随着蓝芽技术的蓬勃发展,许多厂商都推出了独立开发的蓝 芽协议栈和基于这些协议栈的蓝芽终端产品,由于对同一协议规 范的理解和实现有可能有很大不同,因而开发一种能测试蓝芽协 议栈以及相关产品的测试仪已成了一个非常迫切和重要的事情。l 卢7 本文作为国际测试与认证公司( i v t ) 重点产品开发项目“蓝 芽协议互连测试仪”的一部分,重点对蓝芽测试仪的互连测试部 分进行了研究和实现。该研究主要是从蓝芽特别利益组织的文档 出发,从软件工程的观点分析研究了互连测试仪的实现,并实现 其中的无绳电话和内部电话部分。 该测试仪力图作为蓝芽产品的标准测试平台,可以对蓝芽产 品的互连性能做了全面的测试,设计和实现过程中深刻的贯彻了 软件测试的科学思想,具有技术的领先性和需求的迫切性。 关键词:蓝影互连测试仪,软件测试) 无绳电嘎遁圃垂窭e 差卫班仝 韭查至望查堂堡主兰、业堡苎一 a b s t r a c t b l u e t o o t hi sas h o r t r a n g ew i r e l e s sc o m m u n i c a t i o nt e c h n o l o g y d e v e l o p i n gr a p i d l yr e c e n t l y i tw a sb r o u g h tf o r w a r d t or e p l a c ec a b l e s b e t w e e nd e v i c e s ,w h i l ei tc a nb eu s e dt oc o n n e c tp o r t a b l ed e v i c e so f a l lk i n d st of o r map e r s o n a lw i r e l e s sl a n s i n c eb l u e t o o t ht e c h n o l o g yi sp u s h e db ys p e c i a li n t e r e s t g r o u p ( s 1 g ) c o n s i s t i n go f m o r et h a n4 0 0m a n u f a c t o r yi n e l e c t r i c a l ,c o m p u t e ra n dt e l e c o m m u n i c a t i o nf i e l di n c l u d i n go f e r i c s s o n ,i b ma n dt o s h i b a ,t h ec o o p e r a b i l l t yb e t w e e nt h ep r o d u c t f r o md e f e r e n tp r o v i d e rb e c a m eak e yp o i n tt od e t e r m i n i n gw h e t h e r t h eb l u e t o o t hp r o d u c t sc a nb ep r e v a l e n t a sai m p o r t a n tp a r to f t h ed e v e l o p i n gp r o j e c t “b l u e t o o t h i n t e r o p e r a b i l i t yt e s t e r o fi n t e r n a t i o n a lv a l i d a t i o n & t e s t i n g c o r p o r a t i o n ,t h i st h e s i sm a i n l yr e s e a r c ha n dd e v e l o pt h ec o o p e r a t i n g t e s t i n gp a r to f t h eb l u e t e s t e r w es t a r tf o r mt h es p e c s i f i c a t i o no f s i g r e a l i z et h ei n t e r c o o p e r a t i n gt e s t e rf r o mt h ep o i n to fs o f t w a r e e n g i n e e r i n g a n dr e a l i z es o m ep a r t ss u c ha sc o r d l e s st e l e p h o n e p r o f i l ea n di n t e r c o mp r o f i l e m a n a g i n gt or o l ea st h es t a n d a r dt e s t i n gf i a to f b l u e t o o t hp r o d u c t , t h i st e s t e rc a nm a k eaf u l lt e s tt ot h ec o o p e r a b i l i t yo f b l u e t o o t h p r o d u c t i nt h ep r o c e s so f d e s i g n i n ga n dr e a l i z i n gt h i st e s t e r , w ee a r l y t h o u g ht h es c i e n t i f i ct h o u g h ti ns o f t w a r et e s t i n g ,a n d t h i sp r o d u c ti s v e r ya d v a n c e da n dv e r yb a d l yi nn e e d k e yw o r d s :b l u e t o o t h ,i n t e r o p e r a b i l i t yt e s t e r , s o f t w a r et e s t i n g , c o r d l e s st e l e p h o n e ,i n t e r c o mt e l e p h o n e ,p r o d u c t i z e 2 ! ! 塑銮塑盔兰堕! 兰些堡壅 第一章绪论 b 1 1 蓝芽技术简介 蓝芽( b l u e t o o t h ) 是由e r i c s s o n 、i b m 、i n t e l 、n o k i a 和t o s h i b a 等5 家公司于1 9 9 8 年联合推出的一项最新的无线网络技术,如今已经迅速 成为移动p c 、移动电话、p d a 和其他便携器件之间的小尺寸、低价位、 短距离无线连接的领先标准。1 9 9 8 年5 月这五家公司组建了一个特殊 兴趣组s i g ( s p e c i a li n t e r e s tg r o u p ) 来开发此技术及协议,如今已有1 8 0 0 多家公司加入。1 9 9 9 年1 2 月份蓝芽s i g 推出了b l u e t o o t h 协议的1 0 b 版,将其推向实际应用阶段。 蓝芽计划主要面向网络中各类数据及语音设备,使用无线的方式将 它们连成一个微微网( p i c o n e t ) ,多个p i c o n e t 之间也可以互连形成一个 分布式网( s c a t t e m e t ) ,从而方便快速地实现各类设备之间的通信。它 也使得通信器件当彼此进入一定的范围时自动连接,从而建立临时的个 人无线连接网络。 b l u e t o o t h 无线通信技术的主要特点有: 1 低成本、低功率、体积小无线收发芯片( 0 5 平方英寸) ; 2 在近期b l u e t o o t h 模块价格在1 5 - 2 0 美元左右,到2 0 0 1 年有望 降到大约5 美元; 3 短标称的b l u e t o o t h 无线射程( 1 0 米) ,以节省电池能量: 4 用外加的功率放大器扩展的无线射程( 1 0 0 米) : 5 在全球可用并且无限制的2 4 g h zi s m ( 工业、科学、医疗) 频 段内。 b l u e t o o t h 无线传输使用一种f h s s ( 跳频扩频) 和d s s s ( 直接序 列扩频) 混合方法的包交换协议,以结合这两种方法的优点。跳频频率 是每秒1 6 0 0 跳,频谱被分成每m h z7 0 跳。这和i e e e8 0 2 1 1 无线l a n 标准很相似。b l u e t o o t h 跳频机制结合了快速a r q ( 自动重复请求) 、 c r c ( 循环冗余校验) 和f e c ( 前向纠错) 。二进制调频和简单的链路 层协议降低了射频芯片的复杂度和成本。 b l u e t o o t h 为所谓的“p i c o n e t ( 微微网) ”提供1m b i f f s 的标称速率。 一个p i c o n e t 里包含一个主设备和最多七个从设备,在这里主从关系用 来初始化和控制一个p i c o n e t 中设备之间的通信。主设备负责确定和同 步它所在的p i c o n e t 中的调频模式。单个的b l u e t o o t h 单元可以以最高 6 北方交通大学硕士毕业论史 速率7 2 1 k b i d s 接收和发送,或最多3 个语音信道( 每个信道6 4 k b i t s , 使用c v s d 连续变化斜率增量调制方法调制) 。每对主从设备同时支 持同步面向连接( s c o ) 的链路和异步无连接( a c l ) 的链路。在一个 b l u e t o o t h 射程范围内,可以存在多个独立的p i c o n e t 。这些p i c o n e t 可 以组成所谓的“s c a r e r n e t ( 分布式网) ”,以便让更多的b l u e t o o t h 设备 被激活,组合起来提供更高的带宽。 1 0 ,11 1 2 工程背景 在i t 界,蓝牙可以说已经是风风火火,热闹非凡了。尽管如此, 但展现在人们面前的,至今没有一个成熟的产品。各种展会上亮相的蓝 牙产品,要么是演示版,要么是简单的应用,究竟是什么原因制约了蓝 牙产品的推出和大规模的普及呢? 蓝芽产品的互连性能不佳肯定是很 重要的一个方面。 互操作性是蓝芽产品的重要特性。从理论上说只要通过了产品的 致性和互连性测试,互操作性问题就可以得到解决。国际s i g 对蓝芽 互操作非常重视,因为它涉及到蓝芽产品的进一步应用,各大公司接连 不断开会,进行沟通、测试、实验,i b 的就是使其产品相互可操作。基 于这些原因,蓝芽s i g 组织推出了标准的蓝芽测试规范,规定了蓝芽 测试的原则和具体内容。 这样开发一个普遍适用的蓝芽互连协议测试仪成了追切并且很现 实的任务,目前在国际上进行该类型测试仪开发的工作还不是很多,特 别是国内,本论文所做的工作处于领先的位置,该蓝芽测试仪就是按照 最新的一致性与互操作性测试的蓝牙测试规范而开发。【2 4 】 为了确保产品具有互操作性并符合“蓝芽”技术规范,制造厂商们必 须经过认证才能把“蓝芽”商标贴到他们的产品上。认证工作要求:由制 造商和“蓝芽”认证测试机构对产品进行测试。然后由“蓝芽”认证机构对 测试报告、产品文件和制造商声明进行审议。 作为国内唯一成熟的蓝芽互连测试产品,该测试仪产品在国内第 个送交并已通过蓝芽产品b q b 认证,取得了作为产品销售给蓝芽生产 厂商的资格。现在正在提交产品和文档,申请通过蓝芽标准测试产品认 证。通过该认证,本测试仪就可以作为蓝芽标准化组织测试其他蓝芽生 产厂商产品的标准测试平台。( 参见w w wi v c o r p o r a t i o n c o m l 7 ! ! 互奎望查堂堡主竺些丝鉴 巨1 3 论文的主要工作和贡献 本论文工作通过认真研究了蓝牙互连协议和蓝芽规范,深入分析了 串口仿真应用及其之上的的各项应用:贯彻软件工程其中的软件测试的 思想,利用面向对象的技术和测试自动化的技术,给出了在蓝芽互连协 议测试仪的设计与实现,并对整个软件系统进行测试通过。主要工作包 括: 1 ) 蓝芽协议测试仪的结构框架设计 2 ) 蓝牙互连测试仪系统的分析与实现 3 ) 蓝牙互连测试仪系统的具体功能模块无绳电话( c o r d l e s s t e l e p h o n e ) 模块和免费电话( i n t e r c o mt e l e p h o n e ) 模块的实现 4 ) 蓝牙互连测试仪系统软件的测试通过和发布 本论文工作主要完成了以下方面的创新和贡献: 第一:以规范的软件工程的思想实现了整个蓝芽协议测试仪,从需求分 析到结构设计到代码实现和整个的软件测试。在功能上和设计思想上都 处于同行业领先地位。 第二:具体实现了无绳电话模块和免费电话模块测试仪,并通过蓝芽标 准化组织的测试和验收,已经商品化。 豇4 论文的结构 概述之后,本文首先提出了互连测试仪的总体设计思想,从 软件工程的角度对测试仪的设计进行理论研究,并说明了软件测 试技术在论文工作中的体现。 在第三章本文介绍了自动测试理论,并将此理论应用到蓝芽 测试仪的设计中。第四章描述了作为测试仪支撑层的蓝芽的协议 栈,介绍了它的各层协议并介绍了蓝芽技术的一些典型应用。 从第五章开始,具体设计和实现蓝芽测试仪。第五章为蓝芽 测试仪的结构框架实现。第六章对具体的无绳电话和内部电话应 北方变通大学硕士毕业论史 用进行设计和代码实现。 作为一个公司的产品,最终的目的是集成和商品化,从软件 完成到商品化中间还有检测和发布的过程,第七章就是在这个方 面介绍了所做的工作。 最后一章是对下步工作的展望。 北方交通大学顾t 毕业论丈 第二章软件测试和测试仪的理论研究 软件工程是指运用现代科学技术知识来设计并构造计算机 程序及为开发、运行和维护这些程序所必需的相关文件资料。 本论文的一个重要内容就是设计实现和测试发布蓝芽互连 测试仪,需要对软件测试理论有深刻的认识和了解,本章就着重 讨论软件测试理论以及在具体工作中的应用。 1 ,3 目2 1 软件测试基础 软件测试是保证软件质量、提高软件可靠性的最主要活动之 一,它实施对软件规格说明、设计规划说明和编码的最终审核, 是软件工程的主要内容之一。测试阶段就又一次完全体现了软件 生命周期的全过程,这里涉及测试需求的定制,测试计划、测试 过程的建立,测试的开发,测试的执行和测试结果的评估,所以 软件测试是一个复杂的过程。” 配1 1 什么是软件测试 软件测试是为了发现程序中的错误而执行程序的过程,也就 是说,软件测试是根据软件开发啬阶段的规格说明和程序的内部 结构而精心设计一批测试用例( 及输入数据及其预期的输出结 果) ,并利用这些测试用例去运行程序,以发现程序错误的过程。 测试主要内容之一是通过”测试用例”( t e s tc a s e ) 进行测试 测试用例是测试数据及与之相关的测试规程的个特定的集合 它为了特定的目的( 如考察特定的程序路径或验证是否符合特定 的要求) 而产生出来的 从软件的生存期来看,软件测试涉及两个阶段,其中之一是 在编码阶段,即在编写出每个模块之后所进行的模块测试( 又称 单元测试) ,测试者应是该模块的作者;第二个阶段是对软件系统 进行的各种综合测试,这是软件生存期中的一个独立阶段,由专 门的测试人员完成。 目2 1 2 软件测试的目的和原则 软件测试的目的是以最少人力、物力和时间投入,尽可能多 地找出软件中潜在的各种错误和缺陷。由此目的所带来的附加收 获是,它能证明软件的功能与需求相符合:同时,测试结果为软 北方交通大学硕士毕业论文 件可靠性分析提供了依据。 基于以上的测试目的,软件测试的原则应该是: 应该尽早地和不断地进行软件测试。 由于原始问题的复杂性,软件的复杂性和抽象性,软件开发各 个阶段工作的多样性,以及参加开发各种层次人员之间工作的配 合关系等因素,使得开发的每个环节都有可能产生错误,所以不 应把软件测试仅仅看作软件开发的一个独立阶段,而应当把它贯 穿到软件开发的各个阶段中。 程序员应该避免检查自己的程序。 测试工作需要严格的作风,客观的态度以及冷静的情绪。人 们不愿否定自己工作的心里会对测试造成障碍,另外程序员对软 件规格说明理解错误而引入的错误则更难发现。如果由别人来测 试,可能会更客观更有效。 牢记穷举测试是不可能的。 一个大小适度的程序,其路径组合是一个天文数字,因此考 虑测试程序执行中的每一种可能性是不可能的。当然,充分覆盖 程序逻辑并确保程序设计中使用的所有条件是可能的。 在设计测试用例时,应当包括合理输入条件和不合理的输入 条件。 在测试程序时,人们常常倾向于过多的考虑合法的和期望的 输入条件,以检查程序是否做了它应该做的事情,而忽视了不合 法的和预想不到的输入条件。事实上,软件在投入运行以后,用 户的使用往往不遵循事先的约定,使用了意外的输入。如果开发 的软件遇到这种情况不能做出适当的反应,那么就容易产生故障。 因此,软件系统处理非法命令的能力也必须在测试是受到检验。 用不合理的输入条件测试程序时,往往比用合理的输入条件进行 测试能发现更多的错误。 北方交通大学烦上毕业论文 5 2 2软件测试分类 5 2 2 1 软件测试的分类 根据是否需要执行所测试的程序,软件测试分为动态测试 和静态分析两类。 缯 态分析”不需要执行所测试的程序,它扫描所测试程序 的正文,对程序的数据流和控制流进行分析,然后送出测试报告。 “动态测试”也就是要经过程序运行测试用例而进行的测 试,所以动态测试也叫”程序测试”程序测试通常有黑盒测试和 白盒测试之分对那些已知产品的内部工作过程,通过测试证明 每种内部操作是否符合设计规格要求,所有内部成分是否已经过 检查,这就是白盒测试。主要立足于对软件的过程性细节做到细 致的检查,对程序的所有逻辑路径进行测试,通过在不同的点检 查程序的状态,确定实际的状态是否与预期的状态一致。 若己知产品的功能设计规格,可以进行测试证明每个实现了 的功能是否符合要求,为黑盒测试。这种测试要在软件的接口处 进行,把被测对象看成一个黑盒子,不必考虑程序内部的逻辑结 构和内部特性,只依据程序的需求规格说明书,检查程序的功能 是否符合它的功能说明。 以上提到的两种测试方法我们可以在测试的不同阶段来实 施,单元测试主要可以使用白盒测试,集成测试使用白盒测试和 黑盒测试,确认测试和系统测试使用黑盒测试。 目2 2 2 黑盒测试 黑盒测试( b l a c k b o xt e s t i n g ) 又称功能测试,数据驱动测试 或基于规范的测试( s p e c i f i c a t i o n b a s e dt e s t i n g ) 就软件测试来讲,软件的黑盒测试意味着测试要在软件的接口 处进行。也就是说,这种方法是把测试对象看做一个纸盒子,测 试人员完全不考虑程序内部的逻辑结构和内部特性,仅依据程序 功能的需求规范考虑确定测试用例和推断测试结果的正确性 黑盒测试主要是为了发现以下几类错误: 夺是否有不正确和遗漏了的功能? 夺在接口上,输入能否正确的接受? 能否输出正确的结果? 夺是否有数据结构错误或外部信息( 例如数据库文件) 访问错 北方交通大学烦 毕业论史 误? 夺性能上是否能够满足要求? 夺是否有初始化或终止性错误? 所以,用黑盒测试发现程序中的错误,必须在所有可能的输 入条件中确定测试数据,来测试程序是否都能产生正确的输出。 目2 2 3白盒测试 软件的白盒测试是对软件的过程性细节做细致的检查。这一 方法是把测试对象看作一个打开的盒子。它允许测试人员利用程 序内部的逻辑结构以及有关信息,设计或选择测试用例,对程序 所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实 际的状态是否与预期的状态一致。因此白盒测试又称为结构测试 或逻辑驱动测试。 软件人员是用白盒测试方法,主要想对程序模块进行如下的 检查: 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判断,取“真”与取“假”的两种情况都能至 少测试一次 在循环的边界和运行界限内执行循环体: 测试内部数据的有效性,等等。 测试阶段,是是穷举测试是不可行的,我们必须精心设计测 试用例,也就是要从数量极大的可用测试用例中精心挑选少量的 测试数据,使得采用这些测试数据能够达到最佳的测试效果,或 者说它们能够高效率地把隐藏的错误揭露出来。 目2 3 软件测试的策略 软件测试过程按四个步骤进行,即单元测试、组装( 集成) 测试、确认测试和系统测试。下图2 1 为软件测试的四个步骤。 北方交通大学硕士毕业论业 锗,曼f 筷馋 日i 乇 扑j | 字巯 一一测试倍 需筵元 饭测 螬j 是 啦记、 、 一、 一一零i j 器蘸忑一嚣一面一器磊一 j篓勰登粼_ 坚劂 艘测枞丽未博翟试的 一t 测试“ 2 1 软件测试的过程 开始是单元测试,集中对源代码实现的每一个单元进行测试, 检查各个程序模块是否正确的实现了规定的功能。然后把已测试 过的模块组装起来,进行组装测试,主要对与设计相关的软件体 系结构的构造进行测试。为此,在将一个一个实施了单元测试并 确保无误的程序模块组装成软件系统的过程中,对正确性和程序 结构等方面进行检查。确认测试则是要检查已实现了的软件是否 满足了需求规格说明中确定了的各种需求,以及软件配置是否完 全满足了需求规格说明中确定了的各种需求,以及软件配置是否 完全正确。最后是系统测试,把已经经过确认的软件纳入实际运 行环境中,与其他系统成分组合在一起进行测试。严格的蜕,系 统测试已超出了软件工程的范围。 ( 1 ) 单元测试 单元测试针对程序模块,进行正确性检验的测试。其目的在 于发现各模块内部可能存在的各种差错。单元测试需要从程序的 内部结构出发设计测试用例。多个模块可以平行地独立进行单元 测试。 单元测试的内容 模块接口测试:对通过被测模块的数据流进行 测试。为此,对模块接口,包括参数表、调用子模块的 参数、全程数据、文件输入输出操作都必须检查。 局部数据结构测试:设计测试用例检查数据类 型说明、初始化、缺省值等方面的问题,还要查清全程 数据对模块的影响。 路径测试: 选择适当的测试用例,对模块中 重要的执行路径进行测试。对基本执行路径和循环进行 测试可以发现大量的路径错误。 错误处理测试:检查模块的错误处理功能是否 4 北方交通大学顺士毕业论文 包含有错误或缺陷。例如,是否拒绝不合理的输入;出 错的描述是否难以理解、是否对错误定位有误、是否出 错原因报告有误、是否对错误条件的处理不正确;在对 错误处理之前错误条件是否已经引起系统的干预等。 边界测试:要特别注意数据流、控制流中刚好 等于、大于或小于确定的比较值时出错的可能性。对这 些地方要仔细地选择测试用例,认真加以测试。 此外,如果对模块运行时间有要求的话,还要专门进行关键 路径测试,以确定最坏情况下和平均意义下影响模块运行时间的 因素。这类信息对进行性能评价是十分有用的。 单元测试的步骤 通常单元测试在编码阶段进行。在源程序代码编制完成,经 过评审和验证,确认没有语法错误之后,就开始进行单元测试的 测试用例设计。利用设计文档,设计可以验证程序功能、找出程 序错误的多个测试用例。对于每一组输入,应有预期的正确结果。 模块并不是一个独立的程序,在考虑测试模块时,同时要考 虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的 其它模块。这些辅助模块分为两种: 驱动模块:相当于被测模块的主程序。它接收测试数 据,把这些数据传送给被测模块,最后输出实测结果。 桩模块:用以代替被测模块调用的子模块。桩模块可 以做少量的数据操作,不需要把子模块所有功能都带进 来,但不允许什么事情也不做。 被测模块、与它相关的驱动模块及桩模块共同构成了一爪测 试环境”,见图2 2 。 2 2 单元测试的测试环境 如果一个模块要完成多种功能,且以程序包或对象类的形式 出现,例如a d a 中的包,m o d u l a 中的模块,c + + 中的类。这时可 i j 曩 嚣崾堕善| ,q q 一 嘲一幽一 鉴遂 北方交通大学硕士毕业论文 以将这个模块看成由几个小程序组成。对其中的每个小程序先进 行单元测试要做的工作,对关键模块还要做性能测试。对支持某 些标准规程的程序,更要着手进行互联测试。有人把这种情况特 别称为模块测试,以区别单元测试。 ( 2 ) 集成测试 在单元测试的基础上,需要将所有模块按照设计要求组装成 为系统。这时需要考虑: 夺 在把各个模块连接起来的时侯,穿越模块接口的数据 是否会丢失; 夺个模块的功能是否会对另一个模块的功能产生不 利的影响; 夺 各个子功能组合起来,能否达到预期要求的父功能: 夺 全局数据结构是否有问题; 夺 单个模块的误差累积起来,是否会放大。从而达到不 能接受的程度。 令 单个模块的错误是否会导致数据库错误。 选择什么方式把模块组装起来形成一个可运行的系统,直接 影响到模块测试用例的形式、所用测试工具的类型、模块编号的 次序和测试的次序、以及生成测试用例的费用和调试的费用。通 常,把模块组装成为系统的方式有两种方式: 一次性集成方式 它是一种非增殖式集成方式。也叫做整体拼装。使用这种方 式,首先对每个模块分别进行模块测试,然后再把所有模块组装 在一起进行测试,最终得到要求的软件系统。 由于程序中不可避免地存在涉及模块间接口、全局数据结构 等方面的问题,所以一次试运行成功的可能性并不很大。 增殖式集成方式 又称渐增式集成方式。首先对一个个模块进行模块测试,然 后将这些模块逐步组装成较大的系统,在组装的过程中边连接边 测试,以发现连接过程中产生的问题。最后通过增殖逐步组装成 为要求的软件系统。 夺 自顶向下的增殖方式:将模块按系统程序结构,沿控 制层次自顶向下进行集成。由于这种增殖方式在测试过 程中较早地验证了主要的控制和判断点。在一个功能划 分合理的程序结构中,判断常出现在较高的层次,较早 北方交通大学硕士毕业论文 就能遇到。如果主要控制有问题,尽早发现它能够减少 以后的返工。 - o - 自底向上的增殖方式:从程序结构的最底层模块开始 组装和测试。因为模块是自底向上进行组装,对于个 给定层次的模块,它的子模块( 包括子模块的所有下属 模块) 已经组装并测试完成,所以不再需要桩模块。在 模块的测试过程中需要从子模块得到的信息可以直接运 行子模块得到。 混合增殖式测试:自顶向下增殖的方式和自底向上增殖的 方式各有优缺点。自顶向下增殖方式的缺点是需要建立桩模块。 要使桩模块能够模拟实际子模块的功能将是十分困难的。同时涉 及复杂算法和真正输入输出的模块一般在底层,它们是最容易 出问题的模块,到组装和测试的后期才遇到这些模块,一旦发现 问题,导致过多的回归测试。而自顶向下增殖方式的优点是能够 较早地发现在主要控制方面的问题。自底向上增殖方式的缺点是 “程序一直未能做为一个实体存在,直到最后一个模块加上去后 才形成一个实体”。就是说,在自底向上组装和测试的过程中,对 主要的控制直到最后才接触到。但这种方式的优点是不需要桩模 块,而建立驱动模块一般比建立桩模块容易,同时由于涉及到复 杂算法和真正输入输出的模块最先得到组装和测试,可以把最 容易出问题的部分在早期解决。此外自底向上增殖的方式可以实 施多个模块的并行测试。 有鉴于此,通常是把以上两种方式结合起来进行组装和测试。 衍变的自顶向下的增殖测试:它的基本思想是强化对 输入输出模块和引入新算法模块的测试,并自底向上 组装成为功能相当完整且相对独立的子系统,然后由主 模块开始自顶向下进行增殖测试。 自底向上一自顶向下的增殖测试:它首先对含读操作 的子系统自底向上直至根结点模块进行组装和测试,然 后对含写操作的子系统做自顶向下的组装与测试。 回归测试:这种方式采取自顶向下的方式测试被修改 的模块及其子模块,然后将这一部分视为予系统,再自 底向上测试,以检查该子系统与其上级模块的接口是否 适配。 ( 3 ) 确认测试 确认测试又称有效性测试。它的任务是验证软件的有效性, 即验证软件的功能和性能及其它特性是否与用户的要求一致。在 北方交通大学硕士毕业论史 软件需求规格说明书描述了全部用户可见的软件属性,其中有一 节叫做有效性准则,它包含的信息就是软件确认测试的基础。 在确认测试阶段需要做的工作如图2 3 所示。首先要进行有 效性测试以及软件配置复审,然后进行验收测试和安装测试,在 通过了专家鉴定之后,才能成为可交付的软件。 l 羔塑塑l 图2 3 确认测试的步骤 呻0 詈 进行有效性测试( 功能测试) 有效性测试是在模拟的环境( 可能就是开发的环境) 下,运用 黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的 需求。为此,需要首先制定测试计划,规定要做测试的种类。还 需要制定一组测试步骤,描述具体的测试用例。通过实施预定的 测试计划和测试步骤,确定软件的特性是否与需求相符,确保所 有的软件功能需求都能得到满足,所有的软件性能需求都能达到, 所有的文档都是正确且便于使用。同时,对其它软件需求,例如 可移植性、兼容性、出错自动恢复、可维护性等,也都要进行测 试,确认是否满足。 软件配置复查 软件配置复查的目的是保证软件配置的所有成分都齐全,各方 面的质量都符合要求,具有维护阶段所必需的细节,而且已经编 排好分类的目录。 除了按合同规定的内容和要求,由人工审查软件配置之外,在 确认测试的过程中,应当严格遵守用户手册和操作手册中规定的 使用步骤,以便检查这些文档资料的完整性和正确性。必须仔细 北方交通大学硕士毕业论支 己录发现的遗漏和错误,并且适当地补充和改正。 验收测试 在通过了系统的有效性测试及软件配置审查之后,就应开始系 统的验收测试。验收测试是以用户为主的测试。软件开发人员和 q a ( 质量保证) 人员也应参加。由用户参加设计测试用例,使用 用户界面输入测试数据,并分析测试的输出结果。一般使用生产 中的实际数据进行测试。在测试过程中,除了考虑软件的功能和 性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢 复功能等进行确认。 q 测试和b 测试 在软件交付使用之后,用户将如何实际使用程序,对于开发者 来说是无法预测的。因为用户在使用过程中常常会发生对使用方 法的误解、异常的数据组合、以及产生对某些用户来说似乎是清 晰的但对另一些用户来说却难以理解的输出等等。 如果软件是为多个用户开发的产品的时侯,让每个用户逐个执 行正式的验收测试是不切实际的。很多软件产品生产者采用一种 称之为a 测试和1 3 测试的测试方法,以发现可能只有最终用户才 能发现的错误。 a 测试是由一个用户在开发环境下进行的测试,也可以是公司 内部的用户在模拟实际操作环境下进行的测试。这是在受控制的 环境下进行的测试。q 测试的目的是评价软件产品的f u r p s ( 即 功能、可使用性、可靠性、性能和支持) 。尤其注重产品的界面和 特色。n 测试人员是除开产品开发人员之外酋先见到产品的人, 他们提出的功能和修改意见是特别有价值的。a 测试可以从软件 产品编码结束之时开始,或在模块( 子系统) 测试完成之后开始, 也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再 开始。有关的手册( 草稿) 等应事先准备好。 1 3 测试是由软件的多个用户在一个或多个用户的实际使用环 境下进行的测试。与。测试不同的是,开发者通常不在测试现场。 因而,1 3 测试是在开发者无法控制的环境下进行的软件现场应用。 在b 测试中,由用户记下遇到的所有问题,包括真实的以及主观 认定的,定期向开发者报告,开发者在综合用户的报告之后,做 出修改,最后将软件产品交付给全体用户使用。1 3 测试主要衡量 产品的f u r p s 。着重于产品的支持性,包括文档、客户培训和支 持产品生产能力。只有当a 测试达到一定的可靠程度时,才能开 始b 测试。由于它处在整个测试的最后阶段,不能指望这时发现 北方交通大学顺士毕业论文 主要问题。同时,产品的所有手册文本也应该在此阶段完全定稿。 由于b 测试的主要目标是测试可支持性,所以b 测试应尽可能由 主持产品发行的人员来管理。 ( 4 ) 系统测试 所谓系统测试,是将通过确认测试的软件,作为整个基于计算 机系统的一个元素,与计算机硬件、外设、某些支持软件、数据 和人员等其它系统元素结合在一起,在实际运行( 使用) 环境下, 对计算机系统进行一系列的组装测试和确认测试。 系统测试的目的在于通过与系统的需求定义作比较,发现软件 与系统定义不符合或与之矛盾的地方。系统测试的测试用例应根 据需求分析规格说明来设计,并在实际使用环境下来运行。 目2 4 软件测试在本论文中的具体实现 在蓝芽互连测试仪的实现中,处处都体现和贯彻了软件测试 的思想,在这些软件测试的科学理论指导下,做出的产品才科学 和合理。 具体来说,在测试仪在测试过程中的作用和测试仪自身的测 试和发布等过程中,大量使用软件测试的思想和理论。 蛇4 1协议测试仪的设计思想 顾名思义,蓝芽协议互连测试仪就是用来测试基于蓝芽协议 的产品在互连方面的性能。具体来说,该测试仪产品面向的服务 对象是有能力生产蓝芽协议拽以及基于这些协议栈的终端产品的 厂商,包括松下,东芝,三星,等许多厂商。 目前的蓝芽协议是以自然语言描述的文本,实现者对于协议 文本的不同理解以及实现过程中的非形式化因素都会导致不同的 协议实现,有时甚至是错误的协议实现。即便协议实现正确,也 不能保证不同的实现彼此之间能够准确无误地通信,而且同一协 议的不同实现其性能也有差别。在这种情况下,需要一种有效的 方法对协议实现进行评价,这就是“协议测试”。 协议测试是一种黑盒测试,它按照协议标准,通过控制观察 被测协议实现的外部行为对其进行评价。互操作性测试关注的是 对于同一个协议标准,不同胁议实现之间的互连通问题。 2 0 j ! 塑窒望查堂堡主兰、业丝墨一 互连测试仪力图要提供给用户一种方式,对用户厂家的蓝芽 产品进行自动测试,由于用户厂家的产品内部实现是多种多样、 不透明的,而蓝芽产品对外的接口相应特性是固定不变的,因而 决定了测试仪只能采用黑盒测试方法,主要对用户厂商产品进行 测试过程中的确认测试,验证用户产品的互连性能是否和蓝芽标 准规范的要求一致。 本测试仪的具体实现是在协议栈的基础上,按照各个模块, 封装各种接口,然后用自动化测试仪的设计方法,在上层通过统 一的用户界面进行操作执行,调用实现好的测试用例,对用户产 品进行互连测试。 具体来说,对于一个待测产品,测试仪模拟其欲连接的产品 对其发出各种蓝芽协议规定的各种互连操作,包括合理的和不合 理的各种操作顺序和数据,记录其执行结果,并由分析仪( 另外 一个产品) 分析出出错原因一可具体到协议实现数据包。这样待 测产品可得到很综合全面的测试。 在测试的时候,用户可单个执行也可连续执行预先设计好的 测试用例,这些测试用例由s i g 组织推出,具有统一标准性。可 以对该用户产品进行全方位的测试。 眩4 2 协议测试仪自身的测试和发布 测试仪作为一个测试工具,其作用是为待测产品提供一种测试手 段,但其本身也是一个软件,在开发到发布产品化的过程中,也 必须运用软件测试的方法,对其进行一系列的测试,以保证软件 的合乎要求性和鲁棒性。 由于该测试仪从底层协议栈到高层应用界面实现全部由毕设所在 单位实现,因而可以了解个部分的具体实现细节,在测试过程中 更多的采用了白盒测试的技术。根据设计方案规定的程序内部的 逻辑结构及有关信息,对程序所有逻辑路径进行测试。 测试过程分四个步骤:即单元测试、组装( 集成) 测试、确 认测试和系统测试。单元测试测试主要是对测试仪底层的协议栈 各个模块进行测试;组装测试主要是测试完整框架下产品的运行 情况;之后进行确认测试,着重在于其中的a 测试,在开发环境 下对某些产品进行测试,验证测试仪的功能实现。最后是系统测 试,在各种硬软件环境下( 软件包括w i n d o w s 9 8 2 0 0 0 x p n t 几种 操作系统,硬件包括台式机和笔记本) ,安装该测试仪,并和其他 蓝芽产品一同安装在同一机器上,以观察测试产品的系统特性。 2 北方交通大学硕士毕业论文 在测试由我实现的无绳电话和内部电话模块以及向上接口实现 时,在代码审查和结构测试方面花了相当大的时间和精力,确保 了单元实现的准确无误和强壮。 当然,在整个程序设计和测试过程中,也始终贯彻和使用到 了静态程序分析方法手段,其中包括: 夺桌前检查:主要是在程序通过编译之后进行单元测试设 计之前,对源代码进行分析,并写出相关文档; 夺代码评审:通过分析设计规格,进行讨论和检查,对程 序进行静态分析; 夺走查:以一定测试用例,来理清程序运行逻辑,对程序 逻辑和功能进行研究和确认。 酡5小结 本章简要介绍了软件测试的理论,并就软件测试的两种重要 方法进行了提纲挈领的介绍,包括对称黑盒测试体系和白盒测试 体系以及逮两种机制的在软件开发发布中的有机结合。本章对软 件测试的概括介绍为以后章节的测试仪的实现提供基础。 北方交通大学硕士毕业论殳 第三章软件测试自动化 软件测试应能有效的发现软件中的任何缺陷,同时软件测试 也应是高效的,尽可能占有时间少且开销小。 1 7 自动软件测试可 以大大减少测试开销,同时大大增加在有限时间内的测试。自动 测试可以在几分钟内完成,而相应的工作手工测试则需要几小时。 为实现高效的自动测试,必须有好的测试软件,这些是由经 验丰富的测试人员精心设计的。在此基础上再使用自动化技术实 现自动测试,这样可以获得建立及维护的合理开销。【1 8 ,1 9 ,2 0 】 本论文研究的蓝芽互连协议测试仪就是这样的一个自动化测 试仪,特别在需求分析过程中,基本上以软件测试自动化的思想 将抽象的用户需求转化成具体的软件开发目标的,因此本章具体 介绍了软件测试自动化理论并做了分析。 9 3 1 测试自动化的概念和内容 自动测试和测试是不一样的概念,自动化的程度与测试的质 量是独立的。自动测试只对测试的经济性和修改性有影响,对于 大规模的同类测试,自动测试通常比手工测试经济得多,其开销 只是手工测试的一小部分。在测试过程中,对测试执行和结果的 比较比测试设计更适合自动化。 蓝芽互连测试仪作为一个自动化测试工具,始终贯彻了测试 自动化的思想,本章将介绍和测试自动化相关的概念和技术,包 括测试过程自动化、测试脚本和自动比较等等。 ! t 3 2 测试过程自动化 理想情况下,测试开始于测试目标和测试策略的确立。测试策 略应满足测试目标的要求。项目的测试计划包括评估完成所有测 试的时间,测试活动安排以及资源分配,控制及跟踪整个测试过 程所需采取的活动。这些应该在项目开始前就实施,并贯穿整个 项目的开发过程。 整个测试过程可以分为以下五个部分。 北方交通夫学硕士毕业论文 互3 2 1 标识测试条件 测试条件是被测环境的描述。可以用不同的方法进行描述,如 简单的语言描述、表格或是流图形式。测试条件取决于所测试的 项目或事件,一个系统可以进行许多不同类型的测试,如功能测 试、安全测试等,所以可能有许多不同的测试条件。测试条件可 以利用前面所述的等价划分、边界值分析、因果图等测试技术来 较严格系统的确定。 8 3 2 2 设计测试事例 测试事例( t e s tc a s e ) 是按一定顺序执行的与测试目标相关的 一系列测试。测试事例设计将产生许多测试所包括的输入值、期 望结果及其他任何运行测试的有关信息,如环境要求。期望输出 包括应输入或建立的内容、应修改或更新的内容或应删除的内容。 期望输出可以是一个很大的集合。 f 1 3 2 3 建立测试事例 测试事例包括准备测试脚本、测试输入、测试数据以及期望输 出。测试脚本( t e s ts c r i p t ) 是具有正规语法的数据和指令的集合, 在测试执行自动工具使用中,通常以文件形式保存。个测试脚 本可以实现一个或多个测试事例,导航、建立或撤消过程以及验 证等。测试脚本可以手工也可以不是手工执行( 一个手工测试脚 本就是一个测试过程( t e s t p r o c e d u r e ) ) 。测试期望输入和输出可以 包括在脚本中,也可以是脚本外的一个文件或数据库。 目3 2 4 执行测试事例 在被测软件运行时使用测试事例。对于手工测试来说,测试者 按事先准备好的手工过程进行测试。测试者输入数据,观察输出、 记录发现的问题。对于自动测试,可能只需启动测试工具,并告 诉工具执行那些测试事例。 量3 2 5 将测试结果与期望输出相比较 应该对每次测试的实际输出进行分析研究,判断软件功能是否 正确。这种验证可以是非正式的测试者主观判断,也可以是将实 际输出与期望输出进行严格准确的比较。一些信息比较,可以在 执行测试时显示在屏幕上。另一些输出比较,如修改数据库记录, 北方交通大学硕士毕业论史 只能在测试执行结束后进行。自动测试一般结合了这两种方法。 一般情况下,如果实际输出与期望输出致,则软件通过测试。 如果不一致,有可能是软件不正确,或是运行测试的顺序不对, 或期望输出的结果不正确,或测试环境设置不正确,或测试定义 不正确。 比较和验证是有区别的:工具可能具有比较功能,但不具有验 证功能。工具可以将一系列测试结果和另外一些结果相比较,但 不能断定结果是否正确。这种验证活动通常要靠测试人员来完成。 9 3 2 6 适合自动化的活动 如上所述,标识测试条件和设计测试事例主要是智力活动,而 且般只进行次;执行测试事例和比较测试输出是比较机械的 活动,要重复很多次。所以后者更适合自动化。例如,测试发现 软件有错误,软件修改后要重新执行测试和比较( 也可能包括测 试建立) ,也就是通常所说的回归测试。如果是由于环境原因如使 用了不正确的测试数据导致测试失败,则需要重新执行测试建立、 执行和比较活动。如果在不同平台运行测试,每个平台都要重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年职业安全健康管理师考试题及答案
- 2025年机械工程师资格认证考试试卷及答案
- 2025年外语翻译资格考试试卷及答案指南
- 2025年电信工程与技术应用考试卷及答案
- 城市综合体户外广告位租赁及广告发布合同
- 档案馆数字化设备租赁与升级改造服务协议
- 电力设施安装补充协议
- 互动式网络广告投放效果评估合同
- 法拍房交易权利瑕疵鉴定与风险控制合同
- 电视剧群众演员招募与角色扮演培训协议
- 《家具设计》课件
- 任务一淘米(教学课件)一年级下册劳动技术(人美版)
- 门头承包合同协议书范本
- 2024年江西省高考化学试卷(真题+答案)
- 高压开关柜基础知识培训课件
- 企业临时用工合同范本(5篇)
- 质量三体系课件
- 卡介苗的接种课件
- 沥青路面设计说明
- 路基路面平整度试验检测记录表(三米直尺法)
- 60kv变电站电气部分设计
评论
0/150
提交评论