




已阅读5页,还剩76页未读, 继续免费阅读
(检测技术与自动化装置专业论文)基于staf的软件自动化测试研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
争 每 川f l | i f y 1 n a n j i n gu n i v e r s i t yo f a e r o n a u t i c sa n d a s t r o n a u t i c s 硼1 eg r a d u a t es c h o o l c o l l e g eo f a u t o m a t i o ne n g i n e e r i n g r e s e a r c ha n d a p p l i c a t i o no f s t a f - - b a s e d s o f t w a r et e s ta u t o m a t i o n a 砀e s i si n d e t e c t i o nt e c h n o l o g ya n da u t o m a t i c e q u i p m e n t s h a oz u o z h e n a d v i s e db y a s s o c i a t ep r o f w a nx i a o d o n g s u b m i r e di np a r t i a lf u l f i l l m e n t o ft h er e q u i r e m e n t s f o rt h ed e g r e eo f m a s t e ro f e n g i n e e r i n g j a n u a r y ,2 0 1 0 - 吣 承诺书 本人声明所呈交的硕士学位论文是本人在导师指导下进 行的研究工作及取得的研究成果。除了文中特别加以标注和致 谢的地方外,论文中不包含其他人已经发表或撰写过的研究成 果,也不包含为获得南京航空航天大学或其他教育机构的学位 或证书而使用过的材料。 本人授权南京航空航天大学可以将学位论文的全部或部 分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本承诺书) 作者签名:墨邋 日飙2 盟牛 - l , 一 , 南京航空航天大学硕士学位论文 摘要 随着现代信息技术的飞速发展,软件业竞争日趋激烈,人们对于软件功能、性能的要求不 断提高,软件推出新版本的时间也不断缩短,因此如何保证软件质量就成为软件业关注的重点。 目前,软件测试是用来发现错误并验证软件能否实现预期功能的最主要方法。但传统的人工测 试已经不能满足快节奏的软件开发和测试的需求,软件自动化测试可以避免测试人员惯性思维 或定向思维所导致的测试疏漏,也可以减少由于手工测试中繁复的重复工作而导致的人为差错, 分担测试人员手工测试的工作量,成为近年来软件测试的重要研究方向。 本文首先介绍了软件测试和软件自动化测试的概念和国内外研究现状,归纳出了当前软件 自动化测试领域的主要测试方法,并比较分析了这些方法的特点。本文基于关键字驱动测试理 论,使用p e r l 语言实现软件自动化测试,并在此基础上结合s t a f 测试框架实现了一套完整的 有良好可移植性的软件自动化测试平台,该平台运用了s t a f 框架良好的通信机制及s t a f 框 架提供的各项实用的服务,可以在测试环境中快速地部署软件自动化测试,使得该平台具有很 好的可行性。 在实现s t a f 软件自动化测试的基础上,本文针对s t a f 框架提出c 2 c 测试模式,并依据 被广泛应用的x m l 文档来规划整个测试执行的流程,使整个测试过程清晰明确;可以方便地 监控测试执行情况,并对测试环境进行集中地管理与部署。另外,基于x m l 文档指导s t a f 框架流程的特点对执行方法进行改进,将测试执行的步骤用清晰明确的x m l 文档表现出来, 可以有效地提高测试平台扩展性与可维护性,并准确地进行软件错误定位,提高软件测试效率。 最后,本文将所研究的软件自动化测试平台应用于实际项目中,取得到了良好的测试效果, 有效地提高了软件测试的效率,降低了测试的成本,并且验证了该系统的可行性及优越性。 关键词:软件测试,软件自动化测试,s t a f ,关键字驱动,测试模式,执行方法改进 基于s t a f 的软件自动化测试研究与应用 a b s t r a c t w i t ht h ed e v e l o p m e n to 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 yi nt o d a y sc o m p u t e r s y s t e mi sh 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 ht e s t i n gt os u s t a i nt h et o l e r a b l e l e v e lo f r e l i a b i l i t y h o wt ok e e pt h eq u a l i t yo f p r o d u c tu n d e rs u c hp r e s s u r e sb e c o m e st h ek e yp o i n tf o r t h e s eo r g a n i z a t i o n st oa c h i e v es u c c e s s t h es o t i w a r et e s th a sb e e np r o v e dt ob eo n eo ft h em o s t e f f e c t i v ew a y st od e t e c td e f e c t sa n dp e r f o r mv e r i f i c a t i o n b u tt h et r a d i t i o n a lm a n u a lt e s tl i m i t a t i o ni s a l s om o l eo b v i o u s t h es o f t w a r et e s ta u t o m a t i o nt e c h n o l o g yh a sr e c e i v e dt h ec l o s ea t t e n t i o nu n d e r s u c hb a c k g r o u n d ,b e c o m e si m p o r t a n tr e s e a r c hd i r e c t i o ni nr e c e n ts o f t w a r et e s t i n g t h i sp a p e rd e s c r i b e st h ec o n c e p to fs o f t w a r et e s ta n ds o f t w a r et e s ta u t o m a t i o na sw e l la sr e c e n t r e s e a r c h e si nt h ew o r l d t h em a i nt e s tm e t h o d sa l er e f e r r e da n dc o n c l u d e di nt h i sp a p e r b a s e do nt h e k e y w o r d - d r i v e nt e s tm e t h o d ,t h i sp a p e rr e a l i z e s s o f t w a r et e s ta u t o m a t i o nu s i n gp e r lp r o g r a m l a n g u a g e a n df o rf u r t h e r , ac o m p l e t ef u n c t i o n a la n dt r a n s p o r t a b l es o f t w a r et e s ta u t o m a t i o np l a t f o r m i sf o u n d e dc o m b i n i n gw i t hs t a et h i sp l a t f o r ml e v e r a g es t a f sc o m m u n i c a t i o nm e c h a n i s ma n da l l s u p p o r t e ds e r v i c e ss u p p l i e db ys t a f a l lt h e s er e s e a r c h e sm a k et h i sp l a t f o r mh a v eg o o df e a s i b i l i t y b a s e do nr e a l i z a t i o no ft h i st e s ta u t o m a t i o np l a t f o r ma n dr e s e a r c ho fs t a f ,t h i sp a p e rp r o p o s e sa n e wt e s tm o d e ln a m e dc 2 cm o d e l t h i sm a k e st h ew h o l et e s tp l a t f o r me a s yt om a n a g ei n t e n s i v e l y a n di n s p i r e do fc h a r a c t e ro fu s i n gx m ld o c u m e n tt om a n a g ep r o c e d u r e ,t e s te x e c u t i o nm e t h o di s l e v e r a g e dr e l a t i v e l y d u et ot h i s ,e x t e n s i o na b i l i t yo ft h ew h o l ep l a t f o r mi si m p r o v e do b v i o u s l y a n d t h i sh e l p sq af i n ds o r w a r eb u g sm o r ep r e c i s e l y f i n a l l yt h i sp l a t f o r mi sa p p l i e di n t op r a c t i c a ls o f t w a r ee n t i t y , e n h a n c e ss o r w a r et e s te f f i c i e n c y , a n da p p e a r sg o o dp e r f o r m a n c e f e a s i b i l i t ya n ds u p e r i o r i t ya r ew e l lp r o v e do nt h i sp l a t f o r m k e y w o r d s :s o f t w a r et e s t ,t e s ta u t o m a t i o n ,s t a f , k e y w o r d - d r i v e n ,t e s tm o d e l ,e x e c u t i o n i m p r o v e m e n t i i 南京航空航天人学硕士学位论文 目录 第一章绪论l 1 1 课题研究背景与意义1 1 2 软件测试的发展2 l - 3 国内外研究现状。3 1 3 1 国外研究动态。3 1 3 2 国内研究现状。4 1 4 课题的主要研究内容。4 1 5 论文的组织安排5 第二章软件测试与软件自动化测试6 2 1 测试的基本概念6 2 2 软件测试过程7 2 3 软件测试分类。7 2 3 1 测试实施途径。7 2 3 2 测试执行方式9 2 4 软件测试周期1 0 2 4 1 测试计划阶段l o 2 4 2 测试设计阶段1 1 2 4 3 测试执行阶段1 2 2 4 4 测试结果评估1 2 2 5 软件自动化测试的概念1 3 2 5 1 软件自动化测试简介1 3 2 5 2 软件自动化测试的优点1 4 2 5 3 软件自动化测试的现状分析1 5 2 5 4 软件自动化测试的局限1 6 2 5 5 软件自动化澳0 试的适用范围1 8 2 6 本章小结18 第三章构建测试平台的基础2 0 3 1s 卫师简介2 0 3 1 1s t a f 定义2 0 i l l 基于s t a f 的软件自动化测试研究与应用 3 1 2s t a f 特点及应用2 0 3 2s t u b 定义2 4 3 3p e r l 语言及其优点2 4 3 4x m l 简介与应用j 一2 5 3 4 1x m l 定义2 5 3 4 2x m l 的优点2 5 3 5 关键字驱动的自动化测试介绍2 6 3 6 本章小结2 7 第四章软件自动化测试平台的构建与改进2 9 4 1 软件自动化测试方法的建立2 9 4 1 1 使用p e f l 实现关键字驱动测试2 9 4 1 2 关键字驱动测试方法的示例3 1 4 2 结合s t a f 构建基础测试平台3 2 4 2 1s t a f 对p e r l 的支持3 3 4 2 2 测试平台的构建3 3 4 2 3 测试平台的测试示例3 4 4 3 对测试框架的改进3 7 4 3 1s t a f 原有的p 2 p 模式3 7 4 3 2c 2 c 模式的提出3 8 4 3 3 两种模式的比较4 0 4 3 4c 2 c 模式的具体测试执行过程4 l 4 3 5c 2 c 模式执行测试示例4 2 4 3 6c 2 c 测试模式的扩展4 5 4 4 对执行方法的改进4 6 4 4 1 改进执行方法的工作原理4 6 4 4 2 改进执行方法的实现4 7 4 4 3 两种执行方法的比较4 8 4 5 对测试结果的验证4 9 4 6 本章小结4 9 第五章软件自动化测试在实际项目中的应用5 0 5 1 被测软件及应用环境5 0 5 1 1 被测软件简介5 0 i v 南京航空航天大学硕士学位论文 5 1 2 被测软件应用环境的建立5 1 5 2 软件自动化测试平台的实现与应用5 2 5 2 1 基础测试平台的实现与应用5 2 5 2 2 改进测试框架的实现与应用5 5 5 2 3 改进测试执行方法的应用5 8 5 3 结果分析5 9 5 3 1 基础测试平台应用分析5 9 5 3 2 两种测试框架的应用分析6 0 5 3 3 两种测试执行方法应用分析6 0 5 4 本章小结:6 0 第六章总结与展望6 2 6 1 论文工作总结6 2 6 2 不足之处与进一步的研究与展望6 2 参考文献6 4 致谢6 7 在学期间发表的学术论文一6 8 v 基于s t a f 的软件自动化测试研究与应用 v i 图3 1 图3 2 图4 1 图4 2 图4 3 图4 4 图4 5 图4 6 图4 7 图4 8 图4 9 图4 1 0 图5 1 图5 2 图5 3 图5 4 图 图 图 图 图清单 s t a f 响应服务请求。2 3 关键字驱动测试的示例图2 7 关键字驱动测试的实现3 0 基于s t a f 框架的软件自动化测试结构与流程图。3 4 _ 发送请求端s t a f 响应图3 5 接收请求端响应图3 5 + 测试执行生成l o g 文件。3 7 s t a f 框架的p 2 p 模式3 8 s t a f 框架的c 2 c 模式3 9 c 2 c 模式的软件自动化测试结构与流程图4 2 c 2 c 模式中s t a x 执行x m l 测试任务截图4 3 改进执行方法结构与流程图4 7 p p 软件用户界面5 1 p p 软件应用环境拓扑结构图一5 2 测试环境目录结构图5 3 用s t a f 测试框架进行测试5 5 在c 2 c 模式中的控制端加载s t a x 服务5 6 用改进的c 2 c 模式进行测试5 7 改进测试执行方法前生成r e p o r t 页面一5 7 由改进的测试执行方法生成r e p o r t 页面5 9 1 南京航空航天人学硕十学位论文 表清单 表2 。l 测试的定义变化6 表2 2 传统过程中测试占用整个开发周期的时间7 表2 3 动态测试与表态检查对比表9 表2 4 各类测试方法的自动化比较1 7 表2 5 手工测试和软件自动化测试的选择总结1 8 表4 1p 2 p 与c 2 c 两种测试模式的比较。4 l v i l 基于s t a f 的软件自动化测试研究与应用 略写 c 2 c k d t p 2 p p e d s 1 e a f s t a x x m l v i l l 注释表 英文全称 c o n t r o i l e rt oc l i e n t k e y w o r d - d f i v e nt e s t p e e r t 0p e e r p r a c t i c a le x t r a c t i o na n dr e p o r tl a n g u a g e s o t h 锈矿a r et e s ta u t o m a t i o nf r a m e w o r k s o f t w a r et e s t i n ga u t o m a t i o ne x e c u t i o n e x t e n s i b l em a r k u pl a n g u a g e 中文全称 控制端到客户端模式 关键字驱动测试 点到点模式 实用抽取与报表语言 软件自动化测试框架 软件自动化测试执行引擎 可扩展的标记语言 南京航空航天大学硕士学位论文 第一章绪论 1 1 课题研究背景与意义 近几年,随着软件规模不断扩大,软件的复杂度不断加大,客户要求不断提高,如何保证 软件质量,提高软件的可靠性也越来越受到人们的关注,这也成为软件开发机构特别关注的方 向。目前,在提高软件质量的技术中,最直接、最有效的手段还是软件测试技术。1 9 8 3 年i e e e 在软件工程标准术语中对软件测试定义为:“使用人工和自动化手段来运行某个系统或产品的过 程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”,这一定 义明确提出软件测试是以检验产品是否满足需求为目标。大量资料表明,通常花费在软件测试 和排错的代价大约占软件开发总代价的4 0 左右【l l ,即使这样,也不能保证软件之中,不再包 含错误。因此,作为软件保证软件质量最有效手段的测试技术,已经越来越引起软件用户和开 发人员的关注。软件测试技术作为软件工程学科的一个分支,它起步较晚,而且所涉及的知识 面比较宽,所以离成熟还有很长的一段距离。 在国内,测试行业属于一个新兴行业,与国外测试行业相比,国内也只是近几年才开始重 视软件测试。随着软件开发规模的增大、复杂程度的增加,使得以寻找软件中的错误为目的测 试工作更加困难,然而,为了尽可能多地找出程序中地错误,生产出高质量的软件产品,加强 对测试工作的组织和管理就显得尤为重要。 迭代式的开发过程2 1 已经显示了比瀑布式开发的巨大好处,取代传统的瀑布式开发已成为 了目前最流行的软件开发过程。在迭代式开发中强调在较短的时间间隔中产生多个可执行、可 测试的软件版本,这就意味着测试人员也必须为每个迭代产生的软件系统进行测试。测试工作 的周期被缩短,频率被增加。显然,传统的手工测试已经严重满足不了软件开发的需求。 回归测试是软件测试中的重要组成部分,占有很大的比重,大约3 0 左右的软件缺陷( b u g ) 是通过回归测试发现的【2 】。而迭代式的软件开发过程的大量使用更决定了同归测试的不断进行, 因此,软件测试的大部分预算会使用在同归测试上。上述回归测试的执行点,决定了实施回归 测试是一项工作量大、繁琐的工作,因此用软件自动化测试的方法可以明显提高测试效率和保 证测试的可靠性。 软件产品在回归测试阶段,由于各个版本之间的改变非常小,测试的许多操作是重复性的、 非智力创造性的、需求细致注意力的工作。计算机就最适合于代替人类去完成这些任务,这也 促进了软件自动化测试的部署与实施。企业在这方面的投资,会对整个开发一i :作的质量、成本 和周期带来非常明显的效果。 提到迭代开发模型就会涉及每日构建,每日构建的成功需要每天进行测试,测试内容包括 1 基于s t a f 的软件自动化测试研究与应用 基本功能验证、老特性回归测试、新特性冒烟测试。如果手工进行测试无疑会耗费很大的工作 量,而软件自动化测试的优点正好适用于此,可以更好地测试每日构建。 一 软件自动化测试是一个必然趋势,但对企业来说,它并不意味着是必须马上启动的项目, 或者甚至所有企业都必须跟随的唯道路。企业实施软件自动化测试,不仅涉及测试工作本身 流程上、组织结构上的调整与改进,甚至也包括需求、设计、开发、维护及配置管理等其他方 面的配合。如果对这些必要的因素没有考虑周全的话,必然在实施过程中碰壁,既定的实施方 案也无法开展。其次,尽管软件自动化测试可以降低人工测试的工作量,但并不能完全取代手 工测试。1 0 0 的软件自动化测试只是一个理想目标,因此一味追求测试的自动化比率会给企业 带来运作成本的急剧上升。再者,软件自动化测试需要企业有相对规模的投入,对企业运作来 + 说,投入回报率是决定是否实施软件自动化测试的最终指挥棒,企业在决定实施软件自动化测 试之前,必须要求量化的投资回报分析。此外,软件自动化测试并不就是采购强大的自动化软 件测试工具或自动化管理平台,毕竟软件质量的保证不是依靠产品或技术来保障的,而且更多 的因素在于高素质的人员和合理有效的流程【3 l 。 根据o p p e n h e i m e r f u n d s 的调查,全球范围内由于采用了测试自动化手段所实现的投资回 报率( r o i ,r e t u mo f i n v e s t m e n t ) 更高达1 5 0 0 4 1 。软件自动化测试使测试自动进行,将测试 输出结果与期望输出进行比较,可以完成许多手工测试无法实现或者难以实现的测试。同时监 控和管理测试执行过程,使测试人员脱离于繁琐的测试配置及管理过程,集中精力于测试用例 的设计上,从而极大地提高测试工作的效率,有着手工测试无法比拟的优势。 综上所述,实施测试自动化是软件行业的一个必然发展趋势,特别是对于迭代开发流程中 的回归测试而言,软件自动化测试能够带来非常高的投资回报率。如果在自动化领域走在前列, 无论是人企业的核心竞争力还是个人的工作技能来说,都有巨大的优越性,而国内众多的软件 厂商也的确在纷纷着手开展着这项工作。另外,考虑到企业投资问题,如何有效快速地实施软 件自动化测试也是企业关心的重点。由此可见,在软件测试中合理地引入软件自动化测试有着 i 非常重要的理论和现实意义。 1 2 软件测试的发展 软什测试技术的发展与软件业的发展密切相关;在5 0 至6 0 年代,属于程序设计阶段,软 件开发被视为程序员的个人行为,开发的软件产品也往往是由程序员自己使用,在这种情况下, 软件测试当然也是程序员的个人行为,测试方法和测试准则随心所欲,只要能满足要求就被视 为测试通过:在6 0 至7 0 年代,属于程序系统阶段,有小的“软件作坊”开发软件供用户使用, 此时的软件测试具有了一定的测试标准和要求,可能会具体指定开发小组的成员进行测试,也 可能会由开发人员进行自测,以满足用户需求作为通过准则:7 0 年代以后,进入软件工程阶段, 2 南京航空航天人学硕士学位论文 软件开发过程越来越系统化、规模化,软件质量控制也越来越正规。7 0 年代末至8 0 年代中期 是测试基础理论和实用技术形成阶段,测试的主要作用是软件质量保证( s q a ) :8 0 年代末至 9 0 年代中期,测试:r 具的质量和数量不断增长,测试与s q a ( 注重于过程和质量监督) 分离, 注重于工具对测试效率的影响。9 0 年后期至今关注有效的过程管理对于软件测试的重要 性,形成各种测试模型2 3 1 、测试能力成熟度模型。近年来,随着计算机和软件技术的飞速发展, 软件测试技术研究也取得了很大的突破,测试专家总结了很好的测试模型,比如著名的v 模型 【2 、w 模型口1 1 等,在测试过程改进方面提出了t e s tm a t u r i t ym o d e l 的概念,在单元测试、软 件自动化测试、负载压力测试以及测试管理方面涌现了大量优秀的软件测试工具。 虽然软件测试技术的发展很快,但是其发展速度依然落后于软件开发技术的发展速度,使 得软件测试在今天面临着很大的挑战,主要体现在以下儿个方面【5 】: ,( 1 ) 软件在国防现代化、社会信息化和国民经济信息化领域中的作用越来越重要,由此产生 的测试任务越来越繁重。 ( 2 ) 软件规模越来越大,功能越来越复杂,如何进行充分而有效的测试成为难题。 ( 3 ) 面向对象的开发技术越来越普及,但是面向对象的测试技术却刚刚起步。 ( 4 ) 对于分布式系统整体性能还不能进行很好的测试。 ( 5 ) 对于实时系统来说,缺乏有效的测试手段。 ( 6 ) 测试自动化技术得到了很大程度的发展,但是远远落后于软件测试对于自动化实施的需 求。 1 3 国内外研究现状 1 3 1 国外研究动态 近几年,随着面向对象技术、软件重用技术及其i n t e m e t i n t r a n e t 的广泛应用,软件测试技 术面临着新的挑战。目前国内外软件测试技术领域内的研究热点有: ( 1 ) 针对软件特点开展的使用软件测试技术和方法的研究,例如针对实时系统、嵌入式系统 等不同类型软件特点开展的软件测试技术的研究。 ( 2 ) 针对新的软件开发技术而展开的软件测试技术研究,包括针对面向对象技术、 i n t e m e t i n t r a n e t 结构、j a v a 语言等的软件测试技术的研究。 ( 3 ) 测试自动化技术的研究,目的是提高测试各阶段工作的自动化程度,减轻人工测试的负 担,如测试用例自动生成技术、回归测试的自动执行等。 ( 4 ) 测试工具与测试环境 6 1 的研究,依据软件测试的技术和方法开发相应的测试工具与环 境,如测试计划工具、测试设计工具、测试管理工具、静态分析工具、结构测试工具、回归测 试工具、性能及网络负载测试工具以及为提高工具使用的有效性、工具间的互操作性【6 】。 3 基于s t a f 的软件臼动化测试研究与应用 美国的i e e e 、a c m 等组织制定了一系列软件测试规范,国外的许多大学、研究机构和公 司进行了大量软件测试的研究和应用工作。其中c a r n e g i em e l l o n 大学侧重于回! 九测试和 c l i e n t s e r v e r 测试技术的研究,g e o r g em o s a n 侧重予基于规范的测试自动化生成和面向对象测 试技术的研究,n s t l 主要从事测试规范和标准的制定。比较流行的软件测试工具集有s o f t w a r e r e s e a r c h 的t e s t w o r k s 、r a t i o n a l 的r a t i o n a lr o s e 9 8 、m e r c u r v i n t e r a c t i v e 的w i n r u n n e r x r u n n e r 、 l d r a 的t e s t b e d 等1 7 1 。s t a f 从2 0 0 0 年前后发布版本,由于开放式的构架可集成插件,近几 年得到快速发展已成为一个庞大的测试体系。 1 3 2 国内研究现状 软件测试在我国起步较晚,最初主要在项目组内部由开发人员进行自测。近些年来,随着 计算机在我国许多重要部门和企业的广泛使用,软件测试的研究逐渐被重视起来,例如:北京 大学、北京航空航天大学进行了一系列的软件分析和测试工具的研究和开发,研制了一系列的 程序理解工具和测试工具,比较具有代表性的工具有s a f e p r oc c + + ,s a f e p r o j a v a 。航空计算 机研究所、南京大学在嵌入式系统测试方面进行较多工作,开发了一些静态分析工具和测试用 例生成工具钉。西北工业大学在航空软件仿真测试、并行软件综合测试平台以及c s 系统的测 试方面进行许多研究工作并取得了系列成果。 1 4 课题的主要研究内容 本文主要研究s t a f 软件测试白动化框架和软件自动化测试框架引擎,并基于此提出一种 集中管理且易于扩展的测试平台,极大地:肯约了测试时间与手工劳动量,明显地提高了测试效 率。具体研究内容如下: ( 1 ) 对软件测试和软件自动化技术进行分析和总结。阐述了软件自动化测试的现状,软件自 动化测试的特点,以及实_ 施软件自动化测试的必要性。 ( 2 ) 由p e d 语言来实现关键字驱动的软件自动化测试。 ( 3 ) 结合s t a f 测试框架,p e r l 编程语言与x m l 文档,构建一套完整的有良好可移植性的 软件自动化测试平台。 ( 4 ) 提出集中式管理与执行的软件自动化测试框架并实现软件自动化测试。基于对s t a f 的 研究对其工作模式加以改进提出了种集中式软件自动测试模式c 2 c 测试模式,并且分析 了该测试模式的组成、运行机制和优点。 ( 5 ) 改进测试执行方法。受到s t a f 的服务可重用特点及x m l 在c 2 c 中应用的启发,改进 测试脚本的执行方法,并分析这种方法的可行性以及优点。 本文主要的创新性研究成果和贡献如下: ( 1 ) 对s t a f 框架进行扩展与改进,提高测试效率。 4 南京航空航天大学硕士学位论文 ( 2 ) 基于s t a x 执行原理,改变自动化测试的执行方式,提高测试平台的可扩展性,更利于 测试人员进行软件错误定位。 ( 3 ) 将此自动化测试平台应刚于实际项目中,获得良好地表现。 1 5 论文的组织安排 本文以软件自动化测试为线索,介绍软件测试与软件自动化测试理论,结合当今流行软件 开发模型对软件自动化测试进行分析。基于s t a f 软件自动化测试框架构建一套完整的软件自 动化测试平台,实现快速易管理的软件自动化测试,并在实际应用中得到良好地实现。本文主 要内容的结构安排如下: 第一章绪论,简述了课题研究的背景和意义,在此基础上分析目前软件测试理论的发展情 况和国内外对软件测试理论研究的现状,并介绍了本文的研究内容。 第二章软件测试和软件自动化测试理论,主要介绍了软件测试的基本概念,软件测试理论 以及软件测试中遇到的问题,并引入软件自动化测试技术,阐述了软件自动化测试技术的现状, 在此基础上分析了软件自动化测试的优点和局限性。 第三章介绍s t a f 测试框架、p e r l 编程语言、x m l 文档以及关键字驱动测试方法等与本文 所研究的测试平台相关的基础知识,并简要介绍各自的应用原理与特点。 第四章详细阐述了如何构建一套完整的软件自动化测试平台,以及在此基础上提出c 2 c 测 试模式并改进软件自动化测试的脚本执行方法,有效地提高了测试效率。 第五章为本文所研究的的软件自动化测试平台在实际项目中的应用,验证了该平台良好的 可行性。 第六章总结与展望,对本文所研究的软件自动化测试平台给予总结并说明扩展方向对以后 的发展进行了展望。 5 基于s t a f 的软件自动化测试研究与应用 第二章软件测试与软件自动化测试 2 1 测试的基本概念 关于测试的定义经历的几个阶段,如表2 1 所示。 表2 1 测试的定义变化 时间作者定义 测试是为发现错误而执行的一 1 9 7 9 g l e n f o r dm y e r s 个程序或者系统的过程 测试是评价一个程序或者系统 1 9 8 3b i uh e t z e l e 的属性为目标的任何一种活动,测 试是对软件质量的度量。 测试是指为了度量和提高被测 r i c kd c r a i g 2 0 0 2 软件的质量,对测试进行工程设计, s t e f a np j a k i e l 使用和维护的并发生命周期过程。 m y e r s l 9 7 9 年对测试的定义【8 j 主要是程序测试,发生在软件开发周期的末期,其主要目的 是发现错误。实践也表明,这种观点的确能发现很多错误,因为很多需求,设计阶段的缺陷一 直推迟到最后才发现,结果导致软件变更成本急剧飙升,软件质量也不理想。 随着软件工程的实践,1 9 8 3 年b i l lh e t z e l e 的测试定义已经不局限于寻找错误,定义波是 软件质量的度量,通过对软件测试来评测软件的功能和性能指标。 g - r a i g 和j a k i e l 最近的定义更是加入了软件质量保证的思想,并且认为软件测试本身就是一 个系统的过程。在测试中不仅要对被评测软件进行测试,同时对测试本身也有很高的要求,包 括测试的效率,效能,质量成本等。 软件质量保证面向整个软件开发过程,参照一定的质量标准,目标和各项软件流程,来管 理和监督软件的质量,同时对过程进行改进。 现在我们认为软件测试不等于程序测试,它贯穿于软件定义和开发的整个生命周期,是软 件质量保证的重要手段,需求规格说明,概要设计规格说明,详细设计规格说明,源程序都是 软件测试的对象。研究资料表明,在传统的软件开发中花在测试的时间占到软件开发总时间的 4 0 左右,如表2 2 所示。 测试周期过长的原因主要是在软件单元测试和测试阶段,大量缺陷的修改和反复,以及测试效 率的低下造成的,所以在实际项目中,我们要根据开发过程的特点,严格管理软件测试的过程, 6 南京航空航天大学硕士学位论文 提高软件测试的效率,保证软件质量。 表2 2 传统过程中测试占用整个开发周期的时间 流程阶段占用时间比 管理( m a n a g e m e n t ) 5 需求( r e q u i r e m e n t s ) 5 设计( d e s i g n ) 1 0 实现( i m p l e m e n t a t i o n ) 3 0 测试和评估( t e s t & a s s e s s m e n t )4 0 配置( d e p l o y m e n t ) 5 环境( e n v i r o n m e n t ) 5 2 2 软件测试过程 根据软件测试过程中测试人员的主要工作,可以将每个测试过程划分为9 个阶段。 1 准备测试环境。针对不同的被测软件,部署相应的测试环境,包括测试框架、测试工具 或者测试脚本等。 2 升级被测软件版本。一般被测软件在发布前会有版本的更新,以保证错误被修正或新功 能的正常使用,因此当新版本出现时,需要将其更新至测试环境。 3 配置测试环境。更新了被测软件的版本后,如有功能的增添或其他因素的影响,则需要 相应地更改测试环境,增强测试的完全性。 4 执行软件测试。在测试环境中完成对被测软件的测试。 5 处理错误。发现被测软件的错误或是漏洞后,收集错误信息,将其提供给研发部门。 6 收集测试结果。在完成本次测试后,整理测试结果。 7 生成测试报告。根据此次测试周期的测试结果,分析软件存在的错误或漏洞,生成一份 测试报告,并记录文档作为此次测试的总结。 2 3 软件测试分类 2 3 1 测试实施途径 从测试实施的途径来分,软件测试主要有静态测试和动态测试9 1 。 静态测试不执行程序,只通过分析源程序代码,发现和修正程序结构上的错误或数据存取 中的差错。动态测试使用测试数据和追踪程序执行过程的测试工具,通过执行程序检查程序的 运行状态与结果是否正确,来发现程序中存在的逻辑错误和算法错误。 1 静态测试 7 基t - s t a f 的软件自动化测试研究与应用 静态测试方法的特征是不需要运行被测试程序,而是通过其它手段达到检测的目的。静态 分析是对被测试程序进行特性分析的方法的总称。静态分析由于无需程序的执行,因此可以应 用在软件开发生命周期的各个阶段,即使在系统的需求分析和概要设计阶段,也能很好地运用。 此外,一些依靠动态测试难以发现或不能发现的错误,也可以使用静态方法来分析和检查。 静态测试依据事先定义的属性,标准和规范对相关产
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业养殖技术推广服务合同
- 凹凸棒石负载锰氧化物:开启低温SCR脱硝新篇章
- 高中生物分子遗传习题大全
- 从《侵权责任法》审视纯粹经济损失的法律救济:理论、实践与完善
- 印刷物流管理制度
- 丁香配伍郁金对小鼠胃排空的影响:基于实验的深度剖析与机制探究
- 团队目标与绩效管理
- 钢构合同模板7篇
- 公司向银行中期借款协议8篇
- 信息服务领域的数据分析模型构建-洞察及研究
- GB/T 26925-2025节水型企业火力发电行业
- 2025年日历表(含农历、节假日、记事、A4打印版)
- 《工程建设标准强制性条文电力工程部分2023年版》
- 干燥综合症的中医治疗冯兴华公开课课件
- 关于开具无犯罪记录证明的函(模板)
- 初中综合实践课程
- 大金D型水冷螺杆机说明书
- JJG 700 -2016气相色谱仪检定规程-(高清现行)
- ASCO双电源自动转换开关操作手册
- 组合式塔吊基础施工专项方案(117页)
- 1、《国际贸易实务》课程标准解析
评论
0/150
提交评论