已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着网络应用的快速增长,用户对通信系统提出了快速、支持多业务并发和 支持多协议的要求,致使现代通信设备中的嵌入式系统十分复杂。针对3 g b s s 软 件系统的模块测试、集成测试以及系统级测试,构造一个有效的集成测试环境, 提供一个自动化测试工具服务予测试。测试人员利用测试工具可以便捷的编写测 试用例并进行执行。测试工具的出现使的测试人员的注意力从测试转移到高质量 测试用例的编写焦点上,可以大大提高测试效率;此外,测试工具还可以方便的 模拟大量并发业务,这也是现有人力测试所难以达到的。 本论文针对b s s 基站软件系统,介绍基站自动化集成测试工具平台的设计与 实现。测试工具支持c 语言源文件与头文件的扫描分析,构造消息库;辅佐用户 快速创建和设计测试用例,针对不同的测试用例不用重复编译源程序就可以直接 转换为用例二进制文件;内置的小型虚拟机既可以在n t 平台上运行也可以在前台 嵌入式平台上运行,可移植性强。 作者在整个项目中主要负责测试用例转换模块、通信模块和x m l 解析模块的 设计与实现工作。通信模块是底层模块,服务于多个上层子系统;x m l 转换模块 用于与o m c 对接时提供对关键字操作接口;用例转换模块是核心模块,用于将用 例文本文件翻译转换为二进制文件,供执行器执行。本论文将详细介绍几个核心 模块的设计与实现,此外,在介绍正常流程测试的同时,还附带介绍部分异常测 试的内容以及异常测试效果的分析。 关键词:测试工具、嵌入式操作系统、基站、虚拟机、可移植性 a b s t r a c t a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to ft h en e t w o r k a p p l i c a t i o n ,t h ec o m m u n i c a t i o ns y s t e m i sr e q u i r e dt ob ef a s t e r , t os u p p o r tm u l t i - t a s ka n dm u l t i - p r o t o c o l s ,w h i c hi n c r e a s e st h e c o m p l e x i t yo ft h ee m b e d d e ds y s t e mo fm o d e mc o m m u n i c a t i o nd e v i c e s a c c o r d i n gt o t h em o d u l a rt e s t i n t e g r a t e dt e s ta n ds y s t e m a t i c a lt e s to f3 g b s ss o f t w a r es y s t e mt o c o n s t r u c ta l le f f e c t i v ei n t e g r a t e dt e s t i n ge n v i r o n m e n ta n dp r o v i d ea l la u t o m a t i ct e s t i n g t o o lt ot e s t t e s t e rc a nu s ei tt oc o m p i l ea n dc a r r yo u tt h et e s tc a s ec o n v e n i e n t l y t h i s t o o lc a nt r a n s f e rt h ep e o p l e sf o c u sf r o mt e s t i n gt oe d i t i n gh i g hq u a l i t yt e s tc a s e ,w h i c h c o u l di m p r o v et h et e s t i n ge f f i c i e n c yg r e a t l y b e s i d e s ,t h et o o lc a l ls i m u l a t eag r e a td e a l o fs u b s e q u e n to p e r a t i o n s ,w h i c hi sh a r dt ob e a c c o m p l i s h e d a c h i e v e dt h r o u g h m a n p o w e r i nv i e wo fb a s es t a t i o ns o f t w a r es y s t e m ,t h i sp a p e ri st oi n t r o d u c et h ed e s i g na n d i m p l e m e n to fa na u t o m a t i ci n t e g r a t e dt e s tt o o lp l a t f o r mw h i c hs u p p o r tt h es c a n n i n g a n a l y s i so fs o u r c ea n dh e a df i l ew h i c hc o d e db ycl a n g u a g ea n dt oc o n s t r u c tm e s s a g e d a t a b a s e i tc a l lh e l pu s e rt oc r e a t ea n dd e s i g nt e s tc a s ef a s t d e s p i t ed i f f e r e n tt e s tc a s e 9 t h ef i l ee a r lb ec h a n g e di n t ob i n a r yw i t h o u tr e p e t i t i o u sc o m p i l e do fs o u r c ep r o g r a m t h e s m a l lv i r t u a lm a c h i n ei n s i d ec a l lo p e r a t ei nn tp l a t f o r ma sw e l la si no u t e re m b e d d e d p l a t f o r m , w h i c hh a ss t r o n ga d a p t a b i l i t y i nt h i sw h o l e p r o j e c t ,ia mm a i n l yi nc h a r g eo ft e s t i n gc a s et r a n s f o r m a t i o nm o d u l e , c o m m u n i c a t i o nm o d u l ea n dx m l a n a l y s i sm o d u l e t h ec o m m u n i c a t i o nm o d u l es e i v e s m a n ya p p l i c a t i o n s x m lt r a n s f o r m a t i o nm o d u l ei s t o p r o v i d ek e y w o r do p e r a t i o n c o n n e c t i o nw i t ho m c t h ek e ym o d u l ei st h ec a s et r a n s f o r m a t i o nm o d u l e w h i c hc a n t r a n s f o r mt h ee x a m p l et e x tf i l ei n t ob i n a r yf i l ef o ra c t u a t o r t h i sp a p e rd e s c r i b e st h e d e s i g na n do p e r a t i o no ft h e s ek e ym o d u l e si nd e t a i l a l o n gw i t hs o m ea b n o r m a lt e s t i n g a n dt h ea n a l y s e so fi t se f f e c t k e y w o r d s :t e s tt o o l ,e m b e d d e do p e r a t i n gs y s t e m ,b a s es t a t i o n ,v i r t u a lm a c h i n e , a d a p t a b i l i t y 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:,莎吻 日期:印年月夕日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:多哆导师签名:钨k 日期:矽矽年,月夕日 第一章引言 1 1 历史背景 第一章 引言 7 0 年代以来,形成了软件生存期的概念,人们对于软件测试的认识开始广泛 而深刻了。这对于软件产品的质量保障以及组织好软件开发工具有着重要的意义。 把软件开发划分为各个阶段,对中间产品给出了若干个监控点,可以提高开发过 程的可见度,为各阶段实现目标的情况提供了检验的依据。 在软件测试理论迅速发展的同时,各种高级的软件测试方法也将软件测试技术 提高到了初期的原始方法无法比拟的高度叫。j c h u a n g 提出了程序插装( 1 r o g r a m h 略t u m e n t a t i 1 的概念,使得被测程序在保持原来逻辑完整性的基底上,插入”探测 仪”,以便获取程序的控制流和数据流信息,并可以得到测试的覆盖率1 。 w e h o w d e n 对路径测试进行了深入的研究,提出了系统功能测试及代数测试等概 念。 近年来,尽管软件测试技术有了长足的进步,但总的来说,仍然和软件开发实 践提出的要求有相当大的长距,测试手段的进展也远远没有达到令人满意的程度。 软件测试是软件开发过程中的一个必不可少的环节,同时测试手段的进展也相 对于软件开发很滞后。如何提高软件测试的效率,加快软件开发过程是摆在软件 系统开发者面前的一个难题。随着技术和理论的提高,一些测试工具逐渐问世。 近年来,对软件测试理论的研究和测试方法的探讨陷入困境后,人们的注意力更 多的转向了软件测试工具,促使测试工具进一步推陈出新。 1 2 国内外测试工具发展历史与现状 软件测试是保证软件质量的重要手段,它在整个软件开发过程中占据了将近一 半的时间和资源。要真正实现软件测试的工程化,其基础之一就是要有一大批支 持软件测试工程化的工具。引入测试工具带来的一个显著的好处就是可以提高工 作效率。测试验证过程中的一些固定的、重复性的工作,可以由测试工具来完成, 电子科技大学硕士学位论文 这样就使得测试人员有更多的时间来计划和设计测试用例,使测试进行的更加完 善;另外,测试是需要投入大量的时间和精力的,人工进行测试时,经常会犯一 些人为的错误,而工具的特点恰恰能够保证测试的准确性,防止人为疏忽造成的 错误;最后,有一些测试工作,人工进行是很困难的,有些是因为测试过程比较 复杂,有些是由于测试环境难以实现,例如b s s 大话务量呼叫测试。1 。通过测试 工具来模拟并发业务进行呼叫测试,达到在大话务量背景0 1 下进行b s s 系统软件 的测试目的是可行的。因此,软件测试工具对于实现软件测试的工程化来说至关 重要。在软件测试过程中合理的引入测试工具,能够加快测试进度,提高测试质 量,实现更快、更好的开发软件产品的目标。 软件测试工具,更为完整的名字应该是测试用例设计工具,是能帮助我们方便 快捷设计测试用例的软件工具。测试用例的设计本身是一项智力型活动,理论上 工具无法替代。但是仔细考虑一下我们就会发现,很多设计测试用例的原则、方 法是固定的,比如等价类划分、边界值分析、因果图等等,这些成熟的方法,很 适合通过软件工具来实现。 测试用例设计工具按照生成测试用例时数据输入内容的不同,可以分为:基于 程序代码的测试用例设计测试工具和基于需求说明的测试用例设计工具”】。 基于程序代码的测试用例设计工具是一种白盒测试工具。它读入程序代码文 件,通过分析代码的内部结构,产生测试的输入数据。这种工具一般应用在单元 测试中,针对的是函数、类这样的测试对象。由于这类工具和代码的联系非常紧 密,所以一种工具只能针对某一种编程语言。此外,基于代码测试工具只能产生 测试的输入数据,而不能产生输入数据后的预期结果,这个局限也是由这类工具 生成测试用例的机理所决定的。所以,基于程序代码的测试用例设计工具所生成 的测试用例,还不能称之为真正意义上的测试用例。不过即使这样,这种工具仍 然为我们设计单元测试的测试用例提供了方便。 基于需求说明的测试用例设计工具依据软件的需求说明,生成基于功能需求的 测试用例。这种工具所生成的测试用例既包括了测试输入数据,也包括预期结果, 是真正完整的测试用例。使用这种测试用例设计工具生成测试用例时,需要人工 事先将软件的功能需求转化为工具可以理解的文件格式,再以这个文件作为输入, 通过工具生成测试用例。在使用这种测试用例设计工具来生成测试用例时,需求 2 第一章引言 说明的质量是很重要的。由于这种测试用例设计工具是基于功能需求的,所以可 用来设计任何语言、任何平台的任何应用系统的测试用例。 白盒测试工具针对程序代码、程序结构、对象属性、类层次等进行测试,测试 中发现的缺陷可以定位到代码行、对象或者变量级别根据测试工具原理不同, 又可以分为静态测试工具和动态测试工具。静态测试工具对代码进行语法扫描, 找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调 用关系图等。它直接对代码进行分析,不需要运行代码,也不需要对代码进行编 译链接、生成可执行文件。静态测试工具的代表有t e l e l o g i c 公司的l o g i s c o p e 软件、p r 公司的p r q a 软件。动态测试工具与静态测试工具不同,需要运行实际 被测系统,并且设置断点,向代码生成的可执行文件中插入一些监测代码( 对被测 对象进行插装操作) ,掌握断点这一时刻程序运行数据( 对象属性、变量的值等) 。 动态测试工具的代表有c o m p u w a r e 公司的d e v p a r t n e r 软件、r a t i o n a l 公司的 p u r i f y 系列。单元测试工具多属于白盒测试工具。 黑盒测试工具适用于系统功能测试和性能测试,包括功能测试工具、负载测试 工具、性能测试工具等。黑盒测试工具的一般原理是利用脚本的录带1 ( r e c o r d ) 、 回放( p l a y b a c k ) ,模拟用户的操作,然后将被测对象的输出记录下来同预先给定 的标准结果进行比较。黑盒测试工具可以大大减轻黑盒测试的工作量,在迭代开 发的过程中,能够很好的进行回归测试。黑盒测试工具的代表有r a t i o n a l 公司的 t e a m t e s t 、r o b o t 、c o m p u w a r e 公司的q a c e n t e r 。另外,专用于性能测试的 工具包括r a d v i e w 公司的w e b l o a d 、m i c r o s o f t 公司的w e b s t r e s s 等等工具。 除了上面所说的两类主要测试工具之外,还有测试管理工具。此类工具负责对 测试计划、测试用例、测试实施进行管理、对产品缺陷跟踪管理、产品特性进行 管理等。测试管理工具的代表有r a t i o n a l 公司的t e s tm a n a g e r 、c o m p u r e w a r e 公司的t r a c k r e c o r d 等软件。 最后,还有些专用的测试工具,例如针对数据库测试的t e s t b y t e s 、对应用 性能进行优化的e c o s c o p e 等工具。 运行于嵌入式实时操作系统v x w o r k s 之上的3 gb s s 软件系统架构庞大,业 务逻辑复杂,与通用软件相比存在很大的差异。从众多的软件测试工具中挑一个 3 电子科技大学硕士学位论文 适合业务测试的工具0 3 来进行3 g 业务测试比较困难。虽然我们可以选择一些很成 熟的商用测试软件来进行某些方面的测试,例如使用p c l i n t 进行代码检查、使用 c + + t e s t 进行代码进行函数、类等单元级别测试,使用l o g i s c o p e 进行代码分 析、软件测试、覆盖测试等等,但是对于自身提供的业务测试,这些商用测试工 具都彳亍之无效或者说效果很差。针对3 gb s s 系统软件部分进行单元、集成以及 系统级别的测试的需要,考虑采用一种合适的集成测试工具对3 gb s s 基站软件 系统进行功能测试,提高测试效率。集成测试工具构造的原则就是让尽可能多的 非本质或者重复性工作都由测试工具来完成,以降低测试人员的负担,使之能将 更多的精力放在软件的认识和高质量测试用例的设计与编写之上。 1 3 论文研究的内容组织、实际工作 3 gb s s 基站软件系统集成测试工具适用于进程消息交互、函数测试、业务流 程模拟和系统功能测试。此外,借助于集成测试工具,开发人员和测试人员可以 进行模块的单调和多模块联调。集成测试工具可以在单枫以及带有t a r g e t 的目标 板的模式下运行,使用起来非常方便。集成测试工具由两部分组成:h o s t 端与 t a r g e t 端,也常常称之为后台和前台。一个完整的测试环境由前台、后台以及相 关文件等组成。本集成测试工具阻黑盒测试为模型,根据不同的测试特点分为两 种类型:一致性测试和稳健性测试。集成测试工具并不能自动生成测试用例,只 是起到快速生成测试用例以及执行测试用例的作用。其最大的特点就是:自动扫 描消息结构、快速脚本编辑测试用例、动态生成测试用例流程、测试用例的前后 台执行等。 本人的具体工作包括: 熟悉c d m a3 g b s s 系统软件总体构架和各个组成模块的功能、接口设 计以及几种基本的业务处理流程,完成对被钡4 对象的熟悉和了解; 用例转换模块的设计与实现; 与用例执行模块的协调; 通讯模块的设计与实现; x m l 解析模块的设计与实现; 4 第一章引言 其中用例转换模块是两大核心模块之一,在第三章会将它作为专题来介绍其设 计与实现细节;通信模块和x m i 解析模块作为通用模块,独立性强,可移植性好, 在第五章将给出相关的介绍。 集成测试工具的设计和实现需要有对软件测试技术、程序设计技术、嵌入式系 统原理、c d m ab s s 业务等等相当熟悉和了解才行,工具的开发凭一人之力是不 可行的。在项目团队中,本人主要负责下面的几个模块:解释器模块、底层通信 模块、x m l 解析模块以及执行器协调工作。其中解释器模块和执行器模块随后将 作为本论文重点内容进行介绍。 1 4 论文结构组织 第一章对当前国内外软件测试技术、软件测试工具进行分析比较,并明确了本 论文的主要工作以及本人在项目中所完成的工作; 第二章对b s s 系统架构、集成测试工具的系统架构和组成模块进行介绍; 第三章对用例转化模块的设计与实现进行详细的介绍; 第四章对用例执行模块的设计与实现进行详细的介绍; 第五章对工具的其它模块进行介绍; 第六章给出了测试工具的实际报告,对于一致性测试和稳定性测试,分别给出 了一个使用范例。 第七章对全文进行了总结,强调本集成测试工具的实际使用评估、创新点以及 应用前景:同时对工具的局限性进行说明。 用例转换模块和用例执行模块是本测试工具的两个核心模块,在第三章、第四 章将对它们的设计与实现进行详细的介绍,对其中用到的一些关键技术也予以详 细的说明。 5 电子科技大学硕士学位论文 第二章测试工具系统架构 b s s 集成测试工具针对3 gc d m a 2 0 0 0 通讯系统“4 的基站部分进彳亍测试。通 过编写不同的测试用例,对基站的模块、子系统甚至整个系统进行一致性测试和 稳定性测试。利用集成测试工具来进行单元测试或者集成测试,可以尽可能早的 将问题暴露出来,大大提高编写软件的质量和效率。 2 13 g b s s 系统架构 从物理结构上看:基站系统b s s “”包括基站收发信机b t s 和基站控制器b s c 两部分。b t s 是基站的核心部分,里面包括了空中口的编解码、基带处理模块和 射频单元。b s c 是基站控制器,一个b s c 下面可以挂接多个b t s ,每个b t s 都 归属一个b s c 进行管理。基站系统b s s 在c d m a 移动通信系统中的位置如图2 - 1 所示: 图2 - 1 :3 g c d m a 系统分布图 在图2 1 中,中间的矩形区域就是基站系统。可以看到,多个b s c 可以互联, 6 第二章测试工具系统架构 这个在b s c 间发生软切换是很有用的。引入软切换之后,能够大大减小掉话几率, 提高通话质量。在基站的左侧是手机侧,同一个手机可以从多个b t s 接入,在上 图中只画了一条接入路线;在基站的右侧是交换侧,也称之为核心网“”部分。主 要有交换机m s c 、位置服务器h l r 和v l r 、数据服务器p d s n 等。 从逻辑结构上看,b s s 系统从大到小又分为:系统、子系统、模块和单元。 系统和子系统都是逻辑上的概念,是一定功能模块的集合。例如:通常将整个b t s 看作为一个系统,其下的b d s 和r f s 就是b t s 的子系统;模块对应于某项功能, 是功能实体单位,通常模块对应于实际的物理板,一个模块可能由分布在多个单 板上的实体来共同完成,也可能只运行在一块单板之上;单元是最小单位,直接 对应于物理单扳。有些特殊的单板,其下面可能还有索引号的概念,这个一般都 是针对资源板而言,索引号代表该板上的资源的索引。整个b s s 系统的物理组成 结构框架“”如图2 - 2 所示: b s s b l s l 厂 r f sb d s 厂 厂 r f c mt r x c c mc h m t c e b s c 厂 h i r s c p s i 。厂 c p mp a m 图2 - 2 :b s s 系统物理组成结构框架图 一系统 + 一子系统 + 一模块 + 一单元 c d m a 基站软件是c d m a 基站的控制主体,在功能上主要包括呼叫处理、移 动性管理、资源管理、网络通信和操作维护等。为了实现这些功能软件上分为支 撑软件子系统、信道软件子系统、业务开发子系统、操作维护子系统。为了支持 整个平台实现要求的系统功能,上面这些软件子系统会完成系统赋予它们的特定 功能。这些软件子系统的相互关系如图2 - 3 表示: 7 电子科技大学硕士学位论文 业务处理子系统( s p s ) 系统控制o a m 和网 子系统 管 ( s c s ) 子系统 d b 子系统 信令子系统承载子系统 ( d b s ) 操作系统子系统 内核 r o s s ) b s p & d r v e r 图2 - 3 各子系统相对关系图 操作系统( ,包括b s p 和d r i v e o m 作于3 g 统一平台的硬件之上、所有其它子系 统以下,对用户进程屏蔽所有的硬件细节,并提供进程调度、定时器、通信、内 存管理等方面的服务。操作系统子系统的核心是商用操作系统内核,在内核以上 是封装层,由封装层封装内核的系统调用并屏蔽对用户进程不必要的功能,封装 层向用户进程提供必要的原语和函数调用接口。支撑部分实现了基于单处理机的 进程调度、内存管理、设备管理、定时器管理、文件系统、基于多处理机的进程 通信、进程同步与互斥功能等模块。o s s 对底层进行了封装,屏蔽的底层的不同 硬件、不同的操作系统,对上提供统一的接口,供上层调用。从应用层来看,仿 佛是运行在一个虚拟的操作系统之上。因此,本文中以后如果没有特别申明的话, 凡是提到v o s 均是指对底层进行封装了的o s s 。 2 2 测试工具组成模块功能描述 b s s 集成测试工具在整个3 g 系统中占据一个重要的角色,可以说也是整个系 统的组成部分之一。对于每个版本的升级和新需求的完成,都需要对其进行相应 的功能性测试,与此同时还常常用于回归测试。b s s 集成测试工具所构建的环境 主要是用来进行软件系统的功能性测试,以黑盒测试为模型。根据不同的测试需 求和特点将其分为两个大的类型,一种是一致性测试;一种是稳健性测试。 8 第二章测试工具系统架构 一致性测试是指按照3 g p p 2 等协议、规范的要求设计测试用例,严格保证用 例内容的生成时序、逻辑取值关系,以确定的输入来激励被测对象,接收其输出 信息,并进行相应的鉴别,验证输出是否满足预定要求。而稳健性测试则是指以 任意( 随机) 的用例内容来激励被测对象,以验证被测对象是否能正常处理,始终处 于稳定的工作状态,这一测试类型包括了模拟消息发生器功能,即生成大量指定 消息或随机消息来冲击被测对象,验证其稳定性;稳健性测试通常又称之为异常 测试,与一致性测试相对立。稳健性测试通常是不按照正常规定里头的流程与被 测对象进行交互,以验证和测试系统的稳定性、抗干扰能力和安全性。稳健性测 试主要是模拟异常输入,使得被铡对象进入到异常分支的执行中去,对异常分支 的处理流程、处理过程进行测试。从功能角度来划分,测试工具可以划分为如下 几个模块:消息库模块、用例编辑模块、用例生成模块、用例执行模块、通讯模 块、x m l 解析模块。下面分别对每个模块进行简要的介绍。 2 2 1 消息库模块 消息库模块的功能主要是将测试用例中所用到的消息的名称,消息号,消息结 构名称和消息结构的具体组成以一定的格式在数据库中存储起来,并在其中建立 一定的关联关系,当用户在编写测试用例的时候,可以从数据库中调出其所需要 的消息的详细信息,辅佐测试人员编写测试用例。 2 2 2 用例编辑模块 用例生成模块负责从数据库接口模块取出消息的内容,通过消息构建模块以一 定的视图显示给用户,用户通过赋值模块对消息中的字段进行赋值。用户通过选 择并对相关消息赋值的操作,完成对于测试用例静态信息的选择;然后用户通过 相关的关键字和一定的书写格式以文本的方式编写测试用例的运行机制( 测试用例 的动态信息) 。存储模块以文本方式完成对于测试用例的静态、动态信息的存储。 2 2 3 用例生成模块 用例生成模块又称之为解释器模块,它和执行器一起构成了测试工具的核心部 分。解释器模块对编辑好的静态测试用例文件进行扫描,扫描测试用例中的动态 区信息,提取动态区中的各个有效符号t o k e n ,完成词法分析;对出现的脚本关键 字进行规则匹配。解释器将测试用例中的脚本关键字操作翻译成自定义指令格式, 9 皇重型垫查兰堡主兰垡笙苎 并且按照一定的格式进行存储。解释器模块的输入对象是测试用例文本文件,输 出是测试用例二进制文件。 解释器模块内部的处理是整个工具实现的重点和难点,尤其是内部关键字操作 处理模式、发生指令跳转时的处理、表达式的分析和处理等等。本人的工作重点 聚焦在此,在第三章将对其做深入的介绍。 2 2 4 用例执行模块 用例执行模块是和用例生成模块相匹配的。它必须知道用例生成模块构造操作 列表的布局详细信息和规则,只有这样才能正确的运行测试用例。用例执行模块 根据二进制区的信息,提取所要进行的操作,并根据操作提取所需的变量信息, 调用相应的操作处理函数,实现测试用例所定义的脚本关键字操作集合的功能。 此部分将在第四章做详细的介绍。 2 2 5 通信模块 前后台通信模块完成前后台软件模块之间收发消息的输送过程,由于前后台之 间使用网口通信,故此模块就是构建套接字进行数据流的发送与接收。它包括前 台部分及后台部分。对于它的实现可以利用基站系统中现有的前台通信模块接口, 即前台作为s e r v e r 端,后台作为c l i e n t 端进行连接通信。在其后的s t l 引入后, 通信模块进行了相应的改造,将s e i v e r 和c l i e n t 封装到一起,对外表现一个通信模 块类的抽象。 2 2 6x m l 解析模块 在引入s t l 之后,整个测试系统除了业务方面的测试工具还有操作维护中心 o m c 的测试工具。s t l 在与o m c 测试软件对接的时候,需要交互关键字信息。 关键字信息是以x m l 文件格式存储的。x m l 解析模块主要完成读取关键字信息 文件,按照关键字定义格式,提取关键字信息,提供接口供用例编辑模块使用。 与此同时,还提供相应的接口来对关键字信息的修改和更新。 2 2 7 辅助模块 在测试环境的前台部分专门有一个辅助环境模块,一方面实现公有数据、桩 第二章测试工具系统架构 模块的定义,另一方面则提供一个控制接口,以便同后台进行控制的交互。为了 提高此模块的通用一致性,将其做成一个模板,包括有公有数据区、桩模块区和 控制接口区,在不同的区域测试人员需要自己完成的代码量是不同的,公有数据 区和桩模块区基本上都是要由测试人员来编写,但是要符合规范;而控制接口区 则基本可通用,按类似的模式进行控制。 2 3 测试工具系统架构设计 嵌入式软件测试“”使用有效的测试策略可以使开发的效率最大化,避免目标 系统的瓶颈,节省昂贵的目标资源。自从出现高级语言,开发环境与最终运行环 境通常都是存在差异的,嵌入式系统更是如此。由于嵌入式系统c p u 的处理能力 不能和p c 机相比,甚至有些嵌入式系统用韵是芯片或者单片机之类的,为了不占 用目标对象运行资源,测试模式采用h o s t t a r g e t 测试或称之为c r o s s - t e s t i n g 。被 测对象运行在目标平台,测试工具运行在主机平台( p c 平台) 。采取h o s t t a r g e t 测 试模式有很多好处:测试软件不用和被测对象共同抢占c p u 和内存等资源;而且 目标平台往往都是比较稀少和昂贵的,而主机平台随处可见,因此可以大大降低 成本;此外,在目标平台上开发调试都很不太方便,测试工具开发和运行在主机 平台可以大大提供工具的开发效率。集成测试工具h t 测试模式如图2 4 所示: t a r g e t h o s t 囊搦蓑鬓 厂 f p c 卜- 一 l 后台 o s ( 雷o s s 支撑) 图2 4 集成测试工具h t 测试模式 在图2 - 4 中,按照模块运行物理位置分为两大块:前台和后台。前台也就是目 标平台,运行在嵌入式实时操作系统v x w o r k s 之上;后台也就是主机平台,h o s t 采用普通p c 机,运行w i n 2 0 0 0 系统。前台则是采用基站系统中合适的硬件单板 来构建t a r g e t 环境,前后台通过以太网通信。c o m m 为前台的通信转发模块,前 台中o s 部分指包含了o s s 支撑模块的嵌入式操作系统,也即是前面所说的v o s 。 3 g 平台所提供的平台支撑软件,为前台运行提供了基本的环境。由于进程是可以 1 l 电子科技大学硕士学位论文 由o s 平台直接驱动的,于是被测软件模块s u t 直接位于o s 之上运行。此外辅 助模块的作用是在s u t 运行时管理公有数据区及为s l i t 打桩,不同的s u t 就有 不同的辅助模块。整个测试工具的系统框架如图2 - 5 所示: 后台 s e r v e ric u e n t 前台 i 图2 - 5 软件系统框架图 图2 - 5 并未包括o s 操作系统层,此部分是前台业务代码运行的支撑平台,具 体的参见图2 - 4 。前台部分划分为被测对象s l i t 、辅助环境模块及前后台通信的前 台模块( f c o m m ) ;后台部分则分为s e r v e r 端与c l i e n t 端,在s e w e r 上保存着一个 集中的消息库模块,供测试人员所在的c l i e n t 端访问,c l i e n t 上则包括有用例生成 模块、用例运行模块、环境生成模块和环境控制模块,另外还包括转化模块和前 第二章测试工具系统架构 后台通信的后台模块( b c o m m ) 。 2 4 测试工具处理流程 在2 3 节给出了测试工具的系统框架图,为了更好的理解测试工具的运作方 式,这里从用户使用的角度来说明系统的处理流程,从而体现在整个测试过程中 测试工具所能完成的工作、测试人员所要完成的工作。 在正式说明测试工具的工作流程之前,先对测试人员前期要做的工作进行一 个描述。首先,测试人员在对被测对象进行代码级的熟悉之后,要明确描绘出它 的调用视图,即被测对象中哪些是访问的公有数据,哪些是调用其它模块的接口 函数,从中确定哪些需要在构建测试时用于辅助环境中,进行模拟、控制,这是 设计辅助环境的过程;接下再根据被测对象的功能流程来设计测试用例,这也是 测试人员最关注的部分。以上应该是测试人员的精力所在,这些内容依赖于测试 者的设计水平,将最终决定测试的有效性。除此之外,还有需要说明的是,基站 系统中的原始软件代码在编写时有的地方需要按规范书写,以满足测试工具扫描 的要求;被测软件有些模块不要直接形成s u t ,还需要做一些适配工作。 软件系统中s e r v e r 端上的消息库模块应该是事先建好的,将消息的有关信息 存储在数据库中;当测试人员各自编制相应模块的测试用例时,就不用再关心消 息结构的生成问题了。一 首先介绍的是一致性测试下的使用过程。同测试人员直接交互的是c l i e n t 端, 在使用上它包括两个方面,一个是测试用例的构建与运行,一个是辅助环境的设 置与控制。对于测试用例的初次构建,c l i e n t 端先连上s e r v e r ,将消息库中的消息 名按查询要求生成列表显示给用户,由测试人员从中选择测试用例中所要用到的 消息,然后到s e r v e r 上的消息库进行读取,得出各消息的定义及结构信息,转化 为本地测试用例文件的静态区内容( 文本形式) 存储,此时消息各字段的默认取值均 为零,最小,最大值为基本数据类型所允许的范围;接下来测试人员可以手工设置 消息各字段的取值,也可选择字段按步长变化的形式随不同测试循环而自动取值, 还可改动最小,最大取值范围。这些设置信息也都会保存在静态区中。 然后测试人员开始按用例设计的要求来组合消息序列,这一过程将由测试工 电子科技大学硕士学位论文 具定义一些基本的语法来表述用例运行的动态信息,按照运行属性的特点来顺序 描述,最终以文本的形式保存在测试用例文件的动态区,这些可以看成是脚本语 言,即在执行时不需要额外的编译过程,测试工具扫描后动态生成运行所需要的 信息,供控制执行模块使用。 之后要进行辅助环境的设计实现。在前台的辅助环境模块测试人员按照模板 的形式来编写代码,形成不同的区域;在后台,测试人员要将环境设置的信息用 类似测试用例的生成、保存方式来处理,先是输入一个按顺序定义各种数据名称 及类型的h 文件供测试工具扫描,以将这些数据的结构信息保存至环境用例的静 态区中,测试人员进一步对所定义的数据进行赋值,取值信息也存入文件;其后, 测试人员进行环境控制的信息录入,即需要将哪些数据从后台同步到前台,将哪 些数据从前台读至后台,这些内容将保存至环境用例的动态区中。 至此测试人员的设置工作已完成大半,当需要测试时,准备好前台,在后台 载入测试用例文件和环境用例文件,测试工具完成文本形式向二进制形式的转换, 之后即可由控制运行模块使用进行自动测试,测试过程由简单的开始、停止等命 令控制,测试执行中的运行信息将得到及时记录。 当进行稳健性测试时,其操作过程同上述基本相同,只是不用构建复杂的运 行信息,只需将消息的结构信息保存在用例文件中,甚至不需要动态区的内容, 由控制运行模块就可完成对指定消息随机消息的选取发送,不用考虑与被测对象 的交互。 2 5 本章总结 本论文主要讲述b s s 集成测试工具的设计与实现,为此,本章对3 gb s s 系 统软件架构以及各个组成部分进行了简单的总体性的介绍,使大家对被测对象、 测试环境有个粗略的了解。此外,对集成测试工具的架构、组成模块以及各模块 的功能也做了相应的介绍。 1 4 第三章用例转换模块的设计与实现 第三章用例转换模块的设计与实现 测试软件的一个重要的特点就是任意定制和随时修改测试用例,借助用例生成 模块生成用例二进制文件,作为用例运行模块的输入,在自身的激励下开始用例 动态区中操作集合的执行。修改测试用例不需要重新编译就可以直接生成用例可 执行文件,这样可以大大节省编译测试用例的时间,提高测试效率。同时,将测 试用例的外部表现形式和内在的表现形式区分开来,相当于将源文件和可执行应 用程序分隔开来一样,降低模块之间的耦合性。对于执行器来说,并不关心测试 用例的源程序,只需要输入测试用例的可执行文件。 3 1 测试用f j l j - - 进制文件存储格式设计 用例生成模块通过扫描测试用例文本文件,提取相关的信息,生成测试用例 可执行文件的动态区和静态区以及其它的辅助信息,并按照合适的格式进行填充, 生成测试用例的二进制文件。在测试用例二进制文件中,包含了动态区、静态区、 消息名字区信息以及其它的辅助信息。在测试用例的文本文件中也有动态区和静 态区的概念,它们是相对应的。测试用例二进制文件结构如表3 - 1 所示: 表3 - 1 用例二进制文件结构 文件标志:4 b y t e 文本文件全路径:5 0 b y t e 动态区长度:4 b y t e 静态区长度:4 b y t e 消息名称i d 对应区长度:4 b y t e 动态区大小端标志:1 b y t e 静态区大小端标志:1 b y t e 备用:8 b y t e 动态区开始标志:4 b y t e 动态区 静态区标志:4 b y t e 静态区 消息名称i d 对应区开始标志:4 b y t e 消息名称i d 对应区 电子科技大学硕士学位论文 文件标志和文件全路径信息是为了之后的扩展使用。在目前阶段来说还没用 到。在二进制文件中,记录了静态区长度、动态区长度和消息名字i d 对应区长度, 用于读取文件中的动态区内容和静态区内容使用。消息名称与i d 对应区后台会使 用。每个区的开始表示是一样,设为:o x 0 0 0 0 0 0 0 0 。 在用例二进制文件中,有两个重要的区域:动态区和静态区。动态区是操作列 表集合,存放着测试用例中所有脚本关键字操作的操作列表相关信息;静态区用 于保存测试用例执行过程和被测对象交互过程中用到的消息的详细信息,包括消 息名、消息i d 、消息各个字段的取值、类型等。下面将分别介绍静态区和动态区 的布局设计。 3 1 1 静态区的存储结构和相关信息的生成 用例文本文件也有静态区的概念,不过和这里所说的用例二进制文件的静态区 不同。对于测试用例文本文件而言,其静态区是记录可能需要交互的消息的信息, 包括消息名、消息m 、结构名、消息长度以及消息中各个字段的详细信息。此静 态区中的消息可以利用用例编辑模块来快速生成;用例二进制文件中的静态区记 录的是用例操作过程中与被测对象交互消息的信息,首先两者消息信息记录的内 容不一样,例如:二进制文件静态区中消息不记录消息结构名;其次也是最关键 的,用例二进制文件中的静态区只记录在动态区的操作中出现过的消息,并非记 录用例文本文件静态区中的所有消息内容,而用例文本文件的静态区中的消息你 可以随意添加,即便这些消息你可能根本用不上。 3 1 1 1 用例二进制文件静态区存储结构 用例二进制文件中静态区需要记录在动态区中出现的每一条消息的详细信息, 包括静态区中所包含的消息的总数目、每个消息的消息头信息、消息体信息和离 散值信息。 由于静态区只记录所有消息的静态信息,所以不用引入域进来。为了简单和 存取方便,采取类似表格的方式来存储消息信息。首先需要记录静态区中的消息 数目,这个在遍历消息头时作为一个操作停止标志。此外,对每个消息都需要保 存消息头信息,用于根据消息d 来定位相应消息的消息体偏移位置。最后就是针 对每一条消息,在消息体内部保存消息的各个字段的详细信息,用例二进制文件 第三章用例转换模块的设计与实现 中静态区的存储格式如表3 - 2 所示: 表3 - 2 用例二进制文件静态区结构 消息总数( 1 b ) 消息i l d ( 4 b ) 消息1 实体长消息1 偏移 消息l p a r a 数 消息1 p a r a 区 度( 2 b )( 4 b )( 2 b )偏移( 4 b ) 消息n i d ( 4 8 1消息n 实体长 消息n 偏移消息n p a r a 数消息n p a r a 区 度( 2 b )( 4 1 3 )( 2 b )偏移( 4 b ) 消息1 实体 消息n 实体 消息1 p a r a l ( 2 8 8 1消息1 p a r a 2 ( 2 8 b )消息i p a r a n ( 2 8 8 1 p a r a l ( 2 8 b )p a r a 2 ( 2 8 b )p a r a n ( 2 8 8 1 离散值离散值离散值 3 1 1 2 用例二进制文件静态区信息的生成 。 用例二进制文件静态区中的消息信息是通过扫描测试用例文本文件的动态区, 结合用例文本文件的静态区信息来生成的,并非仅仅将测试用例文本文件中的静 态区中出现的所有消息信息提取出来。之所以这样处理主要是从节省系统资源的 角度出发以及在转换模块进行必要的检测处理。 测试用例文本文件中包含了所有可能会用到的消息的详细信息,当然,一些在 测试用例执行过程中可能根本就不会用到,此部分消息也可以添加到测试用例文 本文件的静态区中。考虑到将用例文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-湖南-湖南食品检验工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖南-湖南机械冷加工二级(技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖南-湖南假肢制作装配工三级(高级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖北-湖北水土保持工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖北-湖北农机驾驶维修工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-海南-海南热处理工三级(高级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-新疆-新疆计算机操作员一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-四川-四川林木种苗工二级(技师)历年参考题库含答案详解3套试卷
- 2026年11月小雪知识课堂 初雪与诗意生活
- 2026年9月教师节 教师的光荣使命
- 电商仓库拣货作业规范
- 期末综合模拟卷-2025-2026学年五年级数学下册(人教版)含答案
- 山东环保发展集团校招面笔试题及答案
- 2026年光大银行招聘考试题库与答案解析
- 大数据处理-第6章 图计算
- 内脚手架搭设专项方案
- 纤维艺术与编织
- 2026年湖南生物机电职业技术学院单招职业技能测试题库汇编
- 2025年度IT运维保障及系统故障清零工作总结
- 第25课《文言文二则:曹冲称象》课件 统编版语文六年级上册
- 四川省成都市锦江区嘉祥外国语学校2025-2026学年九年级上学期期中语文试题(含答案及解析)
评论
0/150
提交评论