(计算机软件与理论专业论文)web应用程序自动化测试工具的设计与实现.pdf_第1页
(计算机软件与理论专业论文)web应用程序自动化测试工具的设计与实现.pdf_第2页
(计算机软件与理论专业论文)web应用程序自动化测试工具的设计与实现.pdf_第3页
(计算机软件与理论专业论文)web应用程序自动化测试工具的设计与实现.pdf_第4页
(计算机软件与理论专业论文)web应用程序自动化测试工具的设计与实现.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(计算机软件与理论专业论文)web应用程序自动化测试工具的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 近年来,我国软件产业迎来了蓬勃发展的新局面。随着软件企业规模的扩 大,相应软件质量问题越来越突出。开发了w e b 自动化测试工具软件,就是为 了加快测试执行频率,覆盖更多的功能模块,帮助软件企业尽快提高软件质量、 提高企业竞争力。 本文对w e b 自动化测试工具软件的设计与开发进行了较深入的研究,介绍 了自动化测试的开发原理、总体规划、设计思想及具体实现过程。从需求分析、 功能设计、技术实现方案以及系统的关键技术等几个方面论述了一个完整的w e b 自动化测试工具软件的设计与开发的各个环节。本文对脚本录n 回放进行了较 为详细的描述,如w e b 控件的识别、用户行为的记录以及脚本代码的保存。同 时,介绍了系统的测试和安全性技术,对所设计开发的系统作了简单介绍。论 文还对系统中存在的问题进行了讨论,对未来的发展和应用前景进行了展望。 本系统在评测机构的使用,为软件企业提供更好的服务,增强评测机构的 综合竞争力。本系统目标是为评测机构建设一套技术先进、高效快捷、简单易 用的软件自动化测试工具,供软件企业免费使用。本系统已经在天津市软件评测 中心试运行,并得到用户的认可。 关键词:软件测试自动化测试录n 回放 a b s t r a c t a b s t r a c t c h i n as o f t w a r ei n d u s t r yh a se x p e r i e n c e dv i g o r o u sg r o w t hi nr e c e n ty e a r s h o w e v e r ,a l o n gw i t ht h ee x p a n s i o no f s o f t w a r ee n t e r p r i s es c a l ea r i s es o f t w a r eq u a l i t y p r o b l e m s d e v e l o p i n ga na u t o m a t e ds o f t w a r et e s t i n gt o o l st oa c c e l e r a t e s o f t w a r e t e s t i n gp r o c e s s ,c o v e rm o r ef u n c t i o nm o d u l e ,a n dh e l ps o f t w a r ee n t e r p r i s e si m p r o v e s o f t w a r eq u a l i t y , i m p r o v ee n t e r p r i s ec o m p e t i t i v ec a p a b i l i t y t h i st h e s i sh a sm a d eap r o f o u n ds t u d yo nt h es y s t e m a t i cd e s i g na n d d e v e l o p m e n to fw e ba u t o m a t e ds o f t w a r et e s t i n g i ti n t r o d u c e s t h ep r i n c i p l eo f d e v e l o p m e n t ,g e n e r a lp l a n n i n g ,d e s i g np h i l o s o p h ya n dt h es p e c i f i co p e r a t i o np r o c e s s o fa u t o m a t e ds o f t w a r et e s t i n g f r o mr e q u i r e m e n ta n a l y s i st o f u n c t i o n d e s i g n , t e c h n o l o g ys c h e m ea n de s s e n t i a ls y s t e mt e c h n o l o g ye r e ,t h i st h e s i sm a k e s ac o m p l e t e d e s c r i p t i o no ft h er e s p e c t i v ep a r t so ft h ed e s i g na n dd e v e l o p m e n to fw e b a u t o m a t e d s o f t w a r et e s t i n gs y s t e m i ta l s og i v e sac o m p a r a t i v e l yd e t a i l e dd e s c r i p t i o no f r e c o r d r e p l a yo fs c r i p t s ,s u c ha si d e n t i f i c a t i o n o fw e bc o n t r o l s ,r e c o r d so fu s e r b e h a v i o r sa n ds a v i n go fs c r i p tc o d e s s y s t e m a t i ct e s ta n ds e c u r i t yt e c h n o l o g yi sa l s o i n t r o d u c e di nt h ep a p e r ;t h ei m p l e m e n t e ds y s t e mi ss i m p l yi n t r o d u c e d a tt h ee n do f t h i st h e s i s ,i td i s c u s s e st h ee x i s t i n gp r o b l e m si nt h es y s t e m ,i t sf u t u r ed e v e l o p m e n t a n dt h ep r o s p e c to fi t sa p p l i c a t i o n i n s t a l l a t i o no ft h i ss y s t e mi nas o f t w a r et e s t i n go r g a n i z a t i o n ( s t o ) w i l l p r o v i d e b e t t e rs e r v i c ef o rs o f t w a r ee n t e r p r i s e s ,i ng r e a t l ye n h a n c e d o v e r a l l c o m p e t e n c y i ta i m st od e v e l o pa na d v a n c e d ,h i g h l ye f f i c i e n ta n de a s y 。t o 。u s e a u t o m a t e ds o f t w a r et e s t i n gt o o l sf o rs t o ,a n dp r o v i d eaf r e e w a r es o f t w a r et e s t i n g t o o l sf o rs o f t w a r ee n t e r p r i s e t h es y s t e mh a sb e e ni nt r i a lr u n n i n ga tt i a n ji ns o f t w a r e t e s t i n gc e n t e r ( t s t c ) ,t h i ss y s t e mh a sb e e nw i d e l yr e c o g n i z e db yt h eu s e r s k e yw 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 dt e s t i n g ,r e c o r d i n g r e p l a y i i 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进 行研究工作所取得的成果。除文中已经注明引用的内容外,本学位 论文的研究成果不包含任何他人创作的、已公开发表或者没有公开 发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个 人和集体,均已在文中以明确方式标明。本学位论文原创性声明的 法律责任由本人承担。 学位论文作者签名:乍忆1 为珂年。名月吃日 南开大学学位论文版权使用授权书 本人完全了解南开大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:节谗确叼 栅a 年o6 月吐日 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 解密时间:年月日 各密级的最长保密年限及书写格式规定如下: 广一一一一一一一一一一一一 i 内部5 年( 最长5 年,可少于5 年) j 秘密1 0 年( 最长1 0 年,可少于1 0 年) ;机密 k 2 0 年( 最长2 0 年,可少于2 0 年) 1 ,一 第一章绪论 第一章绪论 随着i n t e r n e t 和i n t r a n e t 的快速增长,w e b 已经对商业、工业、银行、财政、 教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信息和 数据库系统正在被移植到互联网上,电子商务迅速增长,早己超过了国界。范 围广泛的、复杂的分布式应用正在w e b 环境中出现。w e b 的流行和无所不在, 是因为它能提供支持所有类型内容连接的信息发布,容易为最终用户存取。 在基于w e b 的系统开发中,如果缺乏严格的过程,我们在开发、发布、实 施和维护w 曲的过程中,可能就会碰到一些严重的问题,失败的可能性很大。 而且,随着基于w e b 的系统变得越来越复杂,一个项目的失败将可能导致很多 问题。当这种情况发生时,可能会比软件开发人员所面对的软件危机更加严重、 更加广泛。 一般软件的发布周期以月或以年计算,而w e b 应用的发布周期以天计算甚 至以小时计算。w e b 测试人员必须处理更短的发布周期,测试人员和测试管理 人员面临着从测试传统的c s 结构和框架环境到测试快速改变的w e b 应用系统 的转变。 由此可以看出,网络的快速发展。使基于w e b 的应用越来越多,而且已经 成为应用程序开发的一种趋势,从长远发展的角度考虑,测试工具应提供基于 w e b 的测试功能而不仅仅只提供基于c s 模式的功能。c s 应用程序与基于w e b 应用程序的测试有很大的差别:c s 应用程序其客户都是已知并定义好的,而且 网络操作系统也是已知的,但测试基于w 曲的应用程序却远远不同:客户可能 来自不同的地方( 如美国、中国乃至非洲等) ,使用不同的浏览器,不同的屏幕 分辨率,不同的语言,不同的连接速率和不同的操作系统( m a c 、l i n u x 、w i n d o w s 等) ,因而建立一个基于w e b 应用的测试环境成本远远高于c s 模式。 第一节论文的研究背景 1 0 年前,中国的软件公司大部分只有测试工作而没有测试人员;5 年前, 中国的软件公司开始让“老弱病残”做专门的软件测试;时至今日,很多中国 的软件公司发现,没有通过专业测试人员测试过的软件根本不敢给客户看。 第一章绪论 目前,人们已经将测试看做开发工作不可或缺的一部分,代码和测试用例 都是敏捷项目的重要产出。然而,在许多敏捷团队中,相较验收测试而言,单 元测试和集成测试的地位要更为显著。 一般来说,花在测试和花在编码的时间比为3 :l ( 实际上可能更多) 。这个比 例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对软件 质量保证来讲很重要。 在w e b 工程过程中,基于w 曲系统的测试、确认和验收是一项重要而富有 挑战性的工作。基于w e b 的系统测试与传统的软件测试不同,它不但需要检查 和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的 显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。 然而,i n t e r n e t 和w e b 媒体的不可预见性使测试基于w 曲的系统变得困难。因 此,我们必须为测试和评估复杂的基于w e b 的系统研究新的方法和技术。 测试的改进会对整个开发工作的质量、成本和周期带来非常显著的效果。 很自然地,大家希望借助于自动化测试来缩短系统测试的周期,缓解测试的压 力。 此外,随着软件规模和复杂程度的增加,在软件测试工作需要更多时间的 同时,项目周期却比以前大大缩短,如何在有限的时间内完成软件测试工作, 尽最大的可能暴露软件中隐含的缺陷,是软件测试工作中亟待解决的问题,而 软件测试自动化将是获取可接受的测试覆盖率的一种有效途径,也是软件测试 发展的必然趋势。 第二节开发目的及意义 软件测试是对创造力和智力非常有挑战性的任务。测试一个大型软件需要 的智能要超过设计这个程序的智能。软件在它发行之前应当通过彻底的测试, 以保证它的可靠性和功能性,不幸的是,测试工程师要覆盖一个大型程序的所 有情况会感到太麻烦和太费时。确实,软件的每个部分如能被分别测试到,同 时一些指定的路径也能被测试,这对总的软件质量的保障是非常有效的。 对于测试人员,手动测试本来就是很枯燥的事情,但是对于这种枯燥的事 情再加上一些重复性的操作就使测试人员加剧这种烦躁的心情;自动化测试就 是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划进行 2 第一章绪论 自动的测试,目的是减轻手工测试的劳动量,从而达到提高软件质量的目的。 自动测试还能让测试人员集中精力进行那些更重要、更复杂、更全面的测试, 那些真正需要专业技术的测试。它可以消除手动测试那种既耗时又单调,而且 需要投入大量的人力资源的问题。自动化测试的目的在于发现老缺陷。而手工 测试的目的在于发现新缺陷。 利用先进的软件开发模型和技术,开发一个具有自主知识产权、具有创新 性、适合评测机构的w e b 自动化软件测试工具,可显著减少重复性工作,提高 了工作效率,从而大大降低了测试成本。通过对测试流程的有效控制,保证了 软件测试质量。 第三节国内外相关技术发展现状 软件产业是高投入、高产出、高风险、高利润的产业,本身变化更新快。 在国际上,软件产业相对比较成熟,对软件测试也非常重视,软件测试作为软 件产业的重要组成部分,已经得到了所有软件开发商、软件使用者的认可。在 国外一个没有经过很好测试的产品,是不能交给用户的,否则企业的信誉就会 受到极大影响。因此在国外,每个软件开发企业均配备软件测试部门,进行软 件质量管理与保障。项目中软件测试人员甚至比软件开发人员要多。软件测试 技术也比较成熟,目前流行的软件测试工具均是由国外研发的。 软件测试在国内是一个新兴产业,特别是近几年来国家对软件产品质量要 求越来越高。软件开发单位也越来越重视软件测试,特别是大量软件测试外包 业务的开展,使得软件测试正在成为软件过程中重要的环节。国内对软件测试 的研究起步较晚,对自动化测试工具这方面的研究也才刚刚开始。 在国外,自动化测试理论、自动化测试工具和自动化测试培训都已经十分 的成熟并得到了广泛的应用,而在国内则基本上比较滞后。因此,正确有效地 把国外先进的自动化测试技术引入到国内的公司和项目中来是一件十分有意义 的事。 对于当前较为流行的商用测试工具而言,软件测试方面的工具很多,主要 有m e r c u r yi n t e r a c t i v e ( m i ) 、s e g u e 、r a t i o n a l 、c o m p u w a r e 和e m p i r i x 等公司的 产品,而m i 公司的产品占了主流。目前的使用状况,总结就是,大家都处于学 习阶段,部分虽有一些应用到工作中,但也是比较有限的,最主要是应用在性 3 第一章绪论 能测试方面。 第四节自动化测试工具的优点和不足 1 4 1 自动化测试工具的优点 1 、对新版本执行回归测试测试每个特征 对于产品型的软件,每发布一个新的版本,其中大部分功能和界面都和上 一个版本相似或完全相同,这部分功能特别适合于自动化测试,从而可以让测 试达到测试每个特征的目的。 2 、更多更频繁的测试沉闷、耗时 当前产品向市场的发布周期是3 个月,也就是我们的开发周期只有短短的3 个月,而在测试期间是每天每2 天都要发布一个版本供测试人员测试,一个系 统的功能点有几千个上万个,人工测试是非常的耗时和繁琐,这样必然会使测 试效率低下。 3 、具有一致性和可重复性 由于每次自动化测试运行的脚本是相同的,所以每次执行的测试具有一致, 人是很难做到的。由于自动化测试的一致性,很容易发现被测软件的任何改变。 自动化测试能够很好的发现老缺陷。 4 、更好的利用资源周未晚上 理想的自动化测试能够按计划完全自动的运行,在开发人员和测试人员不 可能实行三班倒的情况下,自动化测试可以胜任这个任务,完全可以在周末和晚 上执行测试。这样充分的利用了公司的资源,也避免了开发和测试之间的等待。 o r a c l e 曾经开发过一个邮件客户端o u t l o o k 的插件,这个插件是安装在 o u t l o o k 上,提供一些常用功能,比如收发m a i l ,c a l e n d a r 创建等等。但o r a c l e 的测试部门仅仅为这个插件就设计了6 0 0 0 多个测试用例! 如此多的用例个数使 得测试执行和产品周期产生了深刻的矛盾。这个矛盾体现在:当每个新版本发 布时,如果做一遍完整测试,个人手工测试执行一遍6 0 0 0 多个测试用例就要 半个月,而产品版本的发布周期也就一周左右,也就是说测试的速度远远跟不 上产品的发布速度。在这种情形下,如果没有自动化测试帮忙,手- r n 试只能 望洋兴叹了1 4 第一章绪论 1 4 2 自动化测试工具的不足 1 、自动化测试不能取代手工测试 不能期望自动化测试来取代手工测试,测试主要还是要靠人工的。 2 、自动测试不能发现大量新缺陷 同样不能期望自动化测试去发现更多新的缺陷,事实证明新缺陷越多,自 动化测试失败的几率就越大。发现更多的新缺陷应该是手工测试的主要目的。 测试专家总结大约8 5 的缺陷靠手工发现,而自动化测试只能发现1 5 的缺陷。 3 、工具本身不具有想象力 工具毕竟是工具,出现一些需要思考、体验、界面美观方面的测试,自动 化测试工具无能为力。 自动化测试工具的主要缺点是很难自动检测运行结果的正确性,所以很多 人都不屑去使用它。其实工具总是有它的局限性,它能不能发挥它应有的作用, 还依赖于人的灵活运用。即不能过分依赖于工具,也不能盲目排斥工具。 第五节本文的主要研究内容 1 5 1 本选题研究的原因 一般来说,一个软件系统里,我们需要发现程序里的缺陷,这些缺陷被修 改,再经过测试,之后把修改后的软件交付给用户。但是,由于软件内部程序 的相互关联性,即使一个很微小的变化也会引起很大的不可预知错误;软件的 任何一个变化,甚至只是纠正一个人所共知的小错,都会影响到系统以后出现 难以预计的问题,这种潜在的风险,要远远大于早期全力测试付出的代价。 回归测试是一个软件系统原有缺陷被修改或增加新的功能后,为了保证系 统没有功能性失败,而进行的重新测试的实践。一个全面的回归测试能大大保 证系统的功能遵从设计。然而,一个全面的回归测试在一个项目团队里通常没 有充分的时间和资源来执行,因此想要测试到系统的每个子功能也变得更加困 难;这个问题和系统的整个开发周期有关,尤其在那种夜晚发布新版本的开发 环境里,对每个版本想要进行全面的回归测试也越来越不可行。这种情况下的 通常做法,就是测试一下软件中被修改的缺陷,以及添加的新功能,因此就会 5 第一章绪论 给软件团队造成软件发布后出现不可预知缺陷的潜在隐患。 因此,我们需要一款能够挑战于回归测试的自动化测试工具。脚本在创建 时完全以重复测试系统的功能为目的,对于软件的每个新版本,通过执行测试 脚本来保证系统先前功能的有效性。脚本一般在无人看守的情况下运行,当软 件系统不断的修改更新,测试脚本库保证软件的每个版本都会从头到尾的充分 测试。 自动化测试就是通过测试工具或其他手段,按照测试工程师的预定计划对 软件产品进行自动的测试,它是软件测试的一个重要的组成部分,能够完成许 多手工无法完成或者难以实现的一些测试工作。正确、合理地实施自动化测试, 能够快速、全面地对软件进行测试,从而提高软件质量,节省经费,缩短产品 发布周期。 1 5 2 本选题研究的主要内容 评测机构出于自身业务发展需要,迫切需要开发一个具有自主知识产权、 具有创新性、适合评测机构的w 曲自动化软件测试工具,以节约时间提高效率并 免除大量人力成本的消耗。w e b 自动化测试工具大大降低测试人员的重复工作 量,有效提高软件测试效率,该软件现已投入试运行。 这个系统是一个用于w 曲应用、基于n e t 开发的测试工具,提供了简化访 问w 曲组件的a p i 。界面简洁,通过菜单或者按钮都可以很方便地操作,使该 软件的使用人员很快就能熟悉软件,进行独立操作。系统主要包括新建脚本、 保存脚本、打开脚本、脚本录制、录制停止、脚本编译、脚本运行、批量运行 脚本等技术的设计与实现。 1 、记录脚本: 在测试者运行应用程序的同时,把他的所有动作,包括键盘操作、鼠标点 击等捕获下来,生成一个脚本文件。记录下来的场景可以作为脚本源代码,它 们既可读又可编辑。通过编写测试脚本,实现某个测试用例,运行测试脚本, 既可执行该测试用例,并可以通过脚本自动检查测试用例的执行结果。 2 、编译测试脚本: 为提高执行效率,脚本采用非解释型方式,程序中内嵌编译代码,可将脚 本编译生成w i n d o w s 控制台程序,提高运行效率。 6 第一章绪论 3 、运行测试脚本: 运行测试脚本就是回放( p l a y b a c k ) ,也就是按照上一次的所有动作重复执行 一遍,实现动作的自动运行和测试。 测试脚本可以通过编译任务脚本单独运行,也可以把测试脚本集成一个工 作流批量运行。 4 、检查测试报告: 针对每个测试脚本生成一个带有“通过失败”结论的报告。失败的报告中 会详细记录测试过程中产生的错误信息。 5 、日志记录 自动化测试不是为了自动化,而是为了发现b u g 。如果自动化测试不能发现 b u g ,那么花费大量的人力物力实现自动化,也是没有什么实际意义的。日志记 录对于发现b u g 起着至关重要的作用。 1 5 3 研究开发的重点 1 、支持脚本化语言( s c r i p t i n gl a n g u a g e ) 这是最基本的一条要求,脚本语言具有与常用编程语言类似的语法结构, 可以对己录制好的脚本进行编辑修改。脚本语言的功能越强大,能够为测试开 发人员提供更灵活的使用空间,而且有可能用一个复杂的语言能够写出比被测 软件还要复杂得多的测试系统。 目前流行的大部分测试工具绑定了工具生产商指定的特定脚本语言,我们 叫它厂商语言。这些语言很难学,实现得很弱,最重要的是,它们不鼓励测试 员与开发人员之间的合作。测试员应该得到全特性的、标准的测试开发语言。 所以,我们必须首先确信脚本语言的功能是否可以满足我们测试的需求。具体 来讲,应该至少具备以下功能: 支持多种常用的变量和数据类型 支持数组、列表、结构,以及其它混合数据类型 支持各种条件逻辑,( i f 、c a s e 等语句) 支持循环( f o r 、w h i l e ) 支持函数的创建和调用 2 、对w 曲界面中对象的识别能力 7 第一章绪论 测试工具必须能够将w e b 界面中的所有对象都区分并标识出来,录制的测 试脚本才具有更好的可读性、灵活性和更大的修改空间。如果只支持通过位置 坐标来区分对象,它的灵活性就要差很多了。 提供对多种常见w e b 对象的识别和操作的支持,例如h y p e r l i n k s 的点击、 c h e c k b o x e s 的选中和清除、r a d i ob u t t o n s 的选中和清除、下拉框和列表框的选 择、文本框的输入、各种按钮的点击以及f r a m e 的访问、弹出窗口的控制等。 当然,既然可以识别和操作这些对象,也可以访问这些对象,使测试结果的验 证自动化。 对于用一些比较通用的用户接口( u i ) ,测试工具都能区分和标识出界面里 的所有元素,但对一些不太普及或专门开发的接口,工具的支持会比较差,因 此,对开发语言的支持也是很重要的一项。当然程序难免会存在一些比较难于 标识的对象,如位图对象( b i t m a p ) 等,需要采取一些折衷处理方法,另外编写 代码加以验证。 3 、支持函数的可重用。 在软件自动化测试中,涉及到回归测试。回归测试是对同一个测试用例的 不同版本进行质量检查评估,是一个反复迭代的过程。在这样一个过程中,同 一个业务对象在多次测试中反复出现的现象大量存在,测试用例的复用显得尤 为重要。通过组合各个基础测试脚本,可以实现不同用例采取基础测试脚本组 合而成。这样可以实现用例脚本的高可复用性。 如果支持函数调用,我们可以建立一套比较通用的函数库,一旦程序做了 修改,我们只需把原脚本中的相应函数进行更改,而不用把所有可能的脚本都 改动,可以节省很大工作量。 4 、系统应包含的特性 可以创建一个带有“通过失败”结果的报告。 允许多个测试作为一个组在一个批处理中运行。 非常灵巧,操作简单,我们花费很少的时间即可学会并且不会给测 试的程序添加额外的负担。 功能可以扩展,如果希望更多的功能,可以很容易的扩展它。 本课题研究的上述内容都是针对w e b 自动化测试工具方面存在迫切解决的 问题而展开的,具有一定的创新性和前瞻性。 8 第一章绪论 第六节论文内容安排 本论文在第一章主要介绍了开发和研究的背景,国内外自动化测试工具现 状,w e b 自动化测试工具开发目的和意义以及所发挥的作用,并介绍了系统的 主要研究内容与创新点。 第二章对w e b 自动化测试工具的需求进行分析,提出了系统建设的构想方 案和开发方法及原则。在这一章主要介绍w e b 自动化测试工具业务流程、详细 描述了各功能模块的功能分析,特别是在系统的功能性、可靠性、易用性等多 方面进行了详细的阐述。 第三章是w e b 自动化测试工具的系统设计,包括系统的体系结构和详细设 计。主要功能模块的设计方法以及相关要求。特别是业务操作的具体流程和步 骤进行了深入的论述。 第四章是依据前一阶段系统分析的结果和以往的系统开发经验,综合考虑 系统的多个设计要素,介绍了主要功能模块的实现方法,部分脚本,实现原则 等,包括系统界面和功能的实现。 第五章介绍了整个系统的开发过程中所采用的关键技术,讨论系统的难点 和创新,从软件产品评价、测试脚本的、批量运行测试脚本等几个方面进行较 详细的概述。 最后一章是对本文工作的总结,介绍系统存在的问题以及进一步研究的内 容。在本章中主要介绍了系统目前存在的问题,在那些方面还需要进一步修改 与完善,今后需要做的工作,系统发展方向等。 9 第二章需求分析与概要设计 第二章系统的需求分析与概要设计 通过调查和可行性分析提出系统实施的设想方案,通过对系统开发现状的 分析提出项目开发方法和原则,最终形成一套比较完整的系统建设构想方案。 本文将重点讨论对于一个w e b 应用程序的自动化测试工具,如果能够灵活、 方便、高效,替代大量手工测试工作,它所应具备的最基本和最关键特征有哪 些,以达到最大的测试效率。 第一节系统的需求 本系统是一个测试w e b 页面的自动化测试工具系统,首先要进行需求分析, 这样才能设计出满足用户要求的各项功能。下面,我们从一个网站的测试流程、 w e b 页面中需要包含的测试内容、程序的可靠性、易用性、以分析性以及自动化 测试的业务流程和步骤,对系统的设计进行需求分析。 2 1 1 网站测试流程概述 一个网站基本完工后,需要通过下面三步测试才可以交活。 1 、制作者测试,包括美工测试页面、程序员测试功能。在做完后第一时间 内由制作者本人进行测试。 页面,包括首页、二级页面、三级页面的页面在各种常用分辨率下有无错 位;图片上有没有错别字;各链接是否是死链接;各栏目图片与内容是否对应 在筮 寸0 功能,达到客户要求:数据库连接正确:各个动态生成连接正确;传递参数 格式、内容正确;试填测试内容没有报错;页面显示正确。 2 、全面测试,根据交工标准和客户要求,由专人进行全面测试。 也是包括页面和程序两方面,而且要结合起来测,保证填充足够的内容后 不会导致页面变形。另外要检查是否有错别字,文字内容是否有常识错误。 3 、发布测试,网站发布到主服务器之后的测试,主要是防止环境不同导致 的错误。 1 0 第二章需求分析与概要设计 2 1 2w e b 页面的测试内容 1 、链接测试 链接是w e b 应用系统的一个主要特征,它是在页面之间切换和指导用户去 一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所 有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页 面是否存在;最后,保证w e b 应用系统上没有孤立的页面,所谓孤立页面是指 没有链接指向该页面,只有知道正确的u r l 地址才能访问。链接测试必须在集 成测试阶段完成,也就是说,在整个w e b 应用系统的所有页面开发完成之后进 行链接测试。 链接测试的原理:从待测网站的根目录开始搜索所有的网页文件,对所有 网页文件中的超级链接、图片文件、包含文件、c s s 文件、页面内部链接等所 有链接进行读取,如果是网站内文件不存在、指定文件链接不存在或者是指定 页面不存在,则将该链接和处于什么文件的具体位置记录下来,并输出测试报 告。 链接测试因为技术含量不高,很多程序员都不愿意做链接测试,但是链接 的正确却直接影响用户对该网站的印象,一个网站如果出现链接上的错误,不 管其页面做的如何漂亮,用户对其信任度都会大打折扣。因此,我们首先必须 重视链接测试,虽然其需要耗费很多的时间,但是可以提高网站的整体质量。 引入链接自动化测试工具不仅可以将人们从这种既耗时又单调的工作中解放出 来,还可以加快链接测试进行的速度。 2 、表单测试 当用户给w e b 应用系统提交信息时,就需要使用表单操作,例如用户注册、 登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验 提交给服务器的信息的正确性。 例如:使用表单来进行在线注册,要确保提交按钮能正常工作,当注册完 成后应返回注册成功的消息。如果使用表单收集配送信息,应确保程序能够正 确处理这些数据,最后能让顾客能让客户收到包裹。要测试这些程序,需要验 证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信 息。 当用户使用表单进行用户注册、登陆、信息提交等操作时,我们必须测试 第二章需求分析与概要设计 提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的 出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用 了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也 要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是 否会报错。 3 、数据库测试 在w e b 应用技术中,数据库起着重要的作用,数据库为w e b 应用系统的管 理、运行、查询和实现用户对数据存储的请求等提供空间。在w e b 应用中,最 常用的数据库类型是关系型数据库,可以使用s q l 对信息进行处理。 在使用了数据库的w e b 应用系统中,一般情况下,可能发生两种错误,分 别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单 信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起 的,针对这两种情况,可分别进行测试。 2 1 3 支持白盒测试 白盒测试技术( w h i t eb o xt e s t i n g ) 是深入到代码一级的测试,使用这种技 术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码 内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行测试。 在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫 做白盒测试。这一阶段测试以软件开发人员为主,在n e t 平台一般使用n u n i t 工具进行测试。 2 1 4 易用性 这是一个非常主观的问题,国外曾经有人做过比较:用不同水平的测试工 程师分成两个组,通过逐一和随机地选择和使用测试工具,结果是在大多数情 况下,测试者对工具的易用性都没有统一的结论。随着测试者的经验累积和考 虑问题的出发点( 可拓展性、脚本可维护性、与其他工具的综合能力、数据驱动 等) 不同会得出不同的答案。 通常,用户界面作为人机交互的接口,非常重要。拥有友好的用户界面, 将使用户感到亲切,易于使用,很快就能熟悉软件,从而愿意使用本软件。 1 2 第二章需求分析与概要设计 1 、使用简单 用户界面应尽量简单一些,尽量符合用户的使用习惯。 可以记录和回放用户界面的交互并生成可重复使用的测试用例,用不着特 殊的脚本语言。甚至不需要使用记录工具和编译就可以轻松创建测试。 2 、快速的系统响应速度和较低的系统开销 系统界面应能快速地对用户的输入进行响应,并且不要过多地占用系统资 源。 2 1 5 可靠性 好的测试有三个基本属性:可维护、值得信赖、易于理解。 由于存在种种事先无法预料的突发事件,在程序的源代码中,应引入异常 情况处理机制,凡可能出现问题的代码段,应尽量使用t r y c a t c h 语句,以便程 序运行期间发生错误时,可以有相应的代码进行处理。 2 1 6 易分析性 提供日志或跟踪机制,从而提供关于程序正在做什么的信息,包括正在操 作的数据,以及关于应用程序状态、运行中的错误等方面的信息。测试工程师 可以利用这些信息来判断错误是否发生,跟踪测试执行过程中的各种处理流程。 按一定的格式写入关于方法、函数、当前处理对象等详细的日志信息,以 便后期地分析。但是也不能包含太多的信息,否则将影响后期的分析过程。每 个日志信息应该尽可能简洁地包含一些关键的信息,例如: 类名和方法名; 机器名和进程i d ; 时间戳( 精确到毫秒级) ; 执行信息或出错信息。 充分利用这些日志信息,跟踪到对象在测试执行过程中的各种信息。另外, 还会带来如下好处: 测试用例的执行能被跟踪起来; 在碰到严重错误的时候,日志的信息可以帮助找到引起问题的模块或代码; 1 3 第二章需求分析与概要设计 在一些模块接口计算的区域,日志文件包含的模块i d 、数据可以帮助找出 这些接口的错误。 在找到b u g 之后,测试人员把b u g 描述连同格式化的日志信息发给开发人 员,有助于开发人员定位和调试问题发生的根源。 第二节概要设计 2 2 1 项目开发方法和原则 按照用户至上的原则,结构化、模块化、自顶向下地对系统进行分析和设 计,从初始到结束划分为若干阶段,预先规定好每个阶段的任务,再按照一定 准则按部就班地完成。这种方法需要预先严格定义需求和任务,它的突出优点 是:强调系统开发过程的整体性和全局性,强调在系统优化的前提下来考虑具 体的分析设计问题,即所谓的自顶向下的观点;同时强调严格区分开发阶段, 一步一步地严格进行系统地分析和设计,及时总结、反馈和纠正问题。 2 2 2 业务流程描述 一般的自动化测试就是通过测试工具或其他手段,按照测试工程师的预定 计划对软件产品进行自动的测试,它是软件测试的一个重要的组成部分,能够 完成许多手工无法完成或者难以实现的一些测试工作。正确、合理地实施自动 化测试,能够快速、全面地对软件进行测试,从而提高软件质量,节省经费, 缩短产品发布周期。一般软件测试的流程如图2 1 所示。 1 4 第二章需求分析与概要设计 图2 1 软件测试流程 本系统是一个w e b 应用程序的自动化测试工具,采用的是录制回放机制, 帮助自动化测试工程师快速地开发出可维护性、可重用性、可读性都非常强的 高质量测试脚本。录制回放型从本质上分为3 步:找到控件;触发事件;断言 判断。 录制回放型的测试工具通过脚本语言记录测试工程师在程序界面上的操 作,把他的所有动作,包括键盘操作、鼠标点击等捕获下来,生成一个脚本文 件,然后通过回放,也就是按照上一次的所有动作重复执行一遍,来做一些基 本的验证。在对网页做单元测试时,我们操作浏览器,打开页面,再对其d o m 元素结构及内容作断言。 在自动化测试工作中,该功能是绝大多数专业测试人员开始自动化测试尝 试的第一步,他们通常会先录制一个简单的脚本( 这类似m i c r o s o f tw o r d 中录制 宏一样) ,然后回放、阅读和研究这些脚本。在日后的测试中逐渐会减少直接的 录制回放,而改用直接编写脚本或用工具内置功能测试对象、数据库等,但 这是自动化测试所走的第一步,如果工具不能识别应用程序对象而无法进行对 手工测试的录制和回放,日后测试自动化的实现将会遇到巨大困难而导致失败。 基本的捕捉、回放过程在实际应用中会存在很多问题,最直接的一个问题 是测试针对程序界面进行,一旦界面有任何改动,都需要我们去手工修改己录 制好的相应测试脚本,或者重新进行一次录制。由其对于程序中各模块都要使 1 5 第二章需求分析与概要设计 用的一些公共程序部分( 如用户登录界面) ,它的改动会引起我们大量测试工作 的返工,造成测试脚本的日常维护工作量急剧增大。 那么如何解决这个问题? 这里涉及到很多自动化测试方面的技术。首先我 们可以在被测应用程序和录制生成的测试脚本之间增加一个抽象层,他可以将 程序界面上的所有元素映射成相对应的一个逻辑对象,测试就可以针对这些逻 辑对象进行,而不需要依赖于界面上元素的变化。再有,建议把一些公共使用 的函数进行封装,做成可重用的函数库。最后,可以把测试执行过程中所需的 测试数据做成文件形式,测试脚本在运行时能够随时从此文件读取预先定制好 的数据,这样脚本和数据可以独立维护。从以上几个典型的解决方法我们可以 看出,一个好的自动化测试工具其实与一个好的开发工具有很多相似的特征, 也就是说,一个自动化测试过程实际也是一个软件开发的过程。 w e b 自动化测试的难点在于对控件的处理,系统应对各种控件进行了实用的 测试封装,让自动化测试工程师摆脱控件录制、识别的烦恼,使其更适合自动 化测试调用,自动化测试工程师可以专注于测试用例的设计和测试逻辑的实现。 本系统还拥有报告功能。一旦测试失败,提供的报告包含了所有失败的脚 本名称、测试失败的时间和完整的关于失败原因的描述。 2 。2 。3 系统功能描述 1 、系统简介 对于测试人员,手动测试本来就是很枯燥的事情,但是对于这种枯燥的事 情再加上一些重复性的操作就使测试人员家具这种烦躁的心情;对于w e b 自动 化测试工具,它可以消除手动测试那种既耗时又单调,而且需要投入大量的人 力资源的问题。 自动化测试工具在软件测试自动化领域发挥着巨大的作用。它的基本原理 是在测试者运行应用程序的同时,把他的所有动作,包括键盘操作、鼠标点击等 捕获下来,生成一个脚本文件,这个脚本以后可以被“回放( p l a y b a c k ) ”,也就 是按照上一次的所有动作重复执行一遍,实现自动运行和测试。其中: 脚本以文件形式保存,具有正规语法的数据和或指令,通常用于测 试执行自动工具中。测试脚本可以实现一个或多个测试用例、导航、设置或清 除设置及比较。 1 6 第二章需求分析与概要设计 录制回放w e b 自动化测试工具的一种功能,将测试输入记录( 捕获) 为脚本,模拟用户点击链接,填写表单,点击按钮,然后执行软件时可以回放 这个脚本。 w e b 自动化测试工具是一种用于检验应用程序能否如期运行的软件功能测 试工具。通过自动捕获、检测和模拟用户交互操作,本系统能识别出绝太多数 软件功能缺陷,从而确保那些跨越了多个功能点的应用程序在发布时尽量不出 现功能性故障。程序主界面如图22 所示: 图22 系统界面 本系统总体分为七个功能模块;文件、编辑、查看、工具、脚本、窗口、 帮助。 文件功能包括:新建、打开w e b 页面、打开脚本文件、保存w e b 页面、保 存脚本文件、脚本另存为、退出。 编辑功能包括:撤销、重复、剪切、复制、粘贴、全选。 查看功能包括:工具栏、状态栏、转到、停止、刷新、文字大小( 最大、 较大、中、较小、最小) 。 第二章需求分析与概要设计 工具功能包括:选项设置。 脚本功能包括:录制、停止、编译、运行、脚本批量执行。 窗口功能包括:新建窗口、层叠、垂直平铺、水平平铺、全部关闭、排列 图标。 帮助功能包括:w a t i n 帮助、关于。 本系统使用简单,完全可视化,使程序行为一目了然,有助于整理编程思 路,提高编程效率和正确性,可以使项目或产品的质量较大幅度地提高,同时 开发成本还要较大幅度地下降。 2 、功能简介: 新建打开脚本 测试脚本是测试自动化中必要的组成部分,脚本实际上是一种计算机程序 的形式,一组测试工具执行的指令集合。 本系统允许你以不同的方式创建测试脚本:你可以通过使用浏览器走一遍 站点来录制脚本,或者从一个文件夹选择一个脚本文件。即采用手动编写或自 动录制的方式建立脚本。 记录脚本 基于w e b 页面的复杂性,解析和加载整个文档可能很慢且很耗资源,因此 使用其他手段来处理这样的数据会更好。 h t m l 文档对象模型( h t m ld o c u m e n to b j e c tm o d e l ,h t m ld o m ) 定义 了访问和处理h t m l 文档的标准方法。他的功能是把浏览器支持的文档( 包括 h t m l 、x m l 、 t m l ) 当作一个对象来解析。d o m 是以层次结构组织的节 点或信

温馨提示

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

评论

0/150

提交评论