(机械电子工程专业论文)移动通信终端软件自动化测试系统的研究与实现.pdf_第1页
(机械电子工程专业论文)移动通信终端软件自动化测试系统的研究与实现.pdf_第2页
(机械电子工程专业论文)移动通信终端软件自动化测试系统的研究与实现.pdf_第3页
(机械电子工程专业论文)移动通信终端软件自动化测试系统的研究与实现.pdf_第4页
(机械电子工程专业论文)移动通信终端软件自动化测试系统的研究与实现.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(机械电子工程专业论文)移动通信终端软件自动化测试系统的研究与实现.pdf.pdf 免费下载

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

文档简介

江苏大学硕士学位论文 摘要 随着现代信息科学技术的飞速发展,软件系统日益复杂,功能需 求不断提高。软件技术发展的同时对软件测试提出了新的要求,自动化 测试技术在软件测试中具有不可替代的重要作用。 由于移动通信终端软件系统的复杂性,应用环境的多变性和测试 需求的多样性,仅仅依靠以密集劳动为特征的传统手工测试,已经不 能满足快节奏的软件开发和测试需求。本文依据开放式系统互联参考 模型o s i ( o p e ns y s t e mi n t e r c o n n e c tr e f e r e n c em o d e l ) 的基本概念,设计 并实现了一套自动化测试系统a t e s t 。 论文首先讨论了软件测试技术的发展动向,分析了自动化测试技术 在软件测试中的重要性和必要性,指出了测试效率低、扩展性和可移 植性较差是目前软件测试系统中普遍存在的问题。 通过对o s i 参考模型特性的分析研究,指明了参考模型具有良好的 独立性和封装性,为系统的设计与实现,移植性和扩展性提供了理论 支持。基于o s i 参考模型的层次化机制,论文详细论述了移动通信终 端软件自动化测试系统a t e s t 的设计与实现。 系统运用了层层分离的设计思想,极大提高了系统的测试效率,可 靠性和稳定性。a t e s t 系统实现灵活,具有良好的扩展性和可移植性。 系统的设计特点,使得系统可以在作较少改动的情况下,满足新的测 试环境和测试需求,有效提高软件开发和测试效率。 对比手工测试,a t e s t 系统在移动通信终端软件的测试实践中取 得了令人满意的效果。 关键词:软件测试,自动化测试系统,开放式系统互联参考模型,层 次化机制,移动通信终端,a t e s t 系统 江苏大学硕士学位论文 w i t ht h e d e v e l o p m e n t o fi n f o r m a t i o ns c i e n c ea n dt e c h n o l o g y , c o m p l e x i t ya n df u n c t i o n a l i t yi nc o m p u t e rs y s t e ma r eh i g h e rt h a ne v e r , b r i n g i n ga b o u tt h en e e df o rm o r et h o r o u g hs o t t w a r et e s t i n g a u t o m a t e d s o f t w a r et e s t i n gp l a y sa na b s o l u t e l yn e c e s s a r i l yr o l ei ns o f t w a r et e s t i n g b e c a u s eo ft h ec o m p l e x i t y , t e s t i n ge n v i r o n m e n tr a n d o m i c i t ya n d t e s t i n gr e q u i r e m e n tv a r i e t y o ft h em o b i l ec o m m u n i c a t i o n st e r m i n a l e q u i p m e n ts o r w a r es y s t e m ,d e p e n d i n go no n l ym a n u a lt e s t i n g ,w h i c hi s f e a t u r e db yl a b o r - i n t e n s i v e ,c o u l dn o tm e e tt e s t i n gn e e d s a c c o r d i n gt ot h ee l e m e n t a r yt h e o r yo fo p e ns y s t e mi n t e r c o n n e c t r e f e r e n c em o d e lt h i st h e s i se x a m i n e sa na u t o m a t e ds o r w a r et e s t i n g s y s t e ma t e s tw h i c h i sd e s i g n e da n d i m p l e m e n t e d i nt h i sp a p e r , t h ed e v e l o p m e n tt r e n d so fs o f t w a r et e s t i n gw i l lb e d i s c u s s e d f i r s t l y a n da n a l y s e dt h e e s s e n t i a l i t y a n d n e c e s s i t y o ft h e t e c h n i q u eo fa u t o m a t e ds o f t w a r et e s t i n gi ns o t t w a r et e s t i n g i th a se x p o s e d p r o b l e m so fl o we f f i c i e n c y , b a de x p a n s i b i l i t y a n d t r a n s p l a n t a b i l i t yi n s o f t w a r et e s t i n g t h r o u g ht h ec h a r a c t e r i s t i ca n a l y s eo fo s ir e f e r e n c em o d e l ,i ts h o w sa g o o dp a c k a g ea n di n d e p e n d e n c ea n dp r o v i d eat h e o r ys u p p o r tf o rt h e s y s t e mw h i c hi sd e s i g n e do ni tw h i c hh a sa na d v a n t a g eo ff l e x i b i l i t y , e x p a n s i b i l i t ya n dt r a n s p l a n t a b i l i t y b a s e do nt h eh i b e r a r c h ym e c h a n i s mo f o s ir e f e r e n c em o d e l ,t h i st h e s i ss h o w sh o wt od e s i g na n di m p l e m e n tt h e a u t o m a t e ds o f t w a r et e s t i n gs y s t e ma t e s t b e c a u s eo ft h es e p a r a t i o no fe a c hf u n c t i o nl a y e r , i th i g h l yi m p r o v e s t h et e s t i n ge f f i c i e n c y , r e l i a b i l i t ya n ds t a b i l i t yo fa t e s t s y s t e mw h i c hh a sa g o o df l e x i b i l i t y , e x p a n s i b i l i t ya n dt r a n s p l a n t a b i l i t y i ft e s t i n gr q u i r ec h a n g e s , 江苏大学硕士学位论文 al i t t l em o d i f yc o u l dm a k et h es y s t e ma d a p tan e wt e s t i n ge n v i r o n m e n t w h i c hi n c r e a s e st h es o f t w a r ed e v e l o p m e n ta n dt e s t i n ge f f i c i e n c y a t e s ts y s t e mp e r f o r m a n c e sa ne x c e l l e n te f f e c ti nm o b i l ep h o n e s o f t w a r et e s t i n gw h i c hi sm o r ee f f i c i e n tt h a no n l ym a n u a lt e s t i n g k e y w o r d s :s o f t w a r et e s t i n g ,a u t o m a t e ds o f t w a r et e s t i n gs y s t e m ,o p e n s y s t e m i n t e r c o n n e c tr e f e r e n c e m o d e l ,h i b e r a r c h y m e c h a n i s m ,m o b i l ec o m m u n i c a t i o n st e r m i n a le q u i p m e n t , a t e s t s y s t e m i v 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权江苏大学可以将本学位论文的全部 内容或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 本学位论文属于 保密口,在年解密后适用本授权书。 不保密口。 学位论文作者签名:荟寸 07 年朋胗日 指导教师签名:z 为弓 u 7 年( l 月lj 曰 独创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中己注明引用的内容以外,本论 文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:拳产 日期:d 年上月肜目 江苏大学硕士学位论文 第一章绪论 1 1软件测试技术背景介绍 软件测试技术伴随着软件开发产生,是软件工程中不可或缺的重要组成部分。 在早期的软件开发过程中,测试的含义相对狭窄,即调试,软件测试的资源投入 极少,工作开展不及时。测试的目的仅仅是纠正软件已知缺陷,一般由软件开发 人员完成。 上世纪5 0 年代末,软件测试开始与调试区别开来,是指发现软件缺陷的活动, 但仍然落后于软件开发。测试的目的是确认所开发软件产品程序的正确性。 1 9 7 2 年,美国北卡罗来纳大学举行了首届软件测试会议,这是软件测试技术 发展的一个重要里程碑。1 9 7 9 年,g l e n f o r dm y e r s 作出了当时最先进的软件测试定 义:测试是为发现错误而执行的一个程序或者系统的过程。 到上世纪8 0 年代初,软件测试已经不再单纯是一个发现错误的过程,包含了 软件质量评价。专家们制定了行业标准,其中包括i e e e ( i n s t i t u t eo fe l e c t r i c a la n d e l e c t r o n i ce n g i n e e r s ) 标准、美 a n s i ( a m e r i c a nn a t i o n a ls t a n d a r di n s t i t u t e ) 标准以及 i s o ( i n t e r n a t i o n a ls t a n d a r do r g a n i z a t i o n ) 国际标准。i e e e 提出了的软件测试定义: 为了检验某个应用系统的过程是否满足规定的需求,并了解预期结果和实际结果 之间的差异,而使用手工和或自动化手段来运行并验证这一过程。1 9 8 3 年,b i l l h e t z e l 中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动。测试 是对软件质量的度量。软件测试的目的成为监测和排除缺陷,以确保软件产品在 可用性,功能性,可操作性等多方面满足软件需求。 从上世纪9 0 年开始,业界开始意识到被动的以监测和发现错误为目的的软件 测试无法避免软件开发过程中由于软件需求和设计等方面的缺陷所带来的巨大风 险,所以在整个产业界开始从软件质量控铝l j ( s q c ,s o f t w a r eq u a l i t yc o n t r 0 1 ) 开始转 移到软件质量保i 正( s q a ,s o f t w a r eq u a l i t ya s s u r a n c e ) ,从而使软件测试从单纯的缺 陷检测和发现覆盖到整个软件开发过程,同时软件测试的流程和软件测试技术也 发展成为了独立研究的方向。 2 0 0 2 年,r i c k 和s t e f a n 完善了软件测试定义:测试是为了度量和提高被测软件 江苏大学硕士学位论文 的质量,对测试件进行工程设计、实施和维护的整个生命周期过程。一个典型的 软件测试过程可以分为测试需求分析,测试设计,测试开发,测试执行,缺陷和 配置管理过程等许多个不同的阶段。软件测试的生命周期如图1 1 所示【1 1 。 开发生命周期 图1 1 软件测试的生命周期 测试专家总结归纳了测试模型【2 】,比如著名的v 模型、w 模型、r u p 模型等, 在测试过程改进方面提出了t m m ( t e s t a b i l i t ym a t u r i t ym o d e l ) ,t i m ( t e a i m p r o v e m e n tm o d e l ) ,t m m ( t e s t i n gm a t u r i t ym o d e l ) ,t p i ( t e s tp r o c e s si m p r o v e m e n t ) 等模型的概念,在单元测试、自动化测试、负载压力测试以及测试管理等方面也 涌现了大量优秀的软件测试工具,如i b m 的r a t i o n a l 系列套件、m e r c u r yi n t e r a c t i v e 系列套件等,这些工具技术以及经典论著对软件测试研究的理论化和体系化产生 了积极的影响。 1 2 软件自动化测试研究的意义 手工测试是建立在人工劳动基础上的一种测试方式,需要消耗大量的人力和 物力,效率较低且不能有力地保证测试结果的准确性。相比瀑布式开发过程,迭 代式开发过程具有相当的优势,并已逐渐取代了传统的瀑布开发成为目前最流行 的软件开发过程。迭代开发强调在较短的时间内发布多个可执行测试的软件版本, 意味着测试人员必须为每一次迭代生成的软件系统进行测试。软件测试周期缩短 了,测试频率增加了。在这种情况下,传统的手工测试已经难以满足软件开发的 需求:当第一个可测试的版本产生后,测试人员开始进行测试;很快第二个版本 2 江苏大学硕士学位论文 在第一个版本的技术基础上产生了,测试人员需要在第二次测试时重复前一次的 测试工作,还需要对新增加的功能进行测试验证。随着软件开发工作的逐步深入, 测试工作变得越来越繁重。使用手工测试方法,已经很难保证测试工作的质量和 进度。 我们发现,软件测试工作难度越来越高,传统的手工测试已经难以满足软件 测试的相关需求,急需一种新型的测试技术来保证软件测试的质量和效率。此时 自动化测试技术应运而生,它可以完成手工测试难以完成的复杂测试任务,并且 极大地提高软件测试效率,成为软件测试领域的一个最新发展方向。自动化测试 系统在测试实践中的应用势在必行。 目前,软件自动化测试领域的研究主要集中在动态测试自动化( 如单元测试、 功能测试以及性能测试) 以及软件测试流程自动化管理两个方面。在这两个领域 中,自动化测试相比手工测试具有明显的优势。首先自动化测试效率较高,这使 得测试人员可以更加专注于新测试模块的建立和开发,拓宽测试项目覆盖率;其 次,自动化测试便于测试资产的数字化管理,使测试资产在整个测试生命周期内 得以复用,这个特点在功能测试和回归测试中具有重要意义。 自动化测试可以在非工作日时段执行测试任务,如夜间和节假日,既提高了 测试效率,又缩短了测试周期。自动化测试的可重复性使其在相同的序列中可以 使用完全相同的输入进行重复测试,保证测试输入的条理性和一致性,而手工测 试则难以保证这些测试条件完全实现。采用自动化测试技术,能以最小的系统改 动代价实现全面测试。自动化测试技术减少了不必要的重复操作,测试任务越是 繁琐复杂,自动化测试技术的用武之地就越广阔。根据o p p e n h e i m e rf u n d s 的调查, 在2 0 0 1 年前后3 年中,全球范围内由于采用自动化测试技术,实现的投资回报率 高达1 5 0 0 。 1 3 论文的研究内容与研究意义 1 3 。1 论文研究的内容和意义 本文通过对软件自动化测试相关理论的研究,深入分析了o s i 参考模型的特 性,运用其基本概念,设计并实现了一套应用于移动通信终端软件测试的自动化 测试系统a t e s t 。本系统能够实现对移动通信终端软件功能环节和性能环节的测 江苏大学硕士学位论文 试,在实践应用中表现出了良好的测试性能。 基于o s i 参考模型层次化理念设计的a t e s t 系统性能稳定,测试结果可靠。 对比传统的手工测试,a t e s t 系统大幅度地提高了软件测试效率,缩短了软件测 试周期,有效地降低了研发测试人力和物力资源投入;对比常用的自动化测试系 统,a t e s t 系统具有设计实现灵活的特点,系统在较小的改动后,可以满足多样 的测试需求和多变的测试环境。 软件自动化测试技术的研究与应用具有较高的理论意义和现实意义。在软件工 程飞速发展的今天,软件功能日趋完善,结构越加复杂,这一切都对软件测试提 出了更高的要求。自动化测试技术的研究开发和普遍应用,既是对软件工程中软 件测试理论的丰富完善,又为用户能够使用高质量的软件产品提供了可靠保证。 1 3 2 论文章节内容安排 全文共分五章展开论述: 第一章绪论,介绍了软件测试技术的发展动向,阐述了开展自动化测试的重 要意义。 第二章介绍了软件测试的定义、测试准则和常见测试方法。 第三章首先讨论了目前软件自动化测试系统普遍存在的问题。然后引入了o s i 参考模型的基本概念,并针对其中的七个层次进行了全面系统的功能特性研究与 分析。最后介绍了a t 指令集合的相关概念、功能及其应用。 第四章详细叙述了自动化测试系统a t e s t 的设计与实现过程。通过将简化后 的o s i 参考模型层层展开,设计并实现了一套应用于移动通信终端软件的自动化测 试系统a t e s t ,并将系统用于测试实践中,给出并分析了系统测试结果。总结归 纳出基于o s i 参考模型设计实现的软件自动化测试系统具有良好的扩展性、可移植 性和设计实现灵活性,系统能够在较小的改动下,适应不同的测试需求。 第五章论文总结与展望。 4 江苏大学硕士学位论文 第二章软件自动化测试的相关理论研究 2 1软件测试 2 1 1 软件测试介绍 g m y e r s 【3 1 归纳了软件测试的定义:测试是为了更好的发现程序中的错误而执 行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; 成功的测试是发现了至今为止尚未发现的错误的测试。 下面,我们给出软件测试的注意准则:所有的测试都应该能追溯到用户的需 求;应该远在测试之前就制定出测试计划;把p a r e t o 原理【4 】应用到软件测试中;应 该从“小规模 测试开始,并逐步进行“大规模”模式;穷举测试不可能完全实 现;为了达到最佳测试效果,应该有独立的第三方从事测试工作。 2 1 2 软件测试常用方法 软件测试技术按照不同的实现方式可以分为以下类别: 1 、静态测试和动态测试【5 】 静态测试的主要特征是不运行被测试的程序,而是通过分析代码来检测程序 的正确性。进行静态测试的人员必须熟悉程序的结构、参数定义等,静态测试的 结果往往不能作为最终结果,还需要进行动态测试进行验证。动态测试与静态测 试相反,必须运行被测试的程序,通过输入测试用例j 分析测试结果,得出测试 结论。静态测试和动态测试是相辅相成的,通过静态测试可以比较细致的对代码 进行校验,通过动态测试则可以对软件运行的结果得到明确的结论,具有较强的 确定性。 2 、黑盒测试和白盒测试【6 】 黑盒测试( b l a c k b o xt e s t i n g ) 是基于软件的功能进行的测试,检查用户需求的 功能是否满足,并检查其中的错误。测试者把软件当作一个黑盒,完全不了解软 件的内部结构,站在用户的立场对软件预期实现的功能进行逐条测试,并测试软 件是否进行了预期之外的操作。 白盒测试( w h i t e b o xt e s t i n g ) 是基于产品的内部结构进行的测试,检查内部操 江苏大学硕士学位论文 作是否按规定执行,各部分是否被充分利用。测试者对软件的结构和代码相当熟 悉,测试的目的是尽量覆盖程序的每一个分支,在程序的不同点监测“程序的状 态以判定其实际状态是否和与其一致。 这两种测试方法的测试出发点不同,测试的效果是相辅相成的。黑盒测试的 优点是效率高和实用性强,缺点在于测试往往是不完全和不充分的;白盒测试的 优点在于能够对程序内部的特定部位进行覆盖测试,缺点是无法测出程序为实现 的功能。 3 、手动和自动 手工测试是指利用纯手工的方式执行所有的测试过程,完成测试的方法。它 是测试中最基础最原始的一种方式。 根据测试用例设计的周详与否,自动测试【7 1 方式可以分为3 种:a dh o c 澳l j 试, 无设计或文档化的测试用例;模糊的手工脚本,测试用例文档化,但说明不详细; 详细的手工脚本,说明了每个测试输入以及进行比较。用户测试过程大多属于其 中的一种或几种。 测试者可以没有周密的计划或测试列表,测试者边测试边想测试什么。测试 者的想法或操作没有留下记录或文档化,所作的测试不能重复。 模糊的手工脚本含有测试用例的描述,但不对输入和比较进行详细的说明。 相对比a d h o c 测试,模糊的手工脚本测试有很多优点:不同测试者根据相同的 脚本很可能会发现类似的缺陷;如果按照脚本执行,可以测试所有定义的条件; 可以检查测试事例;执行的有效性和效率比a dh o c i 9 1 1 试好。a dh o c 缺点在模糊手工 脚本中还是存在:没有精确的输入;不同的测试者执行相同脚本,测试结果可能 不一样;不能保证测试中出现的问题在下次测试中出现。模糊脚本执行的结果取 决于测试者对程序的理解程度,对于模糊的说法一定要有很明确的明白其含义。 详细的手工脚本测试包含准确的测试输入数据及相应得测试输出结果。所有 测试者必须严格按照脚本执行测试。这种方式与测试工具最接近,因此在此基础 上进行自动化测试最容易。这样的测试对测试者最是枯燥乏味,没有发挥创造性 的余地。 比较a dh o c 测试和模糊的手工脚本测试,其优点:测试者按照相同的脚本所执 行的测试完全相同;一般可再现暴露软件的缺陷;由于脚本给出了所有输入和期 6 江苏大学硕士学位论文 望输出的信息,实现自动化比较容易。 详细的手工脚本测试也有其缺点:建立脚本的成本高;冗余文本多;脚本的 工作操作的重复性差;脚本冗长,信息查找及维护困难;运行枯燥,不能发挥测 试者的主观能动性,而其容易发生错误。将详细手工脚本自动化,使测试者不必 将精力放在测试用例的设计质量上,而是集中在如何更好地进行自动化测试。测 试者不必非常了解测试用例,所有的测试信息已经文档化。 2 2 自动化测试技术 自动化测试是指使用软件工具来代替手工进行的一系列测试动作,从而验证 产品是否满足需求【8 】。自动化测试的目的是减轻手工测试的工作量,以达到节约测 试资源( 包括人力、物力等) ,提高测试效率,保证软件质量,缩短测试周期的效果。 自动化测试通常使用脚本或者其他代码驱动应用程序,实现底层函数的调用执行 测试工作。既可以通过通过直接命令的形式:由客户控制终端向测试终端发送测 试指令;也可以通过可视化的用户图形接e l g u i ( g r a p h i c a lu s e ri n t e r f a c e ) 来完成。 自动化测试技术按机制可以分为侵入式和非侵入式:侵入式测试技术采取某 种方式修改内部代码或者控制其运行环境;而非侵入式测试技术用于监视和检查 软件,而不修改软件内部结构或者代码。 自动化测试主要通过提供自动化系统的测试脚本实现对目标应用程序的测 试。测试脚本采用某种采用特定语言编写。既可以是简单的批处理命令,也可以 是相对复杂的类似于t c l 语言功能强大的脚本语言程序片段。对于自动化测试脚本 的生成研究i b m 的r a t i o n a l 系列工具 9 1 ,有效提高了测试效率。下面介绍测试脚本 常用的三种方式产生。 第一种方式是人工编辑测试脚本,与普通的编程原理类似,人工编辑测试脚 本就是采用某种特定的编程语言,编写一系列能够在特定环境和平台下运行的代 码( 如批处理脚本) ,然后运行这些代码,达到自动测试的目的。 第二种方式是采用测试工具利用面向对象的软件逆向工程技术自动产生测试 脚本,这种方式主要用于单元测试自动化技术中。对于采用面向对象方式设计的 目标应用程序,单元就是程序中的各个类,针对这些类的单元测试采用这种技术 生成测试脚本,首先要提供被测单元的源程序代码,在该代码单元内人工选择需 要测试的方法,产生一个或者多个测试脚本。 7 江苏大学硕士学位论文 第三种方式就是录制一回放脚本技术,这种方式属于大多数g u i 自动化测试工 具都使用的测试自动化技术,主要是由测试人员在测试工具平台环境下,手工对 目标应用程序进行一次用例测试,由测试工具记录下手工操作的步骤和对象,作 为测试脚本运用到以后的多次机械重复测试中去,以提高测试效率,减少重复测 试工作量。 2 3 常见自动化测试工具 自动化测试需要各种类型的自动化测试工具支持。现在市面上有各种软件调 试工具,包括i b m 的r a t i o n a l 系列、m e r c u r y 的m e r c u r yi n t e r a c t i v e s 系列x 8 1 、s e g u e 的s e g u es o f t w a r e 、c o m p u w a r e 的d e v p a r t n e r 系列和其他的工具,还有一些开发源代 码的测试工具,如a n t 、ju n i t 、p r o b e 和c a c t u s 等。 测试管理工具,代表的有i b mr a t i o n a l 公司的t e s tm a n a g e r ,m e r c u r y 公司q u a l i t y c e n t e r 的t e s td i r e c t o r 等软件。 白盒测试工具代表有t e l e l o g i c 公司的l o g i s c o p e 软件,p r 公司的p r q a 软件, m m 公司r a t i o n a l 的p u r i f yp l u s ,c o m p u w a r e 公司d e v p a r t n e r 。 黑盒测试工具代表有i b m 公司r a t i n a l 系列的r o b o t 和f u n c t i o n a lt e s t e r ( 原先的 x d e t e s t e r ) 以及m e r c u r y 公司的q u i c k t e s t p r o f e s s i n a l 和w i n r u n n e r 。 性能测试工具,性能测试工具的代表有m e r c u r y 公司的l o a dr u n n e r ,s e g u e 的 s i l kp e r f o r m e r 以及开源的a p a c h ej m e t e r 。 2 4 自动化测试的应用环境 表2 1 【1 伽描述了实施自动化测试的条件: 8 江苏大学硕士学位论文 表2 1 实施自动化测试参考 技术 描述备注 该测试工作通常是开发人员的职责,可 通过使用正式的自动化单元测试,不 单元测试以使用多种不同的测试方法,比如“测 仅能够帮助开发人员产出更加稳定的 组件测 试先行”它是一个测试框架,开发人员 代码,而且能够使软件的整体质量更 试 在编写代码前编写不同的单元测试,当 加良好。 测试通过时,代码也被完成了。 冒烟测试 冒烟测试一般是验证被测系统功能性 在构建过程中能够确保构建已经为测 构建版测试用例的集合。冒烟测试背后的思想 试做好准备时,冒烟测试通常是自动 本测试是确保基础是可以工作的,以便更深入 化进行的。 ( b v t ) 的测试工作开展。 这些类型的测试通常是系统开展更加 功能集这里的测试工作关注在验证不同的组复杂的测试工作的基础,大量的边缘 成测试件间的集成上。测试被合并以制造出不同的错误处理 测试。 系统测试这种测试是通过执行用户场景模拟真需要进自动化和人工交互使用的测试 测试用实用户使用系统以证明系统具有被期方式。安装测试,安全性测试通常是 例望的功能的测试。由手工完成的。 重复已经存在的测试。如果是手工完成 这里有完全使用自动化测试的潜力。 回归测试的话,这种项目只在项目的结尾执行少 能够在每次构建完成后,执行自动化 回归测试,以验证被测系统的改变是 数几次。 否影响了其它功能。 如果没有自动化测试工具,将无法通 性能测试包括负载测试,压力测试和并发测试过执行模拟高密度用户的负载实现的 高密集度的性能测试 我们进行分析发现测试频率高,重复性强的测试项,以及手工测试难以完成 测试项是自动化测试最有用武之地,体现其优点的地方。如果在软件开发早期的 单元测试中如果引入自动化,可以为软件的质量提供必要的保障。 表2 2 描述了手工测试和自动化测试的对比情况 9 江苏大学硕士学位论文 表2 2自动化测试和手工测试选用情况 使用自动化测试 使用手工测试 项目没有严格的时间压力;没有适当的测试过程; 具有良好的定义测试的策略和测试计划:知 没有一个测试什么,什么时候测试的清晰的 道要测试什么,知道什么时候测试;蓝图; 对于自动化测试拥有一个能够被识别的自刚加入项目组,并且还不是完全理解方案的 动化框架和候选者,能够确保多个测试运行功能性或设计组的项目成员或整个项目在时 的构建策略; 间的压力下; 多平台环境需要被测试;团队中没有自动化测试资源; 拥有运行测试的硬件;没有硬件 拥有关注在自动化测试过程上的资源; 被测试系统是可开展自动化测试的 2 5 自动化测试的优势 通过与手工测试的对比,我们总结出了自动化测试的优势。 1 、高效 引入自动测试能够用更有效的实现繁琐的手工测试项目,在有效的时间内完 成更多的测试工作,提高工作效率。 2 、准确程度高 对于一些测试项采用手工测试难以较好的实现。自动化测试却能完成准确地 执行这些测试项目。 3 、具有一致性和可重复性【1 2 1 由于每次自动化测试运行的脚本是相同的,所以可以进行重复的测试,使得 每次执行的测试输入和结果具有一致性的特点,很容易发现隐藏的软件缺陷。 4 、保证软件版本的质量 自动化测试能更准确高效的测试效果,从而更好地保障了软件产品的质量。 5 、后期对b u g 的维护费用低 自动化测试在前期的测试投入较高,但是测试系统一旦调试通过,稳定运行 后,那么在后继的工作中,对于b u g 费用的维护从常用的角度看,是远远低于单 纯的手工测试的。 1 0 江苏大学硕士学位论文 6 、使用培训费用低 手工测试需要对测试人员进行必要的培训。自动化测试系统在稳定运行后, 测试人员无需具备测试专业知识,只要能操作测试系统就可以了。 2 6 自动化测试的不足 当然,自动化测试也并非万能,所能完成的测试功能并非全部测试项目。 1 、不能完全取代手工测试 针对某些方面的测试项,例如如下列情况:涉及感观方面的测试。自动化测 试不能有效的取代手工测试来完成测试任务。 2 、对测试工具的质量的要求较高 自动化测试在测试工具上执行安装测试用例编写的程序的时候,其效果完全 取决于工具本身的质量。 3 、自动化测试可能会导致软件系统的不稳定 自动化测试的开展要牵扯到系统的底层代码,这就很可能会影响系统本身的 构架,甚至会破坏系统的稳定性。 4 、测试前期投入成本高 自动化测试正式投入使用前,需要大量的人力和物力资源,其在筹备和调试 阶段的投入远远高于手工测试。 2 7 自动化测试的设计准则 c h r i s t e rp e r s s o n 和n u ry i l m a z t u r k 在文献1 1 3 】中总结了自动化测试实施过程中会 遇到的风险,如表2 3 所示: 江苏大学硕士学位论文 表2 3 自动化测试会遇到的风险 编号描述 自动化测试在不成熟的组织中脱离控制一 a u t o m a t e dc h a o sy i e l d s p l f a s t e rc h a o s ” p 2 测试中完全的自动化代价非常昂贵而且不充分 p 3对不稳定测试对象的自动化测试,需求的变更导致了测试用例的变更 p 4 一次引入过量的测试用例会导致大量缺陷非常危险 p 5 测试规范不存在,脱离预先定义的测试规范而开发脚本非常费时 p 6 缺乏对测试环境和测试脚本的配置管理 p 7 缺乏缺陷跟踪机制一对测试对象,测试环境和测试脚本的缺陷没有支持的工具跟踪 p 8 对自动化测试的保守观点,特别是管理层 p 9 不充足或未知的自动化测试覆盖率 p 1 0 相对于大量的土作,测试执行重复执行率不够 p l l 对测试脚木没有引起与开发代码同等的重视,忽略自动化测试也是软件开发 p 1 2 捕获回放工具的不正确使用导致不好的测试脚本架构,尤其是硬编码问题 p 1 3 没有把自动化测试做为手工测试的补充 p 1 4 无法控制的用户界面变更导致大量的维护工作 p 1 5 没有清楚的测试策略,无人知道含义的测试代码 p 1 6 自动化测试需要比预计更多的人干预,例如测试结果的分析和脚本维护 p 1 7 相信自动化测试会减省人力,实际上,创建自动化测试需要比手工测试更多的资源 p 1 8 组织不理解自动化测试的概念,而作为奇迹相信 p 1 9使用的测试工具不支持所期望的功 p 2 0 组织实现了1 0 0 的测试自动化,然而却不等于更好的测试 p 2 l 认为自动化是迅速削减劳动力开支的重要手段 p 2 2 自动化测试开发小组技能不足,认为自动化测试小组不需要任何开发和测试技术 p 2 3 工具生成的报表可能会没有用处没有提供组织所关注的信息 p 2 4 关于工具使用的培训开始的太迟,事实上需要自动化测试大量的培训 p 2 5 工具对外加目标支持不足如识别第三方的问题 p 2 6 缺乏对测试开发的指导,危及了测试脚本可重用性、可重复性和维护性 p 2 7 过早的自动化经常导致不稳定的测试对象;而过迟的自动化发现缺陷太晚 p 2 8 误解了软件开发模型,在一个迭代周期中进行过多的变更引起自动化测试的问题 p 2 9缺乏对自动化与否的决策控制,错误的自动化导致无益的开销 p 3 0 缺乏基于测试的设计,导致测试对象不支持有效和稳定的测试 p 3 1 错误的或根本没有测试模块化设计,导致缺乏可重用性 p 3 2 测试和开发过度分离,没有或缺乏沟通 p 3 3 在项目早期没有或缺乏项目术 p 3 4缺乏关于手工或自动化测试的全局测试策略 1 2 江苏大学硕士学位论文 不合理的自动化测试设计有以下表现: 1 、缺乏时间 在测试任务和时间的压力下,测试人员很难把精力专注在实现自动化测试的 地方。 2 、缺乏明确的目标 自动化测试的优点,如节约时间,使测试更容易并且提高测试的覆盖率,也 可以帮助保持测试人员的动力。但是在同一时间里不可能做所有的事情。不同的 团体可能有不同的需求。需要确定测试任务的优先级。 3 、缺乏经验 尝试测试自己极限的初级开发人员经常会绊倒在测试自动化项目,造成的结 果是很难继续下去。 4 、人员周转率高 测试自动化是需要时间学习。但如果人员周转率太高,经验将很难积累和传递。 5 、疲倦的反映 测试本身是一项难度较高的任务,在经过多轮测试之后重新测试升级后的软 件,测试人员就可能会变得疲倦。 6 、不愿思考测试 许多测试人员认为自动化个产品比测试产品更有意思。一些自动化项目为 涉及测试提供了方便的借口,但测试工作量却没有带来多少成果。 7 、以技术为中心 自动化测试是与软件和硬件等技术切切相关的高难度的技术。但是这却导致 了不关注结果是否满足测试的需求。 2 8 本章小结 本章首先介绍软件测试的定义、测试准则和常见测试方法。然后针对软件的 自动化测试技术进行了详细地讨论分析:给出了软件自动化测试的定义,并对其 进行分类。介绍了自动化测试的应用环境;分析了自动化测试技术在软件测试中 所具备的优势及局限性及其设计原则。 江苏大学硕士学位论文 第三章o s l 参考模型性能分析及a t 指令介绍 软件自动化测试系统结构复杂,设计实现难度较大。一旦测试环境发生变化 时,测试系统就难以在新的测试环境中继续使用,这对自动化测试系统的设计与 实现提出了新的要求,系统不仅要求具备极高的测试效率,而且要具有良好的扩 展性和移植性性,以便在测试环境发生改变时随之进行调整,满足多变的测试环 境和多样的测试需求。 为了较好的解决目前测试系统中普遍存在的扩展性和可移植性较差的问题, 我们引入o s i 参考模型的概念。 开放系统k 连o s i 参考模型【1 4 1 ( o p e ns y s t e mi n t e r c o n n e c tr e f e r e n c em o d e r ) 是- - 种严格的理论模型,模型由7 个层组成,层层堆积。每一层负责处理某特定的通信 任务,基于通信协议与协议栈的下一层进行数据通讯。 基于o s i 参考模型基本理念设计出来的系统,具有良好的独立性和封装性,层 次化的结构使得系统的设计与实现可以进行分离。不仅保证了系统的稳定性与灵 活性,也使得系统具备了环境变化适应性。 运用o s i 参考模型理论设计与实现软件自动化测试系统,极具理论研究和现实 应用价值。 3 10 sl 参考模型 3 1 10 s i 参考模型介绍 开放系统互连o s i 模型是两家标准化组织:国际标准化组织( i s o ) 和美国国家 标准协会( p d q s i ) 的产物。o s i 代表了1 0 0 多个国家在经济、人文、科学和技术标 准上的发展,a n s i 则与美国商界、政府机构和国际组织联手,建立了商业产品( 包 括网络和计算机产品在内) 的标准。o s i 模型于1 9 7 4 年开发,应用于l a n 和w a n 的通信,充分体现了为网络软件和硬件实施标准化做出的努力。 o s i 模型准则指出了: 网络设备之间如何联系,使用不同协议的设备如何通信 网络设备如何获知何时传输或不传输数据 如何安排、连接物理网络设备 江苏大学硕士学位论文 确保网络传输被正确接收的方法 网络设备如何维持数据流的恒定速率 电子数据在网络介质上如何表示 o s i 模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用 层。每一层都基于通信协议与下一层实现数据交互。两个网络设备间的通信就是通 过在每一个设备的协议栈完成。例如,工作站要与服务器进行通信,任务从工作站 的应用层开始,经由较低的层格式化某类信息,直至数据到达物理层,然后通过网 络传输到服务器。服务器于协议栈的物理层获取信息,向上层发送信息以解释信息, 直到到达应用层。每一层可用其名称呼,也可用其在协议栈中的位置表明。 最底层可称为物理层或第1 层。最底层执行的功能与物理通信相关,如构建帧、 传输含有包的信号;中闯层协调结点间的网络通信,如确保通信会话无中断、无差 错地持续进行。最高层的工作直接影响软件应用和数据表示,包括数据格式化、加 密以及数据与文件传输管理。o s i 模型的每一层均为协议栈,其构架如图3 1 所示; 譬j 1 。薮薅建露暌f 纂兰艇芦。蓬 一 一。一f j 蕊囊蓼壁鬃霪? 慝翥 图3 1o s l 七层模型构架 1 6 江苏大学硕士学位论文 3 1 2 o s l 模型层的功能介绍 1 物理层 物理层是o s i 的第一层,虽然处于最底层,却是整个开放系统的基础。 物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可 靠的环境。 2 数据链路层 数据链路可以理解为数据通道。物理层要为终端设备间的数据通信提供传输 媒体及其连接。 3 网络层 网络层所有的网络都由物理路由( 电缆路径) 和逻辑路由( 软件路径) 组成。网络 层读取包协议地址信息并将每一个包沿最优路径( 包括物理的和逻辑的) 转发以进 行有效传输。 。4 传输层 与数据链路层和网络层一样,传输层的功能是保证数据可靠地从发送结点发 送到目标结点。 5 会话层 会话层负责建立并维护两个结点间的通信链接,也为结点问通信确定正确的 顺序。还可以确定结点可以传输多远的距离以及如何从传输错误中恢复。 6 。表示层 这一层处理数据格式化问题,由于不同的软件应用程序经常使用不同的数据 格式化方案,所以数据格式化是必需的。 在某种意义上,表示层有些像语法检查器。它可以确保数字和文本以接收结 点的表示层可以阅读的格式发送。 7 应用层 应用层向应用程序提供服务,这些服务按其向应用程序提供的特性分成组, 并称为服务元素。有些可为多种应用程序共同使用,有些则为较少的一类应用程 序使用。 应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现 多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。 江苏

温馨提示

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

评论

0/150

提交评论